
私は、Debian (Jessie、8) を搭載したデスクトップ上で Apache (2.4.10) Web サーバーを実行しています。
デスクトップには静的なローカル IP アドレス (192.168.xx) があり、WAN (パブリック) IP アドレスも ISP によって固定されています (82.xxx)。このデスクトップへのポート 80 のポート転送が追加されました。
LAN からは問題なく Web ページにアクセスできますが、自宅の内外から WAN アドレスを使用してアクセスすることはできません。Chrome から「Web ページは利用できません - ERR_CONNECTION_REFUSED」というメッセージが表示されます。WAN アドレス (別のポート) を使用してルーターを開くことができることに注意してください。
Web ページ自体は、Hello World を含む「index.html」とほとんど変わりません。
iptables ファイアウォールをオフにしてみましたが、うまくいきませんでした。80 以外のポートを試してみましたが、うまくいきませんでした。ISP に問い合わせましたが、ポート 80 はブロックされていません。Google で調べてもダメでした。サイトにアクセスできるようにする方法について、何かアドバイスはありますか?
答え1
解決しました!
Moonpoint のおかげで、ポート転送に問題があることが分かりました。そこでもう一度確認してみると、ポート 80 ルールの「WAN インターフェイス」が「ADSL」(デフォルト) に設定されていることに気付きました。意味が分からないので、変更しませんでした。さまざまなオプションを試し、「ETHWAN」に設定すると問題が解決しました。これで Web ページにパブリックでアクセスできるようになり、no-ip DDNS も追加しました。これも機能します。
編集: ETHWAN WAN インターフェイスは、単に ISP によってルーターに追加されたものであり、グラスファイバー接続用のインターフェイスであることがわかりました。
答え2
iptables ファイアウォールをオフにしようとしたが失敗したと述べている場合、iptables ファイアウォールを無効にしたが、外部 IP アドレスから Web サーバーに接続できなかったという意味ですか、それともホストベースの iptables ファイアウォールを無効にできなかったという意味ですか? Web サイトの Apache アクセス ログとエラー ログをチェックして、外部 IP アドレスからシステムにアクセスしようとする試みがこれらのファイルのいずれかに記録されているかどうかを確認します。Apache/etc/httpd/conf/httpd.conf
ファイルを確認します。ファイルのどこかに次のようなセクションがありますか。
<Directory /home/www/example>
Order Deny,Allow
Deny from all
Allow from 192.168 127.0.0.1
</Directory>
上記の例では、ローカルホストアドレス 127.0.0.1 および同じ LAN 上のシステム (192.168.xxx.xxx) へのアクセスは許可されません。サーバーを世界中からアクセス可能にしたい場合は、「すべて拒否」は不適切です。
Apacheウェブサーバーを実行しているDebianシステム、またはポート転送を設定したルーターに問題がないか切り分けることができます。ただし、ネットワーク機器が介在していない限り、tcpダンプDebian Linux システムでコマンドを実行します。このコマンドをtcpdump -i any port 80
root として発行します。これにより、tcpdump はインターフェイス上のポート 80 への接続のみを検索し、他のトラフィックは無視します。次に、外部アドレスから Web サーバーに接続してみます。tcpdump が Linux システムに到達しているポート 80 へのトラフィックを表示した場合、ポート転送は正常に動作しています。そうでない場合は、ポート転送に問題がある可能性があります。ポート 80 を Web サーバーの正しい IP アドレスに転送していることを再確認してください。