ホーム テクノロジー LINUX 6 ネットワーク接続をテストする Linux ユーティリティ

6 ネットワーク接続をテストする Linux ユーティリティ


2 つのネットワーク エンドポイント間の接続を確認する方法を知りたいですか?

システム管理者の一般的なタスクの 1 つは、ネットワークの問題のトラブルシューティングを行うために接続を確認することです。アプリケーションがバックエンド サービスに接続できない、外部 URL からデータをフェッチできない、フローが開いているかどうかを確認できないなど、あらゆることが考えられます。

それが何であれ、次のユーティリティ/コマンドが役に立ちます。これらは CentOS でテストされており、別の Linux ディストリビューションで動作しない理由はありません。

探検してみましょう…

テルネット

サーバー間、サーバーと別のネットワーク デバイスの IP 間の重要な接続をテストするために広く使用されているコマンドの 1 つ。コマンドの構文は簡単です。

 telnet $destinationIP $PORT

IP アドレス 10.0.0.1 のポート 8080 に接続できるかどうかをテストしたいとします。その場合、コマンドは次のようになります。

 telnet 10.0.0.1 8080

接続に問題がない場合は、接続済みのメッセージが表示されます。

 Trying 10.0.0.1...
Connected to 10.0.0.1.
Escape character is '^]'.

注: Telnet の実行中にコマンドが見つからない場合は、ここで説明したように Telnet をインストールする必要があります。

ほとんどのシナリオでは、Telnet が役に立ちます。ただし、他のオプションが必要な場合は、Telnet の代替手段をいくつか紹介します。

ncatまたはnc

Ncat (別名 nc) は、接続のバインドと受け入れ、リモートでのコマンドの実行、データの書き込みと読み取りなどの多くの機能を備えた強力なネットワーク ユーティリティです。IPv4 と IPv6 の両方で動作します。

ポートが開いているかどうかを確認する簡単なテストを行うには、次のコマンドを実行します。

 nc -vz $HOSTNAME $PORT

.com で 443 ポートをテストする例を見てみましょう。

 [root@-lab ~]# nc -vz .com 443
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 104.25.133.107:443.
Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds.
[root@-lab ~]#

前述したように、 nc使用して接続をバインドし、特定のポートでリッスンすることもできます。これは、実際のサービスを実行していないが、接続が存在していることを確認したい場合に便利です。

ポートでのリッスンを開始するには:

 nc -l $PORTNUMBER

ポートを指定された番号にバインドします。

ncat がインストールされていない場合は、CentOS/RHEL サーバーでyum install ncを使用してインストールできます。

ウィゲット

wget は、HTTP、HTTPS、および FTP をダウンロード/テストするのに便利なコマンドです。 Web エンジニアとして働いている場合、または Web 関連の問題に頻繁に対処している場合は、 wgetがあなたの味方です。 wget を使用したテストは簡単です。

 wget $URL

これは tools..com のテストの例です

[root@-lab ~]# wget tools..com
--2019-05-09 20:40:01--  http://tools..com/
Resolving tools..com (tools..com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ...
Connecting to tools..com (tools..com)|104.25.134.107|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://tools..com/ [following]
--2019-05-09 20:40:01--  https://tools..com/
Connecting to tools..com (tools..com)|104.25.134.107|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: 'index.html.2'

    [ <=>                                                                                                                                  ] 15,139      --.-K/s   in 0.001s  

2019-05-09 20:40:02 (12.8 MB/s) - 'index.html.2' saved [15139]

[root@-lab ~]#

接続済みと表示されている場合は、接続に問題がないことを意味します。

頻繁に使用される wget コマンドの例をいくつか確認するには、これを確認してください。

カール

カールは多目的ツールです。

カールを使用してポートに Telnet 接続できることをご存知ですか?

さて、もうおわかりでしょう。

 curl -v telnet://$IP:$PORT

以下は実際の例です。

 [root@-lab ~]# curl -v telnet://chandan.io:443
* About to connect() to chandan.io port 443 (#0)
*   Trying 104.31.68.106...
* Connected to chandan.io (104.31.68.106) port 443 (#0)

そして、リッスン ポートやファイアウォールの問題がない場合は、試行中と表示されます…

 [root@-lab ~]# curl -v telnet://chandan.io:4434
* About to connect() to chandan.io port 4434 (#0)
*   Trying 104.31.68.106...

また、curl を使用してデータをダウンロードすることもできます。 HTTP、HTTPS、FTP、IMAP、LDAP、POP3、SCP、SFTP、GOPHER などの複数のプロトコルをサポートします。

nmap

何百もの機能を備えた人気のツール。多くの場合、これはセキュリティ ツールとみなされます。nmap を使用すると、単一の IP/ポートまたは範囲内でテストできます。

単一のポートをテストするには

nmap -p $PORT $IP

siterelic.com でポート 443 をテストする例

[root@-lab ~]# nmap -p 443 siterelic.com
Starting Nmap 7.70 ( https://nmap.org ) at 2019-05-10 06:55 UTC
Nmap scan report for siterelic.com (104.27.174.50)
Host is up (0.0079s latency).
Other addresses for siterelic.com (not scanned): 104.27.175.50 2606:4700:30::681b:ae32 2606:4700:30::681b:af32

PORT    STATE SERVICE
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
[root@-lab ~]#

状態欄を見てください。 「open」と表示された場合は、接続が正常であることを意味します。また、状態がフィルターされている場合は、接続が存在しないことを意味します。

ピン

広く使用されているコマンドの 1 つは、リモート ホストが ICMP ECHO_REQUEST に応答しているかどうかを確認することです。 ICMP がリモート ネットワークのファイアウォールでブロックされている場合、正確な結果が得られない可能性があることに注意してください。そうでない場合は、以下のように IPv4 または IPv4 ネットワーク エンドポイントに ping を送信できます。

 ping $ipaddress
ping $url

たとえば .com の成功結果

chandan@192 ~ % ping .com
PING .com (104.27.119.115): 56 data bytes
64 bytes from 104.27.119.115: icmp_seq=0 ttl=53 time=7.944 ms
64 bytes from 104.27.119.115: icmp_seq=1 ttl=53 time=8.870 ms

たとえば、内部 IP の障害結果です。

 chandan@192 ~ % ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1

エンドポイントが IPv6 をサポートしている場合は、次のようにping6コマンドを使用できます。

 chandan@192 ~ % ping6 .com
PING6(56=40+8+8 bytes) 2a01:4b00:88e4:8700:d8ca:bf50:159c:2a1d --> 2606:4700:20::681b:7673
16 bytes from 2606:4700:20::681b:7673, icmp_seq=0 hlim=250 time=8.650 ms
16 bytes from 2606:4700:20::681b:7673, icmp_seq=1 hlim=250 time=8.738 ms

インターネット経由でリモート ping を実行する必要がある場合は、オンライン ping ツールを使用できます。

結論

最新の Linux バージョンでは Telnet が段階的に廃止されます。上記の Telnet 代替手段のおかげで。

Linux を初めて使用し、学習したい場合は、このUdemy コースをチェックしてください。

「 6 ネットワーク接続をテストする Linux ユーティリティ」についてわかりやすく解説!絶対に観るべきベスト2動画

【Linux技術動画】ネットワーク設定&ターミナル接続
【ネットワーク基礎講座8(Linux基礎講座8)】ネットワーク監視コマンド1 / ping / route / ネットワーク設定ファイル【6:52】