
考えられる限りの調査をしましたが、2 台の Windows 2008 サーバー間で Telnet 接続を機能させる方法に行き詰まっています。
サーバー A 上のアプリケーションは、ポート 1433 (ms sql) 経由でサーバー B に接続する必要があります。3 つの異なるサーバーからポート 1433 でサーバー B に Telnet できるため、サーバー B のファイアウォールが開いており、ポート 1433 で接続を受け入れていることを確認しました。
問題は、サーバー A からまだ Telnet できないことです。これはソフトウェアまたはハードウェアのファイアウォールが原因であると想定しました。
トラブルシューティングのために、コントロール パネルのファイアウォールと高度なファイアウォールがオフになっていることを確認しました。また、このコンピューターの Windows ファイアウォール サービスを完全に停止しました。どの組み合わせでもポート 1433 で Telnet を実行できません。常に同じエラーが発生します。
C:\>telnet YY.XX.XYX.XY 1433 YY.XX.XYX.XY に接続しています...ポート 1433 のホストへの接続を開けませんでした : 通信失敗
私はサーバー A の専用ホスティング プロバイダーにしつこく問い合わせましたが、彼らは、送信 1433 トラフィックを妨げるルーターやその他のハードウェアは存在しないと主張しています。
誰が私に嘘をついているのでしょうか? 私の Windows サーバーでしょうか? ホスティング会社でしょうか?
どのようなアイデアでも大歓迎です!
答え1
あなたの説明からすると、問題はサーバー A にあるようです。最初から始めてください。Telnet プログラムが実際にパケットを正常に送信していることを確認してください。それを確認するには Wireshark を使用することをお勧めします。
答え2
それでは、サーバー A とサーバー B は同じネットワーク上にあるはずですか? で間に何もないことを確認できますtracert
。サーバー A が、サーバー B に Telnet するために使用した他の 3 つのサーバーとは異なるネットワーク上にある場合、接続の有効なテストにはなりません。サーバー A のネットワークからの接続を妨げるファイアウォール ルールまたはルーター ACL がまだ存在する可能性があります。サーバー A からサーバー B に ping を実行したり、サーバー B がリッスンしている別のポートに Telnet を実行したりできますか?
Wireshark をサーバー A に配置し、接続試行を監視して何が起こるかを確認します。
また、サーバー A の SQL ツールを使用してサーバー B に接続してみましたか? たとえば、SQL Server Management Studio などです。
(サーバー A からの送信トラフィックは、実際にはポート 1433 のみに送信されることに注意してください。送信元ポートは異なります。)
答え3
まず、基本的なネットワークのトラブルシューティング手順から始めます。
- サーバーにpingできますか?
- サーバーへのトレースルートは可能ですか? (可能であれば、トラフィックをブロックする可能性のあるファイアウォールを通過していますか)
ネットワーク セグメント上の別のデバイスからサーバーに Telnet できますか?
これで問題が解決しない場合は、何が起こっているのかを実際に確認するために、wireshark のようなものをお勧めします。
答え4
サーバーBには複数の外部IPアドレスがありますか?SQL Serverがリッスンしていない可能性があります。全てIP アドレス。netstat -n -a を使用して、0.0.0.0:1433 が存在するか、または各外部 IP アドレスが :1433 でリッスンしているとリストされていることを確認します。
サーバー A から ping を実行し、他の 3 つのサーバーと同じ IP アドレスに解決されることを確認します。
そうでない場合は、SQL Server ネットワーク インターフェイスを再構成する必要があります。