Как узнать список всех открытых портов в Linux
В этой статье мы кратко поговорим о портах в компьютерных сетях и перейдем к тому, как составить список всех открытых портов в Linux.
В компьютерных сетях и, точнее, с точки зрения программного обеспечения, порт — это логический объект, который действует как конечная точка связи для идентификации данного приложения или процесса в операционной системе Linux. Это 16-битное число (от 0 до 65535), которое отличает одно приложение от другого в конечных системах.
Два наиболее популярных транспортных протокола Интернета: Протокол управления передачей (TCP) и Протокол пользовательских дейтаграмм (UDP). и другие менее известные протоколы используют номера портов для сеансов связи (номера портов источника и назначения в сочетании с IP-адресами источника и назначения).
Кроме того, комбинация IP-адреса, порта и протокола, например TCP/UDP, называется сокетом, и каждая служба должна иметь уникальный сокет.
Ниже приведены различные категории портов:
- 0-1023 – хорошо известные порты, также называемые системными портами.
- 1024-49151 – зарегистрированные порты, также известные как пользовательские порты.
- 49152-65535 – динамические порты, также называемые частными портами.
Вы можете просмотреть список различных приложений и комбинацию портов/протоколов в файле /etc/services
в Linux с помощью команды cat:
cat /etc/services
OR
cat /etc/services | less
/etc/services:
$Id: services,v 1.48 2009/11/11 14:32:31 ovasik Exp $
#
Network services, Internet style
IANA services version: last updated 2009-11-10
#
Note that it is presently the policy of IANA to assign a single well-known
port number for both TCP and UDP; hence, most entries here have two entries
even if the protocol doesn't support UDP operations.
Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
are included, only the more common ones.
#
The latest IANA port assignments can be gotten from
http://www.iana.org/assignments/port-numbers
The Well Known Ports are those from 0 through 1023.
The Registered Ports are those from 1024 through 49151
The Dynamic and/or Private Ports are those from 49152 through 65535
#
Each line describes one service, and is of the form:
#
service-name port/protocol [aliases ...] [# comment]
tcpmux 1/tcp # TCP port service multiplexer
tcpmux 1/udp # TCP port service multiplexer
rje 5/tcp # Remote Job Entry
rje 5/udp # Remote Job Entry
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
systat 11/udp users
daytime 13/tcp
daytime 13/udp
qotd 17/tcp quote
qotd 17/udp quote
msp 18/tcp # message send protocol
msp 18/udp # message send protocol
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp-data 20/udp
21 is registered to ftp, but also used by fsp
ftp 21/tcp
ftp 21/udp fsp fspd
ssh 22/tcp # The Secure Shell (SSH) Protocol
ssh 22/udp # The Secure Shell (SSH) Protocol
telnet 23/tcp
telnet 23/udp
Чтобы вывести список всех открытых портов или работающих в данный момент портов, включая TCP и UDP в Linux, мы будем использовать netstat — мощный инструмент для мониторинга сетевых подключений и статистики.
$ netstat -lntu
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 :::80 :::* LISTEN
tcp 0 0 :::25 :::* LISTEN
udp 0 0 0.0.0.0:68 0.0.0.0:*
Где,
-l
— печатает только прослушиваемые сокеты-n
— показывает номер порта-t
– включает список TCP-портов-u
– включает список портов udp
Вы также можете использовать команду ss, хорошо известную полезную утилиту для проверки сокетов в системе Linux. Запустите команду ниже, чтобы получить список всех открытых портов TCP и UCP:
$ ss -lntu
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 *:68 *:*
tcp LISTEN 0 128 :::22 :::*
tcp LISTEN 0 128 *:22 *:*
tcp LISTEN 0 50 *:3306 *:*
tcp LISTEN 0 128 :::80 ::*
tcp LISTEN 0 100 :::25 :::*
tcp LISTEN 0 100 *:25
Обязательно прочитайте страницы руководства по приведенным выше командам для получения дополнительной информации об использовании.
Таким образом, понимание концепции портов в компьютерных сетях очень важно для системных и сетевых администраторов. Вы также можете просмотреть это руководство по netstat с простыми, точными и хорошо объясненными примерами.
И последнее, но не менее важное: свяжитесь с нами, поделившись другими способами получения списка открытых портов в Linux или задав вопрос через форму ответа ниже.