Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
В процессе использования компьютера иногда вы можете столкнуться с ситуацией, когда порт занят. В это время вам необходимо проверить занятость порта, чтобы устранить проблему. В системах Linux время от времени также происходит занятость порта. Обычно для проверки занятости порта можно использовать команды lsof и netstat.
Ниже мы представим команды lsof и netstat, используемые для проверки занятости портов в Linux:
1. команда lsof
Функция команды lsof(list open files): вывести список открытых файлов в текущей системе. В системе Linux все представляет собой файл, и файлы могут иметь доступ не только к обычным данным, но также к сетевым подключениям и оборудованию. Подобно TCP, UDP-сокетам и т. д., в системе существуют соответствующие файловые дескрипторы, которые обеспечивают общий интерфейс взаимодействия приложений и операционной системы. Поскольку список дескрипторов файлов, открытых приложением, предоставляет много информации о самом приложении, этот список можно просмотреть с помощью команды lsof для мониторинга системы.
Чтобы проверить занятость определенного порта, используйте команду:
lsof -i:port, например, чтобы проверить использование порта 9090: lsof -i:9090.
# lsof -i:9090
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Thriftc 32551 root 6u IPv6 23200961 0t0 TCP *:websm (LISTEN)
Параметры команды lsof:
-a: вывести список процессов, открывающих файлы;
-c: вывести список файлов, открытых указанным процессом;
-g: вывести список деталей процесса номера GID;
-d: вывести список процессов, занимающих номер файла;
+d: список открытых файлов в каталоге;
+D: Рекурсивно выводить список открытых файлов в каталоге;
-n: вывести список файлов с использованием NFS;
-i: список подходящих процессов. (4, 6, протокол, :порт, @ip)
-p: вывести список файлов, открытых указанным номером процесса;
-u: вывести список деталей процесса номера UID;
-h: Отобразить справочную информацию;
-v: Отобразить информацию о версии.
2. команда netstat
Netstat — это консольная команда, очень полезный инструмент для мониторинга сетей TCP/IP. Он может отображать таблицу маршрутизации, фактические сетевые подключения и информацию о состоянии каждого сетевого интерфейса. Netstat используется для отображения статистических данных, связанных с протоколами IP, TCP, UDP и ICMP. Обычно он используется для проверки сетевого подключения каждого порта устройства. Поэтому вы можете использовать команду netstat для проверки занятости портов в системе.
Чтобы просмотреть состояние процесса указанного номера порта, используйте команду: netstat -tunlp | grep port Например, чтобы просмотреть процесс порта 9090: netstat -tunlp | grep 9090.
# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:34797 0.0.0.0:* LISTEN 1554/rpc.statd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1497/rpcbind
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 31165/nginx
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1988/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2102/master
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 31165/nginx
tcp 0 0 :::9090 :::* LISTEN 32551/./Thriftc
tcp 0 0 :::53705 :::* LISTEN 1554/rpc.statd
tcp 0 0 :::111 :::* LISTEN 1497/rpcbind
tcp 0 0 :::22 :::* LISTEN 1988/sshd
tcp 0 0 ::1:25 :::* LISTEN 2102/master
udp 0 0 0.0.0.0:111 0.0.0.0:* 1497/rpcbind
udp 0 0 127.0.0.1:882 0.0.0.0:* 1554/rpc.statd
udp 0 0 192.168.0.16:123 0.0.0.0:* 2013/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 2013/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 2013/ntpd
udp 0 0 0.0.0.0:48037 0.0.0.0:* 1554/rpc.statd
udp 0 0 0.0.0.0:824 0.0.0.0:* 1497/rpcbind
udp 0 0 0.0.0.0:68 0.0.0.0:* 1585/dhclient
udp 0 0 :::33758 :::* 1554/rpc.statd
udp 0 0 :::111 :::* 1497/rpcbind
udp 0 0 fe80::f816:3eff:fe49:fae:123 :::* 2013/ntpd
udp 0 0 ::1:123 :::* 2013/ntpd
udp 0 0 :::123 :::* 2013/ntpd
udp 0 0 :::824 :::* 1497/rpcbind
# netstat -tunlp | grep 9090
tcp 0 0 :::9090 :::* LISTEN 32551/./Thriftc
параметры команды netstat:
-a (все) Отобразить все подключенные сокеты
-t (tcp) отображает только параметры, связанные с TCP.
-u (udp) Отображает только параметры, связанные с udp.
-n Отказаться от отображения псевдонимов и преобразовать все числа, которые могут отображаться, в числа.
-l Показывать только статус прослушивающего сервиса
-p Отображает имя программы, создающей связанные ссылки.
-r Показать информацию о маршрутизации, таблицу маршрутизации
-e Отображение расширенной информации, такой как uid и т. д.
-s Выполнить статистику по каждому протоколу
-c Выполнять команду netstat через регулярные промежутки времени.
Совет: Статус LISTEN и LISTENING можно увидеть только с помощью -a или -l.
Проверка занятости порта в Linux всегда была распространенной проблемой при использовании операционной системы. Нам сложно избежать этой ситуации. Мы можем только принять соответствующие меры для проверки занятости порта и последующего ее решения. В учебнике по Linux на этом сайте есть решение по портированию. Заинтересованные друзья могут посмотреть, изучить и проверить осуществимость решения на практике.
Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/164644.html Исходная ссылка: https://javaforall.cn