web-dev-qa-db-ja.com

特定のIPとポートをトレースする

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

ただし、http://ip:9100を使用してブラウザから同じアプリにアクセスすることはできません

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

Linuxのツール/コマンド/ユーティリティは大歓迎です。

ありがとう、ムルタザ

22
murtaza52

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

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

3
Rook

この目的でデフォルトのtracerouteコマンドを使用すると、インストールするものは何もありません。

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

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

32
EternalHour
tcptraceroute   xx.xx.xx.xx 9100

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

yum -y install tcptraceroute 

または

aptitude -y install tcptraceroute 
27
KING SABRI

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

  tcpdump -i any tcp port 9100

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

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

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

 nc ip 9100 -z -v

ローカルPCから。

11
dwalter

次のコマンドを使用して実行できます:tcptraceroute -p destination port destination IP。など:tcptraceroute -p 9100 10.0.0.50ただし、システムにtcptracerouteパッケージをインストールすることを忘れないでください。 tcpdumpおよびncはデフォルトでシステムにインストールされます。よろしく

0
Hamid Sami