Попытка открыть порт с помощью CentOS

Попытка открыть порт с помощью CentOS

(Я новичок в этом деле!) Я запускаю виртуальный сервер под управлением CentOS. Я пытаюсь запустить сервер, который прослушивает порт 37760. Код, который я запускаю, выполняется успешно, поэтому я запускаю

netstat -lptu

Чтобы показать список прослушиваемых портов, и

tcp        0      0 localhost.localdomain:37760 *:*      LISTEN      15006/node

одна из записей. Однако, когда я захожу на ip:37760 в своем браузере, соединение прерывается!

Я уверен, что это очевидно, но некоторая помощь была бы очень полезна!!

Спасибо

решение1

Вывод netstatпоказывает, что nodeпрослушивание выполняется только на локальном хосте, поэтому вам нужно либо использовать браузер на этой виртуальной консоли и перейти к ней, localhost:37760либо обновить конфигурацию того, что nodeдолжно прослушиваться на всех адресах.

решение2

Есть большая вероятность, что ваш локальный брандмауэр блокирует соединение.

Проверьте свой локальный iptablesбрандмауэр. Вы можете увидеть текущее состояние, запустив что-то вроде:

iptables -vnL

Это даст вывод, который выглядит следующим образом:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
9192K 3593M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
   18   740 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
1763K  180M ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
 6124  367K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22

Эти четыре правила звучат так:

  • Разрешить трафик, связанный с существующим соединением
  • Разрешить ICMP-трафик.
  • Разрешить весь трафик через интерфейс loopback
  • Разрешить новые подключения на TCP-порту 22 (ssh)

Вы можете увидеть постоянное состояние в /etc/sysconfig/iptables. Вы можете использовать этот system-config-firewallинструмент, если вам нужен механизм настройки графического интерфейса, или вы можете использовать эту возможность, чтобы узнать больше о том, как работает настройка брандмауэра из командной строки.

решение3

CentOS по умолчанию включаетIPTablesи обеспечивает довольно строгую политику безопасности с SELinux. Если вы пытаетесь получить доступ к порту с другого компьютера, настройка IPTables по умолчанию сбрасывает все входящие соединения, кроме SSH. Если вас не волнует безопасность, вы можете просто запустить

sudo service iptables stop 

чтобы полностью отключить IPTables.

Другая вещь, которая может вас задержать на CentOs, этоSELinux. Это действует как второй уровень безопасности для процессов и файловой системы и не позволяет некоторым серверам иметь разрешение на обслуживание файлов по умолчанию, поскольку у них нет доступа к каталогу, из которого они обслуживают файлы. Здесь у вас есть несколько вариантов.

1) Отключите SELinux, изменив настройку, /etc/selinux/configкак показано ниже:

SELINUX=disabled in /etc/selinux/config

2) Более предпочтительно, использовать audit2allowдля проверки, блокирует ли SELinux ваш сервер, и если да, сгенерировать новую политику безопасности, чтобы разрешить сервер. См. этоCentOSЗапись в Википедии, а такжеэтотзапись в блоге.

Наконец, если вы работаете на виртуальной машине, убедитесь, что у вашей виртуальной машины есть сетевой доступ и разрешения на использование настроек сетевого адаптера базового оборудования.

Связанный контент