外部LANからWebページにアクセスできない

外部LANからWebページにアクセスできない

私はhttpd、mysql、php、およびJoomla 2.5を実行しているCentOS 6.0 Webサーバーを持っています。固定パブリックIPアドレスがあります。 LAN内で、IPアドレスを介してWebページ(Joomla管理コンソールなど)に完全にアクセスできます。

家に帰ってルーターの後ろから接続しようとしましたが、Webにアクセスできませんでした。サーバーでpingとsshを実行できますが、httpを使用してWebページを取得することはできません。私のブラウザはChromeです。

どんなアイデアがありますか?

編集する:

これは次の出力ですiptables --list

Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     udp  --  anywhere             anywhere            udp spt:domain
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request
ACCEPT     icmp --  anywhere             anywhere            icmp echo-reply
ACCEPT     tcp  --  anywhere             anywhere            multiport dports ftp,ssh,http,https state NEW,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     udp  --  anywhere             anywhere            udp dpt:domain
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request
ACCEPT     icmp --  anywhere             anywhere            icmp echo-reply
ACCEPT     tcp  --  anywhere             anywhere            multiport sports ssh,http,https state ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:http

ベストアンサー1

さて、Apacheでこのような問題を経験してから数年が経ちましたが、中世のインターネット時代まで、私たちはこのような状況でチートに頼らなければなりませんでした。

私たちが直面する基本的な問題は同じです。私のネットワークにはパブリックIPがあり、ApacheサーバーはLAN上でプライベートIPを使用し、ロードバランサーはパブリックIPへの要求をプライベートIPを持つ一連のサーバーに戻します。

tcpdumpを使用すると、HTTPリクエストがApacheに送信されていますが、リクエストが「パブリックIP」になるため、Apacheが応答せず、ApacheはそのIPがそのIPにないため、これらのリクエストに応答してはいけないと思うことがわかります。ローカルインタフェーステーブル。

この問題を解決したのは、パブリックIPアドレスをループバックインターフェイスのIPエイリアスとして使用し、/ 32ネットマスクを使用することでした。 ifconfig lo0:1 <IP/32> upわかりました。これはApacheがこれらの要求に応答しなければならないと信じさせます。

外部からの要求がApacheに到達したことを確認する必要があります。サーバーに到達できない場合は、ファイアウォール/ルーター/aclsを見てください。tcpdump次のような要求が表示される場合、しかしいいえApacheでは、.Apacheiptablesでリクエストが表示されますが、Apacheがそれに応答しない場合は、access_logとerror_logで何が起こっているのかについての手がかりを見つける必要があります。

おすすめ記事