まず最初に言っておきますが、私は Linux とネットワークの初心者なので、ゆっくり話し、難しい言葉を使ってください。
GNOME 2.16 を実行している Red Hat マシンがあります。そこで Web アプリケーションを立ち上げようとしています。Windows 開発環境から RH に ping することはできますが、Web コンテナーに telnet することはできません。
エラー:
our.ip.address.## に接続しています...ポート 80## のホストへの接続を開けませんでした: 接続に失敗しました
確認したこと:
iptablesが実行されていません
RH ボックスのブラウザでは、127.0.0.1:80## の Web アプリケーションが表示されます。
Web アプリケーションにはデフォルトで IP 0.0.0.0 が含まれており、公開されるはずです (そうですよね?)
マスクはどちらの箱でも同じです
RHサーバーはSubversionサーバーにpingを送信できますが、チェックアウトはできません。
考えられるのは、Windows と RH ボックスの間に何らかのファイアウォールがあるということだけですが、それをどうやって確認すればよいかわかりません。IT 部門に相談する前に、できる限りのことをすべて試したかったのです。
他に確認すべき設定や Linux コマンドはありますか?
あなたの診断は何ですか?
答え1
OS 側でできることはほとんどすべて網羅されているようですので、IT 部門のドアをノックして、彼らの言うことを聞いてみてください。
答え2
この質問は 1 年ほど前のものですが、まったく同じ問題に遭遇したので、共有したいと思いました。
結局、プライマリ インターフェイス (eth0) は、システムの起動時に自動的に接続されませんでした。Tomcat が起動すると、既知のすべてのインターフェイスにバインドされるため、外部 IP アドレスにバインドされることはなく、127.0.0.1 のみにバインドされます。その後、インターフェイスを起動して DHCP サーバーから IP アドレスを取得したとき、Tomcat はすでに実行されており、新しい IP を認識していませんでした。
解決策は? Tomcat を停止し、すべてのインターフェースが有効な IP アドレスで接続されていることを確認してから、Tomcat を再起動します。
答え3
tcpdump を実行して、パケットがサーバーに届いているかどうかを確認します。
tcpdump -s 0 -X host x.x.x.x
ここで、xxxx は、ping できると言われた Windows テスト マシンの IP です。
その Windows マシンから、まず Linux サーバーに ping を実行し、tcpdump 出力に ICMP パケットが表示されることを確認します。これで、正しいインターフェイスをリッスンしていることが確認できます。次に、ポート 80XX にアクセスしてみます。
80XX パケットが表示されない場合は、サーバー外の何か (外部ファイアウォールなど) が接続をブロックしている可能性が高くなります。
パケットが表示される場合は、サーバー上の何らかの調整が必要です。
したがって、解決策ではありませんが、問題を絞り込むのに役立ちます。
答え4
Red Hat ボックスで、次のコマンドを実行します。
nc -l -p 80##
次に、接続しようとしているボックス (または他のボックス) で次のコマンドを実行します。
nc あなたのIPアドレス 80##
次に何かを入力して Enter キーを押します。Red Hat ボックスに表示されるはずです。
netcatの詳細についてはhttp://netcat.sourceforge.net/。
これによりファイアウォールがチェックされます。これが機能する場合、アプリケーション サーバーは適切に構成されていません。
幸運を。