Как вывести список всех текущих сетевых подключений для данного PID?

Похоже, что монтирования остались, но стали недоступными.

В качестве теста я сделал следующее:

  1. Вступил в новое пространство имен и смонтировал tmpfs:
root@localhost:~# mkdir tmp
root@localhost:~# unshare -m bash
root@localhost:~# mount -t tmpfs tmpfs tmp
  1. Проверял использование памяти до и после создания 200-мегабайтного файла в tmpfs. Вы можете заметить, что «общее» использование увеличилось с 404 мегабайт до 604 мегабайт:
root@localhost:~# free -m
              total        used        free      shared  buff/cache   available
Mem:           9885        2966         681         404        6237        6148
Swap:          8191         293        7898
root@localhost:~# dd if=/dev/urandom of=tmp/dummy bs=1M count=200
200+0 records in
200+0 records out
209715200 bytes (210 MB, 200 MiB) copied, 12.0075 s, 17.5 MB/s
root@localhost:~# free -m
              total        used        free      shared  buff/cache   available
Mem:           9885        2966         481         604        6437        5948
Swap:          8191         293        7898
  1. После выхода из оболочки без общего доступа память не была восстановлена:
root@localhost:~# exit
root@localhost:~# free -m
              total        used        free      shared  buff/cache   available
Mem:           9885        2963         484         604        6437        5951
Swap:          8191         293        7898

В то время как, если я размонтирую tmpfs, общее количество общее возвращается к исходному значению.

7
29.06.2017, 00:45
4 ответа

С 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)
9
27.01.2020, 20:16

С ss.

В качестве примера у меня есть pid изproftpd:

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

Теперь соберите вывод ssдля этого идентификатора процесса.

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

Где:

  • -a:Показать все разъемы
  • -n:Не преобразовывать общеизвестные номера портов в имена(*:22станет*:ssh)
  • -p:Показать информацию о процессе

Будьте осторожны . Этот подход может привести к некоторым ложным срабатываниям, например, если у вас есть pid 22, это также может быть порт tcp, который слушает ваш сервер ssh.

4
27.01.2020, 20:16

Вероятно, это покажет нужную вам информацию:

netstat -46pan

Но все номера процессов будут показаны только в том случае, если команда запущена от имени пользователя root.
Итак, как корень:

netstat -46pan | grep "$pid"
2
27.01.2020, 20:16

Мне нравится nethogs, приложение CLI, которое показывает сетевую активность каждого -процесса в режиме реального времени. Технически этот ответ немного отличается от основного вопроса ОП, но он может предоставить запрошенную информацию, а затем и некоторую. Вероятно, это будет полезно для многих людей, интересующихся этим вопросом.

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
0
04.01.2021, 18:01

Теги

Похожие вопросы