Команды netstat для запуска на сервере Unix, какие команды я должен использовать для своего варианта использования и почему?

Заранее извините за такой нубский вопрос, но я, конечно, нуб. У меня вопрос, что это значит СЛУШАТЬ или ПРИНЯТЬ на порту, поскольку это относится к моему примеру?

ПРИМЕР: у меня есть сервер Tomcat, и он будет использовать порт 8080. Я хочу убедиться, что порт доступен для использования.

Какие команды я должен выполнять на моем Unix-сервере и почему?

какую информацию даст мне такая команда: netstat -an | grep LISTEN

5 ответов

Решение

Если порт отображается как LISTEN в netstat это означает, что порт используется серверным процессом, поэтому вы не можете его использовать. Вот пример:

tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN

который показывает, что порт 631 используется.

Игнорируйте сокеты типа UNIX в конце - они не имеют значения.

Для проверки, используется порт 8080 или нет, вы можете просто использовать команду netstat -an|grep 8080, Если вы получаете вывод в формате ниже, это означает, что 8080 уже используется, и вам нужно назначить новый порт для кота.

# netstat -an
tcp        0      0 127.0.0.1:8080              0.0.0.0:*                   LISTEN

Netstat Команда отображает различную информацию, связанную с сетью, такую ​​как сетевые соединения, таблицы маршрутизации, статистика интерфейса, маскарадные соединения, многоадресное членство и т. д.,

  • a вариант с netstat даст вам как слушающие и не слушающие порты

  • n если вы не хотите, чтобы отображалось имя хоста, порта или пользователя, используйте netstat -n вариант. Это будет отображаться в цифрах, вместо разрешения имени хоста, имени порта, имени пользователя. Это также ускоряет вывод, так как netstat не выполняет поиск.

Для большего понимания использования команды netstat вот ее параметры:

-a : All ports
-t : Ports TCP
-u : Ports UDP
-l : Listening ports
-n : IP address without domain name resolution
-p : Name of the program and it associated PID

Так:

-Для отображения всех портов (TCP & UDP), PId с соответствующим именем программы:

 $ netstat -paunt

-Для отображения всех прослушивающих портов (TCP), PId с соответствующим именем программы: (и мы также можем фильтровать с помощью команды grep)

 $ sudo netstat -plnt | grep ':80'

Я надеюсь, что это будет полезно:)

Команда use может также запустить приведенную ниже команду, она выведет список портов и соответствующий PID, если какой-либо процесс использует эти порты

   netstat -tulpn

Вы также можете использовать telnet, чтобы проверить, открыт ли порт и прослушивает, например,

Zeeshan$ telnet google.com 80
Trying 173.194.35.5...
Connected to google.com.
Escape character is '^]'.

Я telnetting google.com на порт 80. Если вы видите третью строку в выводе, вы заметите, что он говорит, что он связан с веб-сервером Google. Точно так же, как у вас есть сервер приложений JAVA под названием Tomcat, и он прослушивает порт 8080. На самом деле он просит клиентов подключиться к нему через порт 8080, чтобы он мог передавать службы JAVA клиенту. Когда я буду использовать telnet localhost 8080 на стороне клиента, я буду подключаться так же, как я подключился к веб-серверу Google через порт 80. При условии, что Tomcat работает и прослушивает порт 8080. Если порт 8080 не свободен и занят некоторыми В другом приложении вы можете просто изменить порт 8080 на другой свободный порт. Telnet должен дать вам следующий статус:

accepted (connected), refused, and timeout
  • соединение отклонено - на этом порту ничего не работает
  • принято - на порте запущено какое-то приложение
  • тайм-аут - межсетевой экран блокирует доступ

Так что теперь есть два возможных способа проверки. На той же машине вы используете сервер Tomcat:

telnet localhost 8080

Если вы хотите проверить это с другого компьютера или вне сети:

telnet 192.168.1.1 8080

Надеюсь, это поможет.

Другие вопросы по тегам