Как я могу перечислить мои открытые порты в Debian?

59

Что такое команда для отображения списка открытых портов на сервере Debian?

Я пытался, netstat -a | egrep 'Proto|LISTEN'но я хотел бы что-то более конкретное, что на самом деле перечисляет номер порта.

Леонель
источник

Ответы:

86
 netstat -pln

-l-pотобразит список прослушиваемых портов, также отобразит процесс, -nпокажет имена портов вместо имен. Добавьте, -tчтобы показать только порты TCP.

Камень
источник
13
Для -pправильной работы вам нужно запустить это как root, так что sudo netstat -tplnиначе столбец процесса не будет особенно полезен, если вы не пользователь, чей процесс прослушивает данный порт.
CJC
21

lsof -i -P

Проверьте справочную страницу, так lsofкак нет недостатка в опциях. -Pв нем указан номер порта, а не имя, взятое из « /etc/servicesЗапуск от имени пользователя root», однако это предоставит вам список всех активных сетевых подключений и их состояние (прослушивание, установлено и т. д.).

Джефф Ферланд
источник
Это должен быть правильный ответ. Netstat не устанавливается по умолчанию
Хосе
11

Чего хотят почти все (TCP и UDP) netstat -tunlp.

Я использую это каждый день, может каждый час. Хак 'lsof' более переносим (работает и в Solaris), но в Debian это не существенный пакет, его нужно установить.

zerodeux
источник
Да, и запустите его через sudo.
Мартин Химельс
2
Мой друг научил меня запоминать эту команду с именем цветка. netstat -tulpenФлаг eдает дополнительную информацию.
Deele
1
И теперь, в 2018 году, моя новая версия Debian не имеет, netstatа есть lsof. :)
Джейсон
10

Я большой поклонник netstat -ntlpи lsof -i, как уже упоминалось, оба.

Новая (er) команда для меня - ss .

Вызов похож на:

ss -l

Хорошо иметь опции с точки зрения команд и флагов.

dmourati
источник
1
варианты особенно хороши , поскольку Монго докер контейнер (и , предположительно , многие другие) имели сс , но не NetStat или Lsof
Фун
Я начал использовать это как вопрос интервью. Наверное, спросили 40 разных людей. До сих пор никто не упомянул сс. Я спрашиваю это как OP, затем, если они отвечают, я говорю: «Хорошо, я забираю X, теперь, как вы можете это сделать». До конца идеи.
Дмурати
6

Ты можешь сделать:

netstat -an | egrep 'Proto|LISTEN'

или просто:

netstat -anl

который даст вам все сокеты для прослушивания в системе.

Карлсон
источник
2
Это было бы лучшим решением (где «лучший» определяется как «работает в самом широком диапазоне систем» (BSD, Linux, AIX, Solaris, я полагаю, HP-UX))
voretaq7
0

TechRepulic имеет достойную статью, которую вы можете найти здесь . У него есть несколько похожих команд, как вы перечислили выше, но есть и несколько вариантов. Я также настоятельно рекомендую использовать nmap для сканирования портов рассматриваемого компьютера, чтобы вы могли видеть с внешней точки зрения, какие порты открыты и прослушиваются.

Эрик
источник
Не могли бы вы сказать мне, почему за это проголосовали? Поскольку я просто предоставил ссылку со многими вышеупомянутыми решениями, которые были одобрены, а также с другой точки зрения выполнения внешнего сканирования. Благодарю.
Eric
8
Я не понизил голос, но при сбое сервера, как и при большинстве стековых обменов, мы обычно ожидаем, что вы разместите здесь ответ, а не просто ссылку на что-то еще. Ссылки исчезают со временем, но мы хотим, чтобы контент на SF оставался ценным, когда ссылки умирают.
Zoredache
Единственная строка кода, которая есть в приведенной выше ссылке на статью, - sudo nmap -T4 -A -v 192.168.1.1/24все остальное - иди и делай - иди и делай это без каких-либо подробностей ... Это все равно, что читать заднюю обложку книги - много слов без мяса.
KingsInnerSoul
0

Порты прослушивания не совпадают с портами, открытыми снаружи. Вы должны рассмотреть брандмауэр. Если вы попробуете программу, например, nmapс другого компьютера, вы сможете увидеть открытые порты, не заблокированные брандмауэром.

Никлас Розенкранц
источник
0

Я предпочитаю использовать вместо этого:

netstat -antp 
lsof -i 
netstat -lptu
netstat -tulpn
XsiSec
источник