Como posso verificar se uma porta está escutando em um servidor Linux?
netstat -an | grep PORTNUMBER | grep -i listen
Se a saída estiver vazia, a porta não está em uso.
Como posso verificar se uma porta está escutando em um servidor Linux?
netstat -an | grep PORTNUMBER | grep -i listen
Se a saída estiver vazia, a porta não está em uso.
Respostas:
Você pode verificar se um processo escuta em uma porta TCP ou UDP netstat -tuplen
.
Para verificar se algumas portas são acessíveis externamente (provavelmente é o que você deseja), você pode usar um scanner de portas como o Nmap de outro sistema. A execução do Nmap no mesmo host que você deseja verificar é totalmente inútil para o seu propósito.
-t
, -u
, -p
, -l
, -e
, e -n
. Graças ao analisador de opções, ele pode ser expresso como -tuplen
. linux.die.net/man/8/netstat
telnet
comando geralmente oferece suporte apenas ao TCP; portanto, você não terá sorte se o serviço que você deseja verificar executar em outro protocolo.
sudo netstat -tuplen
. Isso fornecerá processos de propriedade não apenas de você, mas também de outros, e imprimirá detalhes adicionais (como PID / Nome do programa) se eles ainda não forem exibidos como um usuário não raiz.
A maneira mais rápida de testar se uma porta TCP está aberta (incluindo firewalls de hardware que você possa ter) é digitando, de um computador remoto (por exemplo, sua área de trabalho):
telnet myserver.com 80
O que tentará abrir uma conexão com a porta 80 nesse servidor. Se você tiver um tempo limite ou negar, a porta não está aberta :)
if you get a time out or deny, the port is not open
OK, em resumo, você tem um servidor no qual pode fazer login. Você quer ver se algo está escutando em alguma porta. Como root, execute:
netstat -nlp
isso mostrará uma lista de processos atendendo nas portas TCP e UDP. Você pode digitalizá-lo (ou grep) pelo processo de seu interesse e / ou pelos números de porta que espera ver.
Se o processo que você espera não estiver lá, inicie esse processo e verifique novamente o netstat. Se o processo estiver lá, mas estiver escutando em uma interface e porta que você não esperava, haverá um problema de configuração (por exemplo, ele pode estar escutando, mas apenas na interface de loopback, para você ver 127.0.0.1:3306 e nenhuma outra linha para a porta 3306, no caso da configuração padrão para MySQL).
Se o processo estiver concluído e estiver ouvindo a porta que você espera, tente executar um "telnet" nessa porta a partir do seu Macbook em seu escritório / residência, por exemplo,
telnet xxxxxxxxxxxx.co.uk 443
Isso testará se (assumindo portas padrão) se há um servidor da Web configurado para SSL. Observe que este teste usando telnet só funcionará se o processo estiver escutando em uma porta TCP. Se for uma porta UDP, você também pode tentar com o cliente que deseja usar para se conectar a ela. (Vejo que você usou a porta 224. Este é um masqdialer e não faço ideia do que é isso).
Se o serviço estiver lá, mas você não puder acessá-lo externamente, haverá um firewall bloqueando você. Nesse caso, execute:
iptables -L -n
Isso mostrará todas as regras de firewall conforme definidas no seu sistema. Você pode postar isso, mas, geralmente, se você não estiver permitindo tudo na cadeia INPUT, provavelmente precisará permitir explicitamente o tráfego na porta em questão:
iptables -I INPUT -p tcp --dport 224 -j ACCEPT
Ou algo nesse sentido. Não execute os comandos do firewall às cegas, com base no que um estranho lhe disse na Internet. Considere o que você está fazendo.
Se o seu firewall na caixa estiver permitindo o tráfego desejado, sua empresa de hospedagem pode estar executando um firewall (por exemplo, eles estão permitindo apenas SSH (22 / tcp), HTTP (80 / tcp) e HTTPS (443 / tcp) e negar todo o tráfego recebido). Nesse caso, você precisará abrir um tíquete de suporte técnico para resolver esse problema, embora eu suponha que possa haver algo no seu cPanel que permita isso.
Eu uso o combo de netstat
e lsof
:
netstat -an | grep <portnumber>
lsof -i:<portnumber>
Para ver se a porta está sendo usada e o que está sendo usada.
Se você estiver conectado ao sistema e puder executar um comando como root, poderá verificar a saída do iptables
iptables -L -vn
isso listará as regras de firewall e quais portas são alvo aberto ACCEPT
e qualquer porta explicitamente fechada REJECT
.
firewall-cmd --query-port=port/protocol
, por exemplo firewall-cmd --query-port=80/tcp
.
lsof -i :ssh
listará todos os processos com a porta ssh aberta, conexões de escuta e ativas.
sudo
se não retornar nenhuma saída.