web-dev-qa-db-ja.com

リモートの場所からポート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:80curl localhost:80を使用すると、どちらもApacheからデフォルトのページを返します。

何が問題でしょうか?

14
DucDigital

サーバーは現在iptablesによってブロックされているため、ポート80でサーバーへのアクセスを有効にする必要があります。

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が適切な方法です。

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

それが機能することをブラウザで確認し、次に:

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

firewall-cmd --reload

変更を永続的にするには

26
user9517

Iptablesルールは、ポート22での着信接続のみを許可します。ポート80も開きます。

1
Paweł Brodacki

デフォルトのhttpサービスを直接使用することもできます

firewall-cmd --permanent --zone = public --add-service = http

0
Edmond Chui