Takie znane narzędzia, takie jak iftop / iptraf, wyświetlają sieciowe operacje we / wy na interfejs i połączenie. Czy istnieje sposób, aby zobaczyć statystyki we / wy sieci na proces?
Takie znane narzędzia, takie jak iftop / iptraf, wyświetlają sieciowe operacje we / wy na interfejs i połączenie. Czy istnieje sposób, aby zobaczyć statystyki we / wy sieci na proces?
Odpowiedzi:
Nethogs wygląda tak, jakby zrobił to, co chcesz.
EDYCJA: Musiałem zainstalować ncurses-devel, libpcap i libpcap-devel, aby zbudować.
Aby dowiedzieć się, jakie połączenia są powiązane z każdym procesem, użyj lsof. Na przykład:
lsof | grep TCP
To da ci listę połączeń, takich jak to:
bash 10887 luke 3u IPv4 44638801 0t0 TCP littleyerry.example.com:55212->barista.example.com:ldap (ESTABLISHED)
bash 10913 luke 3u IPv4 44638905 0t0 TCP littleyerry.example.com:55216->barista.example.com:ldap (ESTABLISHED)
ssh 10935 luke 3u IPv4 44639001 0t0 TCP littleyerry.example.com:55219->barista.example.com:ldap (ESTABLISHED)
ssh 10935 luke 4u IPv4 44639008 0t0 TCP littleyerry.example.com:59459->launchpad.example.com:ssh (ESTABLISHED)
bash 10938 luke 3u IPv4 44639107 0t0 TCP littleyerry.example.com:55221->barista.example.com:ldap (ESTABLISHED)
Stamtąd powinieneś być w stanie dowiedzieć się o każdym połączeniu indywidualnie za pomocą wspomnianych narzędzi (iftop, iptraf). Możesz zbudować mały skrypt do agregowania określonych danych, których szukasz.
lsof -niTCP
jest równoważny, ale o wiele szybszy i lsof -niTCP -sTCP:ESTABLISHED
pokazuje bieżące połączenia.