Я хотел бы посмотреть, какие порты открыты на моей машине, например, какие порты слушает моя машина. Например. порт 80, если я установил веб-сервер и т. д.
Есть ли какая-либо команда для этого?
Nmap ("Network Mapper") является бесплатной утилитой с открытым исходным кодом для исследования сети или аудита безопасности.
Используйте nmap 192.168.1. 33
для внутреннего ПК или nmap внешнего IP адреса
.
Дополнительная информация man nmap
.
Zenmap является официальным фронтендом GUI.
Я всегда использовал это:
sudo netstat -ntlp | grep LISTEN
Если команда netstat
недоступна, установите ее с помощью:
sudo apt install net-tools
Другие хорошие способы узнать, какие порты перечислены и каковы правила брандмауэра:
sudo netstat -tulpn
sudo ufw status
Этого достаточно, чтобы показать, что существует процесс, прослушивающий IP-адрес 0.0.0.0
(необходим, чтобы он отвечал на любой запрос) на порту 80 (стандартный веб-сервер номер порта). В моем случае это показывает, что это веб-сервер lighttpd
$ sudo netstat -ntlp | grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2495/lighttpd
. Если позже вы захотите убедиться, что единственное, что вы разрешаете через брандмауэр, это порт 80, я часто использую ShieldsUp с www.grc.com для выполнения брандмауэра тест.
sudo iptables -L
выведет список правил порта для вашего компьютера.
Обратите внимание: если вы используете брандмауэры ufw или shorewall, вывод может быть трудночитаемым.
В этом случае лучше использовать, например, sudo ufw status
.
Само по себе это не очень полезно, поскольку даже если порт открыт, в доступе все равно будет отказано, если на этом порту нет процессов.
Для вывода списка открытых портов используйте команду netstat
.
Например:
$ sudo netstat -tulpn | grep LISTEN
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 5452/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1037/cupsd
tcp6 0 0 ::1:631 :::* LISTEN 1037/cupsd
В приведенном выше примере три службы привязаны к адресу обратной связи.
Службы IPv4, привязанные к адресу обратной связи «127.0.0.1», доступны только на локальном компьютере. Эквивалентный адрес обратной связи для IPv6 - «:: 1». IPv4-адрес «0.0.0.0» означает «любой IP-адрес», что может означать, что другие машины потенциально могут подключаться к любому из локально настроенных сетевых интерфейсов на определенном порту.
Другой метод - использовать lsof
команда:
$ sudo lsof -nP -i | grep LISTEN
cupsd 1037 root 9u IPv6 11276 0t0 TCP [::1]:631 (LISTEN)
cupsd 1037 root 10u IPv4 11277 0t0 TCP 127.0.0.1:631 (LISTEN)
dnsmasq 5452 nobody 5u IPv4 212707 0t0 TCP 127.0.0.1:53 (LISTEN)
Подробнее см. man netstat
или man lsof
.
Если вы ищете непрерывный мониторинг портов для серверных машин или локальных, я думаю, вы также можете использовать графическую версию nmap, то есть Zenmap для более подробной версии
Zenmap - официальный графический интерфейс пользователя (GUI) для сканера безопасности Nmap.
Доступная поддержка (Linux, Windows, Mac OS X, BSD и т. Д.)
Взгляните на этот вид инструмента:
при условии, что u хочу проверить порт 3000:
netstat -na | grep 3000
сс: Распечатать: сетевые соединения таблицы маршрутизации статистика интерфейса маскарадные связи многоадресное членство
Install:
sudo apt install net-tools
Example:
~$ ss -ntlp | grep LISTEN
>
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:*
LISTEN 0 5 127.0.0.1:631 0.0.0.0:*
LISTEN 0 5 [::1]:631 [::]:*
LISTEN 0 50 [::ffff:127.0.0.1]:9614 *:*
В последней версии дистрибутива Linux, скорее всего, вы больше не найдете команду netstat
.
$ netstat
Command 'netstat' not found, but can be installed with:
sudo apt install net-tools
$
Однако, если вы хотите ее использовать, продолжайте и установите ее с помощью sudo apt install net-tools
команда.
К вашему сведению, netstat устарел (см. Страницу руководства),поэтому вы должны использовать ss
вместо netstat
.
Эта программа устарела. Замена netstat - ss.
Замена netstat -r - это ip route. Замена netstat -i - это ip -s ссылка. Вместо netstat -g используется ip maddr.
Например,
$ ss -lnt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 5 127.0.1.1:53 *:*
LISTEN 0 128 127.0.0.1:631 *:*
LISTEN 0 128 ::1:631 :::*
Описание
ss = другая утилита для исследования сокетов
-l, --listening Отображать только прослушивающие сокеты (по умолчанию они опущены).
-n, --numeric Не пытайтесь разрешить имена служб.
-t, --tcp Отображение сокетов TCP.