web-dev-qa-db-ja.com

「接続が拒否されました」または「ホストへのルートがありません」

私はサーバー上で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
....

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

[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.

一方、同じネットワーク内の別のコンピュータから同じ操作を試みると、「No route to Host」というエラーが表示されます。

[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          
19

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

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

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

編集する

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

IP構成およびネットワーク構成情報は、他の問題を分析するために依然として必要です。 traceroute情報は何も明らかにしませんでした。

13
Tero Kilkanen

「接続が拒否されました」とは、ターゲットマシンがアクティブに接続を拒否したことを意味します。コンテキストとしてポート80を使用している場合は、次のいずれかが原因と考えられます。

  • 127.0.0.1:80と132.70.6.157:80では何も聞いていません。
  • 何も聞いていない*:80
  • ファイアウォールがREJECTとの接続をブロックしています

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

「No route to Host」はネットワークの問題を意味します。not対象マシンからの返信です。

26
Daniel B

この記事では、Public Cloudコンピュートノードでnodejsを使用して簡単なhttpページを設定しようとしたときに直面した問題について説明しました。

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

iptables -F

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

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

3

https://networkengineering.stackexchange.com/questions/33397/debugging-no-route-to-Host-over-ethernet からRon Maupinの回答を引用してください:

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

0
jan