Назад | Перейти на главную страницу

Сервер Ubuntu 16 не может получить доступ к собственному порту 80

Когда я слушаю порт 80 с помощью NodeJS v10, все другие машины могут получить доступ к порту, но сама машина не может. Это очень странно, и то же самое для loopback и IP-адреса eth0. Однако он может получить доступ к порту 90 сам по себе, как и другие машины в сети.

Я использовал простое приложение hello world, чтобы убедиться, что скрипт NodeJS не виноват.

Это также происходит в NodeJS 12.13.0, поэтому я не думаю, что Node вообще проблема.

iptables -L говорит, что все пусто с политикой ПРИНЯТЬ.

netstat -tulpn не перечисляет порт 80, кроме того, с которым я тестирую.

Я нашел эту строку в /etc/rc.local.

iptables -t nat -A OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 8080

Обнаружена проблема!

В этом ответе говорится, почему правило не появилось в iptables -L: https://serverfault.com/a/685948/32875.

Есть 5 таблиц (фильтр, нат, исключение, сырье, безопасность). Ты звонишь iptables -L -t table для каждого.

Это может быть связано с тем, что если вы хотите использовать порт 80, вам нужны разрешения sudo для его открытия.