특정 PID에 대한 현재 네트워크 연결을 모두 나열하는 방법은 무엇입니까?

특정 PID에 대한 현재 네트워크 연결을 모두 나열하는 방법은 무엇입니까?

PID가 있는 경우 해당 프로세스에서 열린 모든 연결을 어떻게 찾을 수 있습니까? 나는 전에 시도했다

netstat | grep $PID 

그러나 이것은 작동하지 않는 것 같습니다. 해당 PID를 가져와 열려 있는 모든 네트워크 연결을 인쇄하려면 명령이 필요하지만 방법을 모르겠습니다. 나는 다른 형식에서 strace에 관한 내용을 본 적이 있지만 나에게는 이해가 되지 않습니다.

답변1

그리고 lsof:

lsof -ai -p "$pid"

그렇지 않은 경우 root프로세스에 대해서만 얻을 수 있습니다.

기술적으로 이는 다음에만 적용됩니다.인터넷소켓(연결 여부).

모두 구축하고 싶다면연결하다(또는 관련) 인터넷(예: Unix 도메인 소켓) 유무에 관계없이 다음을 시도해 볼 수 있습니다(적어도 Linux에서는 lsof 4.89 사용).

lsof  -Ep "$pid" | grep -e '(ESTABLISHED)$' -e '->INO=.* '

예를 들어, 제가 이 답변을 작성하는 데 사용한 프로세스의 경우 다음과 같습니다.

firefox 6261 chazelas    3u     unix 0xffff88026785d000       0t0   741948 type=STREAM ->INO=743009 4244,dbus-daem,58u
firefox 6261 chazelas    4u     unix 0xffff88017194c000       0t0   741280 type=STREAM ->INO=742999 3575,Xorg,57u
firefox 6261 chazelas    6u     unix 0xffff8802f544d400       0t0   743000 type=STREAM ->INO=741281 4244,dbus-daem,56u
firefox 6261 chazelas   11u     unix 0xffff8802f544e800       0t0   743004 type=STREAM ->INO=737278 4167,cinnamon-,21u
firefox 6261 chazelas   14u     unix 0xffff8801474b3c00       0t0   737279 type=STREAM ->INO=737280 6261,firefox,15u
firefox 6261 chazelas   15u     unix 0xffff8801474b7c00       0t0   737280 type=STREAM ->INO=737279 6261,firefox,14u
firefox 6261 chazelas   34u     unix 0xffff8801d0d01800       0t0   741294 type=STREAM ->INO=743006 4244,dbus-daem,57u
firefox 6261 chazelas   45u     IPv4             741950       0t0      TCP UNKNOWN:44232->host24-rangeA-akamai-aanp.cdn.thlon.isp.sky.com:http (ESTABLISHED)
firefox 6261 chazelas   53u     unix 0xffff880178356800       0t0   741947 type=STREAM ->INO=743008 3575,Xorg,56u
firefox 6261 chazelas   60u     IPv4             743011       0t0      TCP UNKNOWN:52760->a95-101-128-57.deploy.akamaitechnologies.com:http (ESTABLISHED)
firefox 6261 chazelas   73u     IPv4             742158       0t0      TCP UNKNOWN:54674->lhr35s01-in-f14.1e100.net:http (ESTABLISHED)
firefox 6261 chazelas   87u     IPv4             743521       0t0      TCP UNKNOWN:33564->stackoverflow.com:https (ESTABLISHED)
firefox 6261 chazelas   91u     IPv4             743522       0t0      TCP UNKNOWN:53940->93.184.220.29:http (ESTABLISHED)
firefox 6261 chazelas   92u     IPv4             742153       0t0      TCP UNKNOWN:36836->151.101.65.69:https (ESTABLISHED)
firefox 6261 chazelas   94u     IPv4             742154       0t0      TCP UNKNOWN:33716->192.0.73.2:https (ESTABLISHED)
firefox 6261 chazelas   96u     IPv4             742157       0t0      TCP UNKNOWN:51166->lhr26s04-in-f234.1e100.net:https (ESTABLISHED)
firefox 6261 chazelas  113u     IPv4             744875       0t0      TCP UNKNOWN:43262->lhr35s01-in-f1.1e100.net:https (ESTABLISHED)

답변2

그리고 ss.

예를 들어, 다음의 pid가 있습니다 proftpd.

[root@ftp ~]# ps fax | grep proftpd
 7461 ?        Ss     1:46 proftpd: (accepting connections)

ss이제 해당 프로세스 ID의 출력을 grep하십시오.

[root@ftp ~]# ss -nap | grep 7461
LISTEN     0      5            *:21         *:*      users:(("proftpd",7461,0))

어디:

  • -a:모든 소켓 표시
  • -n: 잘 알려진 포트 번호를 이름으로 확인하지 *:22마세요 *:ssh.
  • -p: 공정정보 표시

주의 깊은. 이 접근 방식은 일부 잘못된 긍정을 생성할 수 있습니다. 예를 들어 pid 22가 있으면 서버 ssh가 수신 대기 중인 TCP 포트일 수도 있습니다.

답변3

아마도 다음과 같이 원하는 정보가 표시될 것입니다.

netstat -46pan

그러나 명령이 루트로 실행되면 모든 프로세스 번호만 표시됩니다.
따라서 루트로서:

netstat -46pan | grep "$pid"

답변4

nethogs저는 프로세스별 네트워크 활동을 실시간으로 표시하는 CLI 애플리케이션인 CLI의 팬입니다 . 기술적으로 이 답변은 OP의 핵심 질문과 약간 다르지만 필요한 정보와 일부 정보를 제공합니다. 이 문제에 관심이 있는 많은 사람들에게 유용할 수 있습니다.

sudo apt install nethogs
sudo nethogs

애플리케이션은 다음과 같으며 매초마다 디스플레이를 업데이트합니다.

NetHogs version 0.8.5-2build2

    PID USER     PROGRAM                                  DEV        SENT      RECEIVED       
   4422 davidp.. /usr/lib/firefox/firefox                 wlp0s2      1.304       8.101 KB/sec
   6972 davidp.. ..sr/lib/slack/slack --type=utility --u  wlp0s2      0.000       0.000 KB/sec
      ? root     unknown TCP                                          0.000       0.000 KB/sec

  TOTAL                                                               1.304       8.101 KB/sec

관련 정보