Na plataforma Windows, que opções nativas tenho para verificar se uma porta (3306, por exemplo) na minha máquina local (como em localhost
) está sendo bloqueada?
Na plataforma Windows, que opções nativas tenho para verificar se uma porta (3306, por exemplo) na minha máquina local (como em localhost
) está sendo bloqueada?
Respostas:
Como você está na máquina Windows, essas coisas podem ser feitas,
Execute o seguinte comando e procure um ouvinte ": 3306" (você não mencionou UDP / TCP). Isso confirmará que há algo em execução na porta.
netstat -a -n
Depois disso, se você estiver esperando conexões de entrada nessa porta e achar que o firewall pode estar bloqueando-as, inicie o log de firewall do Windows e verifique se há queda de conexões nos logs
Há mais um comando para verificar o estado do firewall
(a atualização para usuários do Windows 7 - conforme indicado Nick
abaixo - usa o netsh advfirewall firewall )
estado da mostra do firewall netsh
Este comando irá despejar os detalhes de configuração do firewall do Windows
configuração da mostra do firewall netsh
Se você tiver um bloco ativo (as conexões de entrada estão sendo descartadas pelo firewall) depois de iniciar o log, você deverá vê-lo no log.
Se você estiver executando um aplicativo / serviço que esteja escutando no 3306, a configuração do firewall deve mostrar que está ativado. Se isso não for visto, você provavelmente não adicionou uma exceção ao firewall para permitir esse aplicativo / serviço.
Finalmente, a porta 3306 é normalmente usada para MySQL. Então, presumo que você esteja executando o servidor MySQL nesta máquina Windows. Portanto, você deve ver um ouvinte do 3306 aceitando conexões de entrada. Se você não vê isso, precisa trabalhar com seu aplicativo (MySQL) para começar com isso primeiro.
|find "3306"
ao comando, por exemplo:C:\Windows\System32>netstat -an |find "3306"
NETSTAT
informará se a porta está escutando, mas não informará se a porta está aberta para o mundo externo. O que quero dizer com isso é que NETSTAT
pode mostrar que o 0.0.0.0 está LISTENING na porta 3306, mas um firewall ainda pode estar bloqueando a porta que está impedindo conexões externas; portanto, não basta confiar NETSTAT
sozinho.
A melhor maneira de verificar se uma porta está bloqueada é fazer uma varredura de porta na máquina cliente.
Existem várias maneiras de fazer uma verificação de porta, mas como você mencionou estar no Windows, vou sugerir o utilitário de linha de comando da Microsoft PortQry
e a versão gráfica PortQryUI
Para testar todas as portas abertas:
portqry.exe -n #.#.#.#
Para testar uma porta específica:
portqry.exe -n #.#.#.# -e #
Por exemplo, para testar a interface da Web de um roteador em 192.168.1.1:
portqry.exe -n 192.168.1.1 -e 80
Que retorna:
TCP port 80 (http service): LISTENING
Onde, como retorna o teste em uma máquina local sem HTTPD em execução:
TCP port 80 (http service): NOT LISTENING
Usando um utilitário PortScan, você obtém um dos três resultados.
Listening
significa que o servidor está escutando na porta especificadaFiltered
significa que recebeu um pacote de confirmação TCP com o sinalizador Redefinir definido, o que provavelmente indica um problema de firewall ou softwareNot Listening
significa que não recebeu nenhuma respostatelnet
é outra opção de linha de comando que geralmente é instalada no sistema operacional por padrão. Este utilitário de linha de comando pode ser usado de maneira rápida para verificar se uma porta responde a uma solicitação de rede.
Para usá- telnet
lo, basta emitir o seguinte comando em um prompt de comando:
telnet localhost 3306
O comando acima deve dar-lhe uma indicação rápida se a porta 3306
na localhost
está respondendo.
Desde o PowerShell 4.0, você pode usar o comando Test-NetConnection
Se você deseja testar a porta 3306, como no seu exemplo, o comando é
Test-NetConnection -ComputerName localhost -Port 3306
Se você puder telnetar para a porta da máquina local (usando o endereço IP externo), mas não de outra máquina - ela estará sendo bloqueada em algum lugar.
Observe que um firewall em sua máquina local pode impedir até a primeira ação.