
Я хочу перечислить процессы, которые подключены к определенному IP и порту. Есть ли какая-то команда, чтобы добиться этого?
решение1
С lsof
:
lsof -nPi @192.168.1.123:443
(добавьте -t
, если вам нужны только идентификаторы процессов).
Здесь также перечислены сокеты, привязанные к этому адресу.
С ss
(из iproute2
Linux):
ss state established dst 192.168.1.123 'dport = :443'
С PSMisc fuser
:
fuser -n tcp ,192.168.1.123,443
fuser -n udp ,192.168.1.123,443
Однако следует отметить, что он (по крайней мере, версия 22.21) не будет сообщать IPv4-адреса, сопоставленные с IPv6, для них вам понадобятся отдельные запросы:
fuser -n tcp ,::FFFF:C0A8:017B,443
( ::FFFF:C0A8:017B
являясь версией 192.168.1.123, сопоставленной с IPv6).
решение2
Посмотрите, ss
что является заменой старогоnetstat
Например:
ss -atp
Как пользователь root, выведет список всех текущих TCP-подключений на сервере с именами процессов и PID.
man ss
для получения дополнительных опций.
С наилучшими пожеланиями
решение3
Формат:
lsof -i [tcp|udp][@hostaddr][:[наименование услуги|порт]]
Например,
lsof -i [email protected]:443
Видетьlsof(8).