ノウハウ

送信先ポートが接続できない時の接続確認

2017年9月26日

こんにちは!土門大貴(daikidomon)です。

WindowsとLinuxの2つで相手先サーバのポートが動作しているか確認する方法を紹介します。

アプリケーション間でネットワーク接続をする際にポート番号ですが、送信先でポートがListen(接続してもOKな状態)していないとネットワーク通信はできません。

Windows環境での確認方法

実施方法はpowershellです。
$tc = New-Object System.Net.Sockets.tcpClient
$tc.connect("IPアドレスorホスト名",ポート番号)
$tc.connected
↓が実行ログ。「True」が出力されたら対象ポートが利用できます。

> $tc = New-Object System.Net.Sockets.tcpClient

> $tc.connect("localhost",50022)

> $tc.connected

True  PS C:\Users\shimidai>

$tc.connected

下のように出力されたら対象のポートへの接続ができません。

 "2" 個の引数を指定して "Connect" を呼び出し中に例外が発生しました: "既に接続済みのソケットに対して接続を要求しました。" 発生場所 行:1 文字:1 + $tc.connect("localhost",50021) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : SocketException $tc.close()

Linux環境での確認方法

実施方法はtelnetコマンドです。
telnet IPアドレスorホスト名 ポート番号

↓が実行ログです。Escape character is '^]'.が出力されれば接続成功しています。

[root@rhel73-12201 ~]# telnet 192.168.56.115 22
Trying 192.168.56.115...
Connected to 192.168.56.115.
Escape character is '^]'.

接続失敗している場合はConnection refusedが出力されます。

[root@rhel73-12201 ~]# telnet 192.168.56.115 21
Trying 192.168.56.115...
telnet: connect to address 192.168.56.115: Connection refused

 

関連記事

-ノウハウ

Copyright© スタートアップIT企業社長のブログ , 2020 All Rights Reserved.