Я уверен, что это очень нубистский, так что прости меня. Я пытаюсь запустить сервер node.js через порт 8080 моего Ubuntu 10.04.
Вот результат iptables -L на сервере:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
И вот результат nmap -p 8080 (отредактировал IP-адрес, потому что все является или должно быть широко открытым)
nmap 173.203.xxx.xxx -p 8080 -A
Starting Nmap 5.00 ( http://nmap.org ) at 2011-05-19 22:52 PDT
Interesting ports on xxx (173.203.xxx.xxx):
PORT STATE SERVICE VERSION
8080/tcp closed http-proxy
Почему 8080 считается закрытым? Добавление этого не помогло:
iptables -A OUTPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
Я действительно смущен.
Я добавлю это, если это поможет, но я не знаю,
netstat -pan | grep 80
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 16785/node
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 16471/apache2
Я могу получить доступ к своему обычному веб-сайту, работающему вне порта 80 на apache, но сервер node.js недоступен извне. Доступ к нему с самого сервера работает нормально.
Итак, мой вопрос: как мне отладить это? Может ли быть что-то еще, кроме iptables, блокирующего некоторые порты? Как мне узнать что это?
Любая помощь высоко ценится!
Ответы:
Спасибо за добавление последнего вывода netstat, это действительно помогло. Вы не можете получить доступ к node.js извне, потому что он прослушивает локальный IP-адрес, то есть 127.0.0.1. Вам нужно настроить node.js для прослушивания 0.0.0.0, чтобы он мог принимать соединения на все IP-адреса вашего компьютера.
источник
Согласно вашему выводу netstat, порт 8080 открыт только для 127.0.0.1, который является localhost, следовательно, доступ с сервера работает (который является localhost), но не откуда-либо еще.
Правильный вывод должен выглядеть так
источник
Я была такая же проблема.
Я сделал следующее
используйте следующую ссылку, чтобы включить те же порты на сервере Ubuntu https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-14-04
И после этого последнего, что мне не хватало, это Сеть -> Правила брандмауэра -> default-allow-internal -> все IP-адреса 0.0.0.0/0
Выполнено
источник