Este blog mostra como encontrar as portas TCP usadas ou reservadas por aplicativos no Windows. Não está relacionado a aplicativos SAP específicos.
Problema:
Um aplicativo não pode ser iniciado porque a porta que deseja usar está sendo utilizada por outro aplicativo (ou componentes do sistema operacional).
Como podemos descobrir qual aplicativo está usando essa porta?
Exemplo:
O executável do Servidor de Mensagens do SAP não pode ser iniciado porque as portas que deseja abrir estão sendo usadas por outro aplicativo.
As portas que devem ser usadas neste exemplo são: 3600 e 3900.
Utilize netstat -anob para listar todas as portas estabelecidas e em escuta
O comando "
netstat -anob
" mostra todas as portas em uso e o binário (aplicativo) que as utiliza.
Exemplo:
Neste exemplo, vemos o processo msg_server.exe que está escutando nas portas 3600 e 3900.
Outro msg_server.exe que tente vincular essas portas, portanto, falhará.
Utilize netstat -anoq para listar todas as portas vinculadas (= portas reservadas)
O comando "
netstat -anoq
" também mostra uma lista de todas as portas no estado "vinculado". Infelizmente, a opção "b" para binário não pode ser usada junto com o parâmetro "q".
Exemplo
Para obter uma lista mais clara de portas vinculadas, use esta linha de comando do PowerShell:
Get-NetTCPConnection -State Bound | ForEach-Object {$p = (Get-Process -Id $_.OwningProcess);New-Object -TypeName psobject -Property @{ "LocalPort" = $_.LocalPort; "PID" = $p.Id; "ProcessName" = $p.Name; }} | Format-Table -AutoSize -Property PID, ProcessName, LocalPort
Exemplo:
Nesta lista, vemos aplicativos SAP, mas também componentes do Windows como o serviço de cluster (clussvc.exe), Monitor de Recursos de Cluster (rhs.exe), Console de Administração da Microsoft (MMC) e outros aplicativos.
Uma porta vinculada também pode estar no estado estabelecido (todos os aplicativos SAP no exemplo anterior têm uma entrada "estabelecida" relacionada).
A porta 61493 está sendo usada pelo host de serviços do Windows (svchost), mas "netstat -ano" não mostra nenhuma porta estabelecida relacionada. Neste caso, a porta está "reservada" pelo sistema operacional para este aplicativo.
Resumo:
Procure aplicativos/processos que apareçam na lista de vinculados, mas não na lista de estabelecidos.
Se deseja procurar aplicativos que usem/reservem uma porta específica, netstat -ano não é suficiente. Também precisa procurar portas no estado "vinculado".
Links: