Linux
無法從遠端位置訪問埠 80 但在本地工作?
我有一個使用 apache 配置的 linux 伺服器。但是我無法使用遠端電腦訪問它。
我可以正常 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
andcurl 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=public –add-port=80/tcp
使用您的瀏覽器驗證它是否有效,然後:
firewall-cmd –zone=public –add-port=80/tcp –permanent
防火牆-cmd –reload
使更改永久化