「接続拒否」対「ホストへのルートなし」


20

サーバーで実行されているApacheサーバーがあります。

[root@te-srv2 ~]# ps -ecf|grep httpd
root       698 32047 TS   19 10:45 pts/24   00:00:00 grep httpd
root     32081     1 TS   19 10:16 ?        00:00:00 /usr/sbin/httpd
apache   32083 32081 TS   19 10:16 ?        00:00:00 /usr/sbin/httpd
apache   32084 32081 TS   19 10:16 ?        00:00:00 /usr/sbin/httpd
....

ただし、ローカルホストに接続しようとすると、「接続が拒否されました」というメッセージが表示されます。

[root@te-srv2 ~]# wget http://127.0.0.1
--2014-02-24 10:46:16--  http://127.0.0.1/
Connecting to 127.0.0.1:80... failed: Connection refused.

ローカルIPアドレスに接続しようとすると同じことが起こります。

[root@te-srv2 ~]# wget http://132.70.6.157
--2014-02-24 10:46:40--  http://132.70.6.157/
Connecting to 132.70.6.157:80... failed: Connection refused.

一方、同じネットワーク内の別のコンピューターから同じものを試すと、「ホストへのルートがありません」という別のエラーが表示されます。

[erelsgl@erel-biu ~]$ wget http://132.70.6.157
--2014-02-24 10:49:11--  http://132.70.6.157/
Connecting to 132.70.6.157:80... failed: No route to host.

これらのエラーが発生するのはなぜですか?また、同じコンピューターとネットワーク内の他のコンピューターの両方からhttpサーバーに接続できるようにするにはどうすればよいですか?

更新:コメントと回答に基づいて、ここにいくつかの詳細情報があります:

[root@te-srv2 ~]# traceroute 132.70.6.157
traceroute to 132.70.6.157 (132.70.6.157), 30 hops max, 60 byte packets
 1  te-srv2 (132.70.6.157)  0.082 ms  0.007 ms  0.005 ms

[erelsgl@erel-biu ~]$ traceroute 132.70.6.157
traceroute to 132.70.6.157 (132.70.6.157), 30 hops max, 60 byte packets
 1  te-srv2 (132.70.6.157)  0.446 ms !X  0.431 ms !X  0.420 ms !X

[root@te-srv2 ~]# netstat -lnp|grep http
tcp        0      0 :::443                      :::*                        LISTEN      5756/httpd          

traceroute 132.70.6.157両方のサーバーから出力を比較できますか?
ヴェルナーヘンツェ14

1
443はSSLポート(https)です。あなたはHTTPポート80に耳を傾けることを確認するためにあなたの構成をチェックしてください
Mikpa

回答:


13

の出力を表示するとnetstat -lnp、どのプロセスが実際にサーバー上のどのポートをリッスンしているか、どのIPアドレスにバインドされているかを確認できます。

2番目のコンピューターについては、そのネットワーク接続は壊れているように見えます。netstat -rnそこで問題についての洞察を与えます。

より良いアドバイスを提供するには、両方のコンピューターの一般的なネットワーク構成とIP構成に関する詳細が必要です。

編集:

Apacheの構成を変更して、SSLサーバーではなくHTTPサーバーにする必要があります。構成ファイルはほとんどの場合、/ etc / apache2の下にあります。

他の問題を分析するには、IP構成とネットワーク構成の情報が引き続き必要です。traceroute情報は何も明らかにしませんでした。


実際、ポート80をリッスンするプロセスはありません!Apacheサーバーはポート443でリッスンします。しかし、これはなぜですか?
エレルシーガルハレビ14

@ErelSegalHalevi:通常、80はHTTP、443はHTTPSです(これらのデフォルトポートを変更しない限り)。したがって、アプリケーションはHTTPSのみを想定していますか?
オリビエデュラック14

netstatのおかげで、これは実際にはApacheの構成の問題であることがわかりました。
エレルシーガルハレビ14

26

「接続拒否」は、ターゲットマシンが接続を積極的に拒否したことを意味します。ポート80をコンテキストとして使用すると、次のいずれかの理由が考えられます。

  • 127.0.0.1:80および132.70.6.157:80でリッスンしているものはありません
  • *:80でリッスンしていない
  • ファイアウォールがREJECTとの接続をブロックしています

Apacheとiptablesの設定を確認してください。

「ホストへのルートがない」とは、ネットワークの問題を指します。ターゲットマシンからの応答ではありません


ネットワークの問題?同じドメインで、同じドメインが別のポートに対して「接続拒否」および「ホストへのルートなし」をどのように返すことができますか?
phil294

ファイアウォールまたはプロキシが他のポートをブロックしているので、ネットワークに問題があるのでしょうか?
croraf

3

この投稿では、パブリッククラウドコンピューティングノードでnodejsを使用して簡単なhttpページをセットアップしようとしたときに直面した問題について説明しています。

このコマンドは私のためにトリックをしました:

iptables -F

このコマンドは、Linuxシステム内に設定されているファイアウォールルールをフラッシュ、つまりクリアします。

注意事項:Public Cloud VCNの一部である分散ファイアウォールを使用しているため、OSのファイアウォールは実際には使用しませんでした。外部ファイアウォールがない場合は、必ずiptablesにファイアウォールルールを追加してください。


1

/networkengineering/33397/debugging-no-route-to-host-over-ethernetからRon Maupinの回答を引用:

ICMPメッセージ「ホストへのルートなし」は、ARPが宛先ホストのレイヤー2アドレスを見つけられないことを意味します。通常、これは、そのIPアドレスを持つホストがオンラインまたは応答していないことを意味します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.