Linux

Как проверить используется ли порт в Linux ?

Сетевой порт в Linux — это не что иное, как число, обозначающее одну из сторон соединения между двумя системами. Все сетевые устройства используют номера портов, чтобы определить, какому процессу следует доставить сообщение. Доменное имя и IP-адрес можно сравнить с уличными адресами, а номера портов — с номерами комнат.

Популярные номера портов в Linux:

  • HTTP – TCP 80
  • HTTPS – TCP 443
  • POP3 – TCP 110
  • SMTP – TCP 25
  • SSH – TCP 22
  • DNS/DOMAIN – TCP/UDP 53

Используйте следующие команды для вывода номеров всех портов:

cat /etc/services
grep -w 80 /etc/services
egrep -w ’53/(tcp|udp)’ /etc/services

 

Как узнать занят ли порт в Linux

Откроем окно терминала и наберём одну из следующих команд:

sudo lsof -i -P -n | grep LISTEN
sudo netstat -tulpn | grep LISTEN
sudo netstat -tulpn | grep :443
sudo ss -tulpn | grep LISTEN
sudo ss -tulpn | grep ‘:22’

Теперь рассмотрим один из примеров более детально. С помощью команды ss или netstat проверим используется ли TCP порт 443 в нашей системе

sudo netstat -tulpn | grep :443
sudo ss -tulpn | grep :443

Если порт используется, то вывод будет таким


tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 3183/nginx: master

В нашем примере порт 443 используется сервисом Nginx. Ключи:

  • -t : показывает TCP сокет/порт
  • -u : показывает UDP сокет/порт
  • -l : показывает только открытые порты
  • -p : показывает название процесса который открыл сокет/порт
  • -n : просмотреть адреса и номера портов в числовом формате.

Получение списка всех открытых портов в работе

Введите:

sudo lsof -i -P -n | grep LISTEN
sudo ss -tulpn
sudo netstat -tulpn

Получите примерно следующее:


Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 3146/php-fpm: maste
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 3150/exim
tcp 0 0 0.0.0.0:333 0.0.0.0:* LISTEN 3183/nginx: master
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3183/nginx: master
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 3150/exim
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 3161/pure-ftpd (SER
tcp 0 0 0.0.0.0:33333 0.0.0.0:* LISTEN 3142/sshd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 3150/exim
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 3183/nginx: master

Заключение

Вы научились определять, используется ли тот или иной порт в системе под управлением Linux, с помощью различных утилит командной строки.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *