Часто вам может понадобиться найти имена портов и номера по некоторым причинам.
Если это так, вам повезло.
Сегодня в этом кратком уроке мы увидим самые простые и быстрые способы найти номер порта службы в Unix-подобных операционных системах.
На самом деле может быть много способов, но в настоящее время я знаю только о следующих трех методах.
Найти номер порта по службе Linux
Метод 1 – Использование команды Grep:
Чтобы найти номер порта по умолчанию для данной службы в Linux с помощью команды grep, просто запустите:
$ grep <port> /etc/services
Например, чтобы найти порт по умолчанию службы SSH, просто запустите:
$ grep ssh /etc/services
Эта команда должна работать в большинстве дистрибутивов Linux.
Вот пример вывода из тестового окна Arch Linux:
ssh 22/tcp ssh 22/udp ssh 22/sctp sshell 614/tcp sshell 614/udp netconf-ssh 830/tcp netconf-ssh 830/udp sdo-ssh 3897/tcp sdo-ssh 3897/udp netconf-ch-ssh 4334/tcp snmpssh 5161/tcp snmpssh-trap 5162/tcp tl1-ssh 6252/tcp tl1-ssh 6252/udp ssh-mgmt 17235/tcp ssh-mgmt 17235/udp
Как видно из приведенного выше вывода, номер порта по умолчанию для службы SSH равен 22.
Найдем номер порта веб-сервера Apache.
Для этого введите:
$ grep http /etc/services # http://www.iana.org/assignments/port-numbers http 80/tcp www www-http # WorldWideWeb HTTP http 80/udp www www-http # HyperText Transfer Protocol http 80/sctp # HyperText Transfer Protocol https 443/tcp # http protocol over TLS/SSL https 443/udp # http protocol over TLS/SSL https 443/sctp # http protocol over TLS/SSL gss-http 488/tcp gss-http 488/udp webcache 8080/tcp http-alt # WWW caching service webcache 8080/udp http-alt # WWW caching service [...]
Как насчет номера порта FTP? Это легко!
$ grep ftp /etc/services 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 tftp 69/tcp [...]
Метод 2 – Использование команды getent
Как вы можете видеть, приведенные выше команды показывают все имена портов и номера для данного поискового термина «ssh», «http» и «ftp».
Это означает, что вы получите довольно длинный вывод всех имен портов, соответствующих данному поисковому запросу.
Однако вы можете сузить результат до точного вывода с помощью команды «getent», как показано ниже:
$ getent services ssh ssh 22/tcp
$ getent services http http 80/tcp www www-http
$ getent services ftp ftp 21/tcp
Если вы не знаете имя порта, а только номер порта, просто замените имя порта номером, как показано ниже:
$ getent services 80 http 80/tcp
Чтобы отобразить все имена портов и номера, просто запустите:
$ getent services
Способ 3 – Использование утилиты Whatportis
Убедитесь, что вы установили диспетчер пакетов PIP.
$ pip install whatportis
Теперь вы можете найти, какой порт связан с сервисом, как показано ниже.
$ whatportis ssh
$ whatportis ftp
$ whatportis http
Пример вывода с моего сервера CentOS 7:
Если вы не знаете точного имени службы, используйте -подобный флаг, чтобы отобразить соответствующие результаты.
$ whatportis mysql --like
Вышеупомянутые команды помогли вам найти, какой порт связан с сервисом. Вы также можете найти, какая cлужба связана с номером порта, как показано ниже.
$ whatportis 993
Вы даже можете отображать результаты в формате JSON.
$ whatportis 993 --json