30

HTTP ページを提供するリモート サーバーのポート 9100 でアプリを実行しています。サーバーに ssh 接続した後、localhost 9100 をカールでき、応答を受け取ります。

ただし、ブラウザから同じアプリにアクセスできませんhttp://ip:9100

また、ローカル PC から telnet できません。どうすればデバッグできますか? 特定の IP とポートの組み合わせを traceroute して、ブロックされている場所を確認する方法はありますか?

Linux ツール / コマンド / ユーティリティを歓迎します。

ありがとう、ムルタザ

4

5 に答える 5

48

tracerouteこの目的のためにデフォルトのコマンドを使用できます。その後、何もインストールする必要はありません。

traceroute -T -p 9100 <IP address/hostname>

UDPの-T代わりに TCP プロトコルを使用するには、引数が必要です。

まれにtracerouteが利用できない場合でも、 を使用できますncat

nc -Czvw 5 <IP address/hostname> 9100
于 2015-08-25T02:09:09.123 に答える
29
tcptraceroute   xx.xx.xx.xx 9100

見つからない場合は、インストールできます

yum -y install tcptraceroute 

また

aptitude -y install tcptraceroute 
于 2012-06-12T11:38:13.670 に答える
11

サーバーで使用tcpdumpして、クライアントがサーバーに到達するかどうかを確認できます。

  tcpdump -i any tcp port 9100

また、ファイアウォールが着信接続をブロックしていないことを確認してください。

EDIT:コンソールで読みたくない場合は、ダンプをファイルに書き込んで、クライアントでwiresharkで表示することもできます。

2番目の編集:経由でポートに到達できるかどうかを確認できます

 nc ip 9100 -z -v

ローカル PC から。

于 2012-06-12T11:48:58.203 に答える
4

まず、アプリケーションがバインドされている IP アドレスを確認します。たとえば、ローカル アドレスにのみバインドされている可能性があります。これは、ファイアウォールの状態に関係なく、別のマシンからは決して表示されないことを意味します。

nmap などのポートスキャナーを使用して、ポートが開いていて外部から見えるかどうかを確認できます...ポートが閉じているか (何もリッスンしていない)、開いているか (正常に表示されるはずです)、またはフィルター処理されているかがわかります。 (たとえば、ファイアウォールによって)。

于 2012-06-12T11:36:50.897 に答える