Linux で ping は成功するがポートが利用できない問題を解決する方法

Linux で ping は成功するがポートが利用できない問題を解決する方法

ping は成功したがポートにアクセスできない場合のポート可用性検出の説明

ポート可用性検出ツールの紹介

オペレーティング システムによって、ポートの可用性を検出するために使用するツールは異なります。

Linux 環境におけるポート可用性検出ツールの紹介

Traceroute は、ほぼすべての Linux ディストリビューションにプリインストールされているネットワーク テスト ツールであり、インターネット プロトコル (IP) パケットが宛先アドレスに送信されるときにたどるパスを追跡するために使用されます。ポートの可用性を検出するには、traceroute ツールを使用してください。

Traceroute は、ターゲット ポートに TCP パケットを送信することにより、パケットの送信元からターゲット サーバーまでのリンク全体における対応するポートの接続を検出します。

traceroute ポート可用性検出の一般的な使用法は次のとおりです。

traceroute [-n] -T -p <宛先ポート番号> ホスト

[root@centos~]# トレースルート -n -T -p 22 223.5.5.5
223.5.5.5 (223.5.5.5) へのトレースルート、最大 30 ホップ、60 バイト パケット
 1 58.96.171.249 0.431ミリ秒 0.538ミリ秒 0.702ミリ秒
 2 10.88.16.29 0.997 ミリ秒 1.030 ミリ秒 10.88.16.21 1.309 ミリ秒
 3 58.96.160.246 0.393 ミリ秒 0.390 ミリ秒 58.96.160.250 0.423 ミリ秒
 4 63.218.56.237 1.110ミリ秒 202.123.74.122 0.440ミリ秒 0.440ミリ秒
 5 63.223.15.90 1.744ミリ秒 63.218.56.237 1.076ミリ秒 1.232ミリ秒
 6 63.223.15.158 1.832 ミリ秒 63.223.15.90 1.663 ミリ秒 63.223.15.74 1.616 ミリ秒
 7 202.97.122.113 2.776 ミリ秒 63.223.15.154 1.585 ミリ秒 1.606 ミリ秒
 8 * * 202.97.122.113 2.537ミリ秒
 9 202.97.61.237 6.856 ミリ秒 * *
10 * * *
11 * * *
12 * * 119.147.220.222 8.738ミリ秒
13 119.147.220.230 8.248ミリ秒 8.231ミリ秒 *
14 * 42.120.242.230 32.305 ミリ秒 42.120.242.226 29.877 ミリ秒
15 42.120.242.234 11.950 ミリ秒 42.120.242.222 23.853 ミリ秒 42.120.242.218 29.831 ミリ秒
16 42.120.253.2 11.007 ミリ秒 42.120.242.234 13.615 ミリ秒 42.120.253.2 11.956 ミリ秒
17 42.120.253.14 21.578 ミリ秒 42.120.253.2 13.236 ミリ秒 *
18 * * 223.5.5.5 12.070ミリ秒 !X

パラメータの説明

-n ホスト名の代わりに IP アドレスを直接使用します (DNS ルックアップを無効にします)。

-T TCP 経由でプローブします。

-p はターゲットポート番号を検出します。

ホスト ターゲット サーバーのドメイン名または IP。

traceroute の詳細については、man ページを参照してください。

Windows 環境でのポート可用性検出ツールの紹介

Windows 環境では、tracetcp を使用してポートの可用性を検出できます。

tracetcp は、TCP パケットを送信してリンク内の中間ノードがターゲット ポートをブロックしているかどうかを分析することにより、リンク検出も実行します。

ダウンロードしてインストールする

tracetcp の使用は WinPcap ライブラリに依存するため、公式 Web サイトからダウンロードする必要があります。

ここをクリックして公式 Web サイトにアクセスし、最新バージョンの tracetcp をダウンロードしてください。あるいは、添付の tracetcp v1.0.2 をダウンロードすることもできます (最新バージョンではない可能性があります)。

ダウンロードした tracetcp 関連ファイルを C:\Windows ディレクトリに直接解凍します。 (システムディレクトリ以外の場所に解凍する場合は、コマンドを直接呼び出せるようにシステム環境変数を手動で変更する必要があります)

使い方

ダブルクリックして tracetcp アプリケーションを開きます。tracetcp の一般的な用途は次のとおりです。

tracetcp <ターゲットサーバーのドメイン名またはIP>:<検出するポート番号>

