sudo lsof -i :<port>
Пример: допустим, мы хотим узнать, кто использует порт 8080
❯ sudo lsof -i :8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python 8362 morington 7u IPv4 106282 0t0 TCP localhost:http-alt->localhost:54888 (CLOSE_WAIT)
python 8362 morington 9u IPv4 104610 0t0 TCP localhost:http-alt (LISTEN)
ps afx | grep <name>
Команда ps используется для отображения информации о процессах, запущенных в системе. Она выводит на экран список процессов, в том числе их идентификаторы (PID), имена команд, состояния, приоритеты и другие данные.
Аргумент a
указывает на то, что должны быть выведены все процессы, включая фоновые.
Аргумент f
указывает на то, что выходные данные должны быть разделены по процессам.
Аргумент x
указывает на то, что должны быть выведены только процессы, запущенные пользователем.
❯ ps afx | grep postgresql
692 pts/0 S+ 0:00 | \_ grep --color=auto postgresql
672 ? Ss 0:00 /usr/lib/postgresql/14/bin/postgres -D /var/lib/postgresql/14/main -c config_file=/etc/postgresql/14/main/postgresql.conf
Также отображает с какими параметрами запущен процесс.
-D /var/lib/postgresql/14/main
- указывает на каталог, в котором находится база данных PostgreSQL.-c config_file=/etc/postgresql/14/main/postgresql.conf
- указывает на файл конфигурации PostgreSQL.
ss -ntlp
Она выводит на экран список соединений, в том числе их идентификаторы (PID), имена процессов, состояния, адреса и порты.
Аргумент -n
указывает на то, что выходные данные должны быть в формате чисел.
Аргумент -t
указывает на то, что должны быть выведены только TCP-соединения.
Аргумент -l
указывает на то, что должны быть выведены только открытые соединения.
Аргумент -a
*- указывает на то, что должны быть выведены все соединения, включая закрытые.
Аргумент -u
*- указывает на то, что должны быть выведены только соединения, принадлежащие определенному пользователю.
Аргумент -g
*- указывает на то, что должны быть выведены только соединения, принадлежащие определенной группе.
Аргумент -i
*- указывает на то, что должны быть выведены только соединения с определенным интерфейсом.
Аргумент -o
*- указывает на то, какие столбцы должны быть выведены в выходных данных.
❯ ss -ntlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 244 127.0.0.1:5432 0.0.0.0:* users:(("postgres",pid=672,fd=5))
State
- состояние соединения. В вашем случае соединение находится в состоянии LISTEN, что означает, что оно ожидает входящих соединений.Recv-Q
- размер очереди входящих соединений. В вашем случае очередь пустая.Send-Q
- размер очереди исходящих соединений. В вашем случае очередь пустая.Local Address:Port
- локальный адрес и порт соединения. В вашем случае соединение слушает порт 5432 на локальном хосте (127.0.0.1).Peer Address:Port
- адрес и порт удаленного хоста, с которым установлено соединение. В вашем случае соединение ожидает соединений с любого удаленного хоста на любом порту.Process
- имя процесса, которому принадлежит соединение. В вашем случае соединение принадлежит процессу postgres с PID 672.
LISTEN
- соединение ожидает входящих соединений.ESTABLISHED
- соединение установлено.SYN-SENT
- соединение ожидает ответа на SYN-пакет.SYN-RECV
- соединение ожидает подтверждения SYN-ACK-пакета.FIN-WAIT-1
- соединение ожидает подтверждения FIN-пакета от удаленного хоста.FIN-WAIT-2
- соединение ожидает завершения передачи данных.CLOSE-WAIT
- соединение ожидает завершения передачи данных от удаленного хоста.LAST-ACK
- соединение ожидает подтверждения ACK-пакета от удаленного хоста.CLOSING
- соединение завершается.TIME-WAIT
- соединение находится в состоянии ожидания, чтобы избежать повторного установления соединения.CLOSED
- соединение закрыто.
Эти столбцы показывают размер очереди, в которой находятся входящие и исходящие соединения, соответственно. Если очередь пустая, это означает, что соединение не обрабатывает входящие или исходящие соединения. Если очередь заполнена, это означает, что соединение может замедляться или даже зависать.
Этот столбец показывает локальный адрес и порт соединения. Локальный адрес - это адрес хоста, на котором установлено соединение. Порт - это номер порта, через который установлено соединение.
Этот столбец показывает адрес и порт удаленного хоста, с которым установлено соединение. Если соединение ожидает входящих соединений, этот столбец будет пустым.
Этот столбец показывает имя процесса, которому принадлежит соединение. Это может быть полезно для диагностики проблем с соединениями.