Сетевой порт в 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, с помощью различных утилит командной строки.