(Я новичок в этом деле!) Я запускаю виртуальный сервер под управлением 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Запись в Википедии, а такжеэтотзапись в блоге.
Наконец, если вы работаете на виртуальной машине, убедитесь, что у вашей виртуальной машины есть сетевой доступ и разрешения на использование настроек сетевого адаптера базового оборудования.