2 つのネットワーク エンドポイント間の接続をチェックする方法をお探しですか。
システム管理者の一般的なタスクの 1 つに、ネットワーク問題のトラブルシューティングのために接続をチェックすることが挙げられます。 アプリケーションがバックエンド サービスに接続できない、外部 URL からデータを取得できない、フローが開かれているかどうかを確認するなど、あらゆる可能性があります。 これらは CentOS 7.x でテストされており、他の Linux ディストリビューションで動作しない理由はないと思います。
Let’s explore…
telnet
サーバー間の必須接続、サーバーと別のネットワーク デバイスの IP をテストするために広く使用されているコマンドの 1 つ。 コマンドの構文は簡単です。
telnet $destinationIP $PORT
10.0.0.1 IP アドレスのポート 8080 に接続できるかどうかをテストする場合を考えてみましょう。
Trying 10.0.0.1...Connected to 10.0.0.1.Escape character is '^]'.
注意: telnet を実行中にコマンドが見つからない場合、ここで説明したように telnet をインストールする必要があります。
ncat or nc
Ncat (別名 nc) は、接続の確立と承認、リモートでのコマンド実行、データの書き込みと読み込みなど多くの機能を持つ強力なネットワーク ユーティリティです。
nc -vz $HOSTNAME $PORT
ポートが開いているかどうかを確認する簡単なテストを行うには、以下を実行します。
# nc -vz geekflare.com 443Ncat: 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.#
前述のように、nc
を使って特定のポートで待ち受けるように接続をバインドすることも可能です。 これは、実際のサービスを実行していないが、接続が存在することを確認したい場合に便利です。
To start listening on a port:
nc -l $PORTNUMBER
It will bind the port on a given number.これは、指定された番号のポートをリッスンするために使用します。
ncatがインストールされていない場合、CentOS/RHELサーバーではyum install nc
で完了します。
wget
wgetはHTTP、HTTPS、FTPのダウンロード/テストに役立つコマンドです。 もしあなたがウェブエンジニアとして働いていたり、ウェブに関連する問題に頻繁に対処しているなら、wget
はあなたの味方です。
wget $URL
tools.geekflare.com をテストする例です。
# wget tools.geekflare.com--2019-05-09 20:40:01-- http://tools.geekflare.com/Resolving tools.geekflare.com (tools.geekflare.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ...Connecting to tools.geekflare.com (tools.geekflare.com)|104.25.134.107|:80... connected.HTTP request sent, awaiting response... 301 Moved PermanentlyLocation: https://tools.geekflare.com/ --2019-05-09 20:40:01-- https://tools.geekflare.com/Connecting to tools.geekflare.com (tools.geekflare.com)|104.25.134.107|:443... connected.HTTP request sent, awaiting response... 200 OKLength: unspecified 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 #
接続されていると表示されたら、接続の問題がないことを意味します。
curl
curlは多目的なツールです。
Well, now you know.
curl -v telnet://$IP:$PORT
以下は動作例です。
# 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)
そして、リスニングポートやファイアーウォールの問題がない場合、試して見る…
# 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をテストする例
# nmap -p 443 siterelic.comStarting Nmap 7.70 ( https://nmap.org ) at 2019-05-10 06:55 UTCNmap 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:af32PORT STATE SERVICE443/tcp open httpsNmap done: 1 IP address (1 host up) scanned in 0.13 seconds#
状態の列を見てみてください。 もし、openと表示されたら、接続がOKであることを意味します。
Conclusion
telnet は最新の Linux バージョンでは廃止されつつあります。 上記の telnet の代替手段に感謝します。
もしあなたが Linux に慣れておらず、学びたいと思っているなら、この Udemy コースをチェックしてください。