C:\ >tracetcp www.aliyun.com:80
ポート 80 の 140.205.63.8 へのルートをトレースしています
最大 30 ホップ以上。
1 3ミリ秒 4ミリ秒 3ミリ秒 30.9.176.1
2 13 ミリ秒 3 ミリ秒 4 ミリ秒 10.64.200.33
3 3ミリ秒 3ミリ秒 2ミリ秒 10.64.1.1
4 4ミリ秒 3ミリ秒 3ミリ秒 42.120.74.4
5 5ミリ秒 4ミリ秒 7ミリ秒 42.120.253.233
6 6ミリ秒 5ミリ秒 7ミリ秒 42.120.247.97
7 8 ミリ秒 8 ミリ秒 8 ミリ秒 42.120.247.97
8 10ミリ秒 10ミリ秒 8ミリ秒 123.56.34.246
9 9ミリ秒 9ミリ秒 11ミリ秒 42.120.243.117
10 * * * リクエストがタイムアウトしました。
11 8 ミリ秒で宛先に到達しました。140.205.63.8 への接続が確立されました
トレース完了。

tracetcp -? を使用すると、さらに詳しい tracetcp パラメータの説明を取得して表示できます。

ポートの可用性の検出手順

通常、次のことが可能です。

前述の説明に従って、対応するツールを使用して、ターゲット アドレスのターゲット ポートの可用性を検出します。

検出結果を確認して分析し、異常なノードを特定します。

ip.taobao.com などの IP アドレス照会 Web サイトを通じて、対応するノードのオペレーターとネットワークを取得します。

または、作業指示書を提出していただければ、Alibaba Cloud が問題を関係するオペレーターに報告します。

リンクテスト結果分析の簡単な説明

異常ノード判定方法:あるホップで該当ポートがブロックされている場合、それ以降のホップではデータが返されません。これに基づいて、異常なノードを特定できます。

例1

C:\&gt;tracetcp www.aliyun.com:135
ポート 135 の 115.239.210.27 へのルートをトレースしています
最大 30 ホップ以上。
1 3ミリ秒 3ミリ秒 3ミリ秒 30.9.176.1
2 4ミリ秒 3ミリ秒 3ミリ秒 10.64.200.33
3 3 ミリ秒 3 ミリ秒 3 ミリ秒 10.64.1.1
4 * * * リクエストがタイムアウトしました。
5 * * * リクエストがタイムアウトしました。
6 * * * リクエストがタイムアウトしました。
7 * * * リクエストがタイムアウトしました。
8 * * * リクエストがタイムアウトしました。
9 * * * リクエストがタイムアウトしました。
10 * * * リクエストがタイムアウトしました。
11 * * * リクエストがタイムアウトしました。
12 * * * リクエストがタイムアウトしました。
13 * * * リクエストがタイムアウトしました。
14 * * * リクエストがタイムアウトしました。
15 * * * リクエストがタイムアウトしました。
16 * * * リクエストがタイムアウトしました。
17 * * * リクエストがタイムアウトしました。
18 * * * リクエストがタイムアウトしました。
19 * * * リクエストがタイムアウトしました。
20 * * * リクエストがタイムアウトしました。
21 * * * リクエストがタイムアウトしました。
22 * * * リクエストがタイムアウトしました。
23 * * * リクエストがタイムアウトしました。
24 * * * リクエストがタイムアウトしました。
25 * * * リクエストがタイムアウトしました。
26 * * * リクエストがタイムアウトしました。
27 * * * リクエストがタイムアウトしました。
28 * * * リクエストがタイムアウトしました。
29 * * * リクエストがタイムアウトしました。
30 * * * リクエストがタイムアウトしました。
トレース完了。

上記の検出データでは、ターゲット ポートは 3 番目のホップ以降にデータを返しません。このノード上の対応するポートがブロックされていることを示します。

結論の例: ノードはイントラネット IP であるため、ローカル ネットワークのセキュリティ ポリシーが原因となっている可能性があります。さらに調査と分析を行うには、ローカル ネットワーク管理者に連絡する必要があります。

例2

[root@mycentos ~]# traceroute -T -p 135 www.baidu.com
www.baidu.com (111.13.100.92) へのトレースルート、最大 30 ホップ、60 バイト パケット
 1 * * *
 2 192.168.17.20 (192.168.17.20) 4.115 ミリ秒 4.397 ミリ秒 4.679 ミリ秒
 3 111.1.20.41 (111.1.20.41) 901.921 ミリ秒 902.762 ミリ秒 902.338 ミリ秒
 4 111.1.34.197 (111.1.34.197) 2.187ミリ秒 1.392ミリ秒 2.266ミリ秒
 5 * * *
 6 221.183.19.169 (221.183.19.169) 1.688 ミリ秒 1.465 ミリ秒 1.475 ミリ秒
 7 221.183.11.105 (221.183.11.105) 27.729 ミリ秒 27.708 ミリ秒 27.636 ミリ秒
 8 * * *
 9 * * *
