Ao tentar ver conflitos de portas em meu sistema, muitos sites online recomendam usar /etc/services ou ss -tunl para ver informações de portas
Estou percebendo que /etc/services está fornecendo informações diferentes para -ss na maioria das ocasiões.
Exemplos de comparação de saída
sudo cat /etc/services
ftp 21/udp
ftp 21/sctp
ssh 22/tcp
ssh 22/udp
ssh 22/sctp
telnet 23/tcp
telnet 23/udp
smtp 25/tcp
contra
ss -tunl
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 0.0.0.0:5353 0.0.0.0:*
udp UNCONN 0 0 0.0.0.0:46670 0.0.0.0:*
udp UNCONN 0 0 [::]:5353 [::]:*
udp UNCONN 0 0 [::]:38838 [::]:*
/etc/services é um arquivo de dados estáticos e deve ser usado apenas como um guia, não um verdadeiro reflexo de qual é a configuração real da porta do sistema.
Onde o programa ss reúne esses dados de porta e como posso modificar/excluir algumas das portas, seja por meio de ss ou de outro programa?
Estas são duas coisas diferentes. O
/etc/services
arquivo mostra qual porta um serviço normalmente usaria, semelhante a https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers .ss
é um comando para mostrar quais serviços estão atualmente ativos em sua máquina que aguardam conexões de entrada, como um servidor web que escutaria nas portas TCP 80 e 443. Ele também mostrará conexões de saída atualmente abertas, como aquelas de um navegador web ou cliente ssh para um servidor web/ssh.ss
é semelhante ao comando mais antigonetstat
que foi descontinuado em favor doss
.O arquivo
/etc/services
fornece apenas mapeamento de número para nome para portas e não tem nada a ver com quais portas ss lista. Além disso, os nomes neste arquivo são usos comuns para as portas, e não para o que a porta é realmente usada em seu sistema, já que qualquer programa (com permissões suficientes) pode abrir qualquer porta para qualquer finalidade. Basicamente,/etc/services
é um subconjunto do registro de números atribuídos pela IANA.O que
ss
lista é quais portas do seu sistema estão em uso. Se estiver listado em ss, está em uso. Se você executarss -p
como root, ele deverá listar qual processo especificamente está com a porta aberta.Você não pode modificar diretamente quais portas estão em uso. O que você precisa fazer é
sudo ss -p
descobrir qual programa está usando a porta e eliminá-lo. Ou, inversamente, se uma porta não estiver listada em ss e você espera que esteja, inicie o serviço que usa a porta.É uma percepção equivocada comum que as portas possam ser criadas e excluídas. As portas são apenas um número, sempre existem e não podem ser excluídas ou criadas. Eles estão em uso ou não estão em uso.