Поиск по сайту:

Как узнать список всех открытых портов в Linux


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

В компьютерных сетях и, точнее, с точки зрения программного обеспечения, порт — это логический объект, который действует как конечная точка связи для идентификации данного приложения или процесса в операционной системе Linux. Это 16-битное число (от 0 до 65535), которое отличает одно приложение от другого в конечных системах.

Два наиболее популярных транспортных протокола Интернета: Протокол управления передачей (TCP) и Протокол пользовательских дейтаграмм (UDP). и другие менее известные протоколы используют номера портов для сеансов связи (номера портов источника и назначения в сочетании с IP-адресами источника и назначения).

Кроме того, комбинация IP-адреса, порта и протокола, например TCP/UDP, называется сокетом, и каждая служба должна иметь уникальный сокет.

Ниже приведены различные категории портов:

  1. 0-1023 – хорошо известные порты, также называемые системными портами.
  2. 1024-49151 – зарегистрированные порты, также известные как пользовательские порты.
  3. 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:*                               

Где,

  1. -l — печатает только прослушиваемые сокеты
  2. -n — показывает номер порта
  3. -t – включает список TCP-портов
  4. -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 или задав вопрос через форму ответа ниже.