Você pode usar ss
do pacote iproute2 (que é semelhante a netstat
):
ss -l -p -n | grep "pid=1234,"
ou (para a versão anterior do iproute2):
ss -l -p -n | grep ",1234,"
Substitua 1234 pelo PID do programa.
Pretendo listar todas as portas que um PID está atualmente escutando.
Como você recomendaria que eu recebesse esse tipo de dados sobre um processo?
Não estou ciente de como usar as ferramentas iproute2
. Mas, como solução alternativa, você pode tentar fazer isso.
lsof -Pan -p PID -i
deve fornecer as informações que você está procurando.
Resultado
lsof -Pan -p 27808 -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 27808 apache 5u IPv6 112811294 0t0 TCP *:80 (LISTEN)
httpd 27808 apache 7u IPv6 112811298 0t0 TCP *:8443 (LISTEN)
httpd 27808 apache 9u IPv6 112811303 0t0 TCP *:443 (LISTEN)
Eu recebi este comando de aqui , mas não tenho certeza do link exato, pois tenho todos anotados no bloco de anotações. Mas você pode dar uma olhada de lá também.
Você pode usar netstat
para descobrir o pid de cada processo de escuta.
netstat - Imprima conexões de rede, tabelas de roteamento, estatísticas de interface, conexões masquerade e associações multicast
-a, --all Mostrar os conectores de escuta e não escuta (para TCP isto significa conexões estabelecidas). Com a opção --interfaces, mostre as interfaces que não estão marcadas
- numérico, -n Mostrar endereços numéricos em vez de tentar determinar nomes de host, porta ou usuário simbólicos.
-p, --programa Mostrar o PID e o nome do programa ao qual cada soquete pertence.
Aqui está um exemplo:
# netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1507/rpcbind
tcp 0 0 0.0.0.0:51188 0.0.0.0:* LISTEN 1651/rpc.statd
tcp 0 0 0.0.0.0:1013 0.0.0.0:* LISTEN 1680/ypbind
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1975/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1763/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2081/master
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 2119/mongod
tcp 0 48 172.16.33.73:22 172.16.127.110:51850 ESTABLISHED 25473/sshd
tcp 0 0 172.16.33.73:22 172.16.127.110:51214 ESTABLISHED 24699/sshd
tcp 0 0 :::111 :::* LISTEN 1507/rpcbind
tcp 0 0 :::9200 :::* LISTEN 1994/java
tcp 0 0 :::9300 :::* LISTEN 1994/java
tcp 0 0 :::22 :::* LISTEN 1975/sshd
tcp 0 0 ::1:631 :::* LISTEN 1763/cupsd
tcp 0 0 ::1:25 :::* LISTEN 2081/master
tcp 0 0 :::59162 :::* LISTEN 1651/rpc.statd
A resposta do @jofel mostra a ferramenta apropriada para usar, ss
, aqui estão as substituições para o outro ferramentas de rede no iproute2.
Os comandos reprovados e seus equivalentes iproute2 são os seguintes:
deprecated replacement(s)
========== ==============
- arp ip n (ip neighbor)
- ifconfig ip a (ip addr), ip link, ip -s (ip -stats)
- iptunnel ip tunnel
- iwconfig iw
- nameif ip link, ifrename
- netstat ss, ip route (for netstat-r), ip -s link (for netstat -i),
ip maddr (for netstat-g)
- route ip r (ip route)
A lista básica também está na Wikipedia: link .
Outro método para lsof
se você não conhece o PID, mas apenas o nome do Programa:
lsof -Pa -p $(pgrep [programName]) -i