Я установил сервер разработки CentOS 5.6, работающий как виртуальная машина под Virtual PC 2007, чтобы поиграть с Node.js. Все работает, но я не могу получить доступ к порту 8234, который является портом, на котором работает сервер Node.
Я знаю, что сервер работает, потому что могу wget localhost:8234
и получить HTML-файл, содержащий "Hello World", что правильно.
Если я использую сканер портов, я вижу, что все порты, упомянутые в разделе «Разрешить входящие», открыты и отвечают на эхо-запросы, но ничего больше.
Я бегал setup
и установите следующие параметры:
На мой взгляд, эти настройки должны были отключить брандмауэр и разрешить все, что входит eth0
(единственный виртуальный сетевой интерфейс), но, похоже, это не так.
Как я могу просто полностью отключить брандмауэр или, в случае неудачи, сделать порт 8234 доступным для внешнего мира?
В system-config-securitylevel-tui
приложение обеспечивает ОЧЕНЬ ограниченный контроль над брандмауэром хоста. Если вы хотите полностью отключить брандмауэр, вам следует сделать:
chkconfig iptables off
service iptables stop
Это остановит запуск брандмауэра при изменении уровня выполнения и отключит его, если он в данный момент запущен.
Чтобы разрешить доступ к вашему единственному порту
iptables -A INPUT -p tcp -m tcp --dport 8234 -j ACCEPT
service iptables save
Вам не нужно настраивать брандмауэр, если он отключен. Я считаю, что вы также можете отключить брандмауэр после завершения установки; У меня нет удобной системы CentOS, чтобы найти ее, но Интернет, кажется, рекомендует
service iptables save
service iptables stop
chkconfig iptables off
Это сохранит ваши правила и отключит брандмауэр при последующей загрузке. Вероятно, есть еще и графический инструмент, о котором мы говорим - Red Hat. ;)
Брандмауэр - это достойная вещь. Вы должны добавить 8234: tcp в поле других портов (и / или udp, если это необходимо вашей службе).
Выполнение команды iptables, предоставленной @Lucas, будет работать, но не отключает брандмауэр, а просто разрешает весь трафик. В этом случае нет особого смысла оставлять брандмауэр включенным.
Ваш веб-сервер привязан только к localhost.
Убедитесь, что ваш веб-сервер прослушивает IP-адрес, отличный от localhost (127.0.0.1) или link-local (169.254. *. *)
netstat -tl
поможет
Используйте следующую команду, чтобы узнать, какой порт прослушивает ваш веб-сервер.
(Я предполагаю, что вы используете apache)
netstat -an | grep httpd
Убедитесь, что он привязан к вашему общедоступному IP-адресу, а не только к локальной петле
iptables -P INPUT ACCEPT
как корень