Отрывок Bash, чтобы видеть, слушает ли что-то на порте?

Я играл вокруг со сборкой Windows Нереального IRCd. Это является раздражающим, чтобы настроить, если Вы никогда не настраивали сервер IRC Unixy прежде, но всегда существует веб-сайт для выручения Вас, и зато Вы получаете портативное знание (все понятия, а также большинство файлов конфигурации может быть портировано прямо к машине Unix.)

2
задан 6 July 2009 в 16:36
6 ответов

lsof-i:14881

7
ответ дан 3 December 2019 в 08:41
  • 1
    Этот обеспечивает много больших данных. –  msanford 6 July 2009 в 17:26
  • 2
    В моей настольной системе этот требует корня. –  Kyle Brandt 6 July 2009 в 17:58

Если Вы - корень:

netstat -lnp | grep ':14881 '
2
ответ дан 3 December 2019 в 08:41
  • 1
    Только быть ясным: это будет все еще работать, если Вы будете not' t базируются, но Вы won' t извлекают выгоду из наблюдения имени процесса, связанного с ним. –  Dan Carley 6 July 2009 в 16:47

Возможно, netstat был бы лучше, потому что порт не мог бы слушать на localhost, или он мог бы быть заблокирован iptables:

netstat -ln  | grep :14881
echo $?

Grep выйдет с 1, если там не будет идти ни в какое сравнение. Если Вы хотите просто tcp и/или udp, добавьте-u, или-t переключается на netstat.

2
ответ дан 3 December 2019 в 08:41

netstat-ano | egrep СЛУШАЮТ | egrep tcp | egrep $PORTNUMBER

0
ответ дан 3 December 2019 в 08:41
  • 1
    Woah, отложите каналы. Можно заменить первые два egreps -lt вместо -ao и нормальный grep на порте. Или, если Вы желали, выполните все как единственный egrep. –  Dan Carley 6 July 2009 в 16:52

Я использую это в bash для выхода, когда никто не слушает этот порт.

$port="14881"
if [[ $(netstat -ltn | grep ":${port} " | wc -l) -eq "0" ]] ; then echo "Port $port not listened to" && exit 1; fi
  • Используя двойные басовые скобки и сравнивая с wc для удобства чтения...
0
ответ дан 3 December 2019 в 08:41

sudo ss -lntup расскажет вам, что такое прослушивание TCP/UDP соединений - вы можете отфильтровать выходные данные так, как это может быть удобно (например, прослушивание на 127.0.0.1, ::1, 0.0.0.0).

Если вокруг вас есть питон, вы также можете создать немой сканер портов (хотя это действительно важно только для TCP):

import socket

for p in range(1,2**16):
   try:
     s = socket.create_connection(('127.0.0.1',p))
     print "Listener on tcp/{}".format(p)
   except:
     continue
0
ответ дан 3 December 2019 в 08:41

Теги

Похожие вопросы