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

Не удается получить доступ к порту 80 из удаленного местоположения, но работает локально?

У меня есть Linux-сервер в конфигурации с apache. Однако я не могу получить к нему доступ с удаленного компьютера.

Я могу нормально подключиться к серверу по ssh.

моя таблица IP:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

netstat -ant

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN
tcp        0      0 SERVERIP:80                 0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:45117               0.0.0.0:*                   LISTEN
tcp        0    196 SERVERIP:22                 MyIP:3149                   ESTABLISHED
tcp        0      0 :::111                      :::*                        LISTEN
tcp        0      0 :::22                       :::*                        LISTEN
tcp        0      0 :::47193                    :::*                        LISTEN

с помощью Curl SERVERIP:80 и curl localhost:80, оба возвращают страницу по умолчанию из apache.

В чем может быть проблема?

Вам необходимо разрешить доступ к вашему серверу через порт 80, так как он в настоящее время заблокирован iptables.

sudo /sbin/iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT

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

sudo /sbin/service iptables save

это запишет текущую конфигурацию в /etc/sysconfig/iptables.

Если вы используете CentOS 7, то FirewallD - правильный путь:

брандмауэр-cmd --zone = общедоступный --add-port = 80 / tcp

Убедитесь в своем браузере, что он работает, а затем:

firewall-cmd --zone = public --add-port = 80 / tcp --permanent

брандмауэр-cmd --reload

Сделать изменения постоянными

Ваши правила iptables разрешают входящие соединения только через порт 22. Откройте также порт 80.

вы можете использовать -I вместо -A и cmd - это iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

Вы также можете напрямую использовать службу http по умолчанию

брандмауэр-cmd --permanent --zone = public --add-service = http