10 111.13.98.249 (111.13.98.249) 28.922 ミリ秒 111.13.98.253 (111.13.98.253) 29.030 ミリ秒 28.916 ミリ秒
11 111.13.108.22 (111.13.108.22) 29.169 ミリ秒 28.893 ミリ秒 111.13.108.33 (111.13.108.33) 30.986 ミリ秒
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *

上記の検出データでは、ターゲット ポートは 11 番目のホップ以降にデータを返しません。このノード上の対応するポートがブロックされていることを示します。

結論の例: クエリ後、ノードは Beijing Mobile に属しているため、自分で確認するか、作業指示書を送信してさらに調査および分析する必要があります。

以下もご興味があるかもしれません:
  • Linux のファイアウォールでポート 80 を開く方法の例
  • LinuxでMySQLのリモートアクセス権を有効にし、ファイアウォールでポート3306を開きます。
  • Linux のファイアウォールで特定のポート番号を開き、一般的なファイアウォール コマンドを使用する方法 (詳細な説明)
  • Linux プロセスが占有するポート番号を表示する 6 つの方法
  • Linuxでプロセスが占有するポート番号を表示する
  • Linuxでポートを転送する方法
  • ポートが占有されているかどうかを確認し、Linux ですべてのポートを表示する [推奨]
  • Linux ベースの VNC 構成ポート番号を変更する方法
  • Linux でポートの接続数を確認する方法
  • Linux での iptables によるポートのブロックとオープンの例
  • Linux Centos7 システムのポート占有問題の解決
  • Linux ソケット通信でローカル送信元ポート番号を取得する方法
  • lsof -i:port を使用して Linux でポートの使用状況を確認する方法
  • ポートの使用状況を確認するための Linux コマンドの詳細な例
  • Linux でポート トラフィックをカウントする方法
  • Linux で占有ポートを見つけてプロセスを強制終了する方法
  • Linux でポート、プロセスを表示し、プロセスを強制終了する方法
  • Linux でポートが占有されているかどうかを確認する方法
  • Linuxでプログラムポートの使用状況を確認するための詳細な説明
  • Linux 占有ポートの強制解放と Linux ファイアウォールのポート開放方法の詳しい説明

<<:  PrometheusとGrafanaを使用したMySQLサーバーのパフォーマンス監視の詳細な説明

>>:  ES6 ループと反復可能オブジェクトの例

推薦する

MySQL 1130例外、リモートログインできない解決策

目次質問: 1. リモートログイン権限を有効にする: 2. MySQLの権限を更新します。 3. テ...

CSSに基づいてマウス入力の方向を決定する

以前、フロントエンド技術グループに所属していたとき、グループのメンバーが面接中に問題に遭遇したと言っ...

Nginxはクロスドメインの問題を解決し、サードパーティのページを埋め込む

目次序文困難クロスドメイン定義nginxの機能リバースプロキシ静的と動的の分離達成しようとする最終結...

LambdaProbe を使用して Tomcat を監視する方法

導入: Lambda Probe (旧称 Tomcat Probe) は、Apache Tomcat...

HTML マーキー文字フラグメントのスクロール

その特性は次のとおりです。方向アクティブな字幕のスクロール方向を設定するコードは次のとおりです。 &...

Docker で MySQL サービスをデプロイする方法と、遭遇する落とし穴

最近、ポーターを学んでいます。こんなに強力なものがあったなんて、今まで知らなかった気がします。クラス...

Vue デフォルトスロットの理解とサンプルコード

目次スロットとは何かデフォルトスロットの理解コードスニペット要約するスロットとは何かスロットは、親コ...

Linuxのwhichコマンドの具体的な使い方

Linux でファイルを見つけたいのに、その場所がわからないことがよくあります。次のコマンドを使用し...

MySQLでよく使われるSQLとコマンドの入力からデータベースの削除、そして終了まで

目次開始と停止データベース関連の操作データベーステーブル関連の操作制約関連デフォルトの制約高度なデー...

SQL Server の完全バックアップに関する珍しいエラーと解決策

1. エラーの詳細一度、データベース全体のバックアップを手動で実行したときに、次のエラーが発生しまし...

動的および静的分離を実装するための Nginx サンプル コード

この記事のシナリオと組み合わせて、Nginx と Java 環境 (SpringBoot プロジェク...

Docker を使用した SQL Server の実行の実装

現在、.net Core はクロスプラットフォームであり、誰もが Linux と Docker を使...

MySQLクエリツリー構造方式

目次MySQL クエリツリー構造1. ツリー構造について2. MySQLでカスタム関数を定義する方法...

CSS でレスポンシブ レイアウトを実装する方法

CSS でレスポンシブ レイアウトを実装するレスポンシブレイアウトは非常にハイエンドで難しいように思...

Reactでコンポーネントがどのように通信するかの詳細な説明

1. 何ですかコンポーネント間の通信は、次の 2 つの単語に分けることができます。コンポーネントコ...