web-dev-qa-db-ja.com

Unixでリモートホストポートがアクセス可能かどうかをテストする方法

Windowsでは、コマンドラインと 'telnet'に移動してポートを確認します。 Unixで同じことをするには?

「tcpdump port」コマンドを使用している人もいるようです。これはリアルタイムのトラフィックを監視していますか?ありがとう。

3
Stan

nmapは、そのようなことや他の多くの目的のための優れた汎用ツールです。

nmap Host.domain.tld(またはnmap Hostローカルマシン、またはnmap <ipaddr>(名前ではなくアドレスでマシンをチェックする)は、開いている一般的なポートを一覧表示します。

nmap 192.168.23.1-254 -p 22,80,443は、アドレスでホストの範囲をスキャンして、TCP通常SSH、HTTP、およびHTTPSに関連付けられているポートが開いているかどうかを確認します。

見る man nmapより多くのオプション-ネットワークチェックツールのキッチンシンクです。

現在nmapをインストールしていない可能性がありますが、それはほとんどすべてのディストリビューションの標準リポジトリにあります。 debianまたはubuntuバリアントの場合aptitude install nmapをクリックしてインストールするか、選択したGUIパッケージマネージャで検索します。システムで簡単に入手できない場合は、 http://nmap.org/ から入手してください。

すでにおなじみのtelnetクライアントテクニックを使用することもできます。これも利用可能であり、通常はデフォルトパッケージの1つにインストールされますが、nmapは知っておく価値のあるツールですネットワークの問題を診断したり、状況が正しいことを確認したりする場合などに役立ちます。コマンドラインから離れて操作したい場合は、グラフィカルなフロントエンドもいくつかあります。

10
David Spillett

Bashを使用している場合、manページには/ dev/tcp/HostNameOrIP/portに書き込むことができると記載されています。私はこれを数回使用しましたが、リモートポートが開いていると、応答がありません。システムがリモートポートに接続できない場合は、理由を示します

[kevin@box ~]$ echo -n > /dev/tcp/www.yahoo.com/80
[kevin@box ~]$ nslookup www.no-such-domain.com
Server:         127.0.0.1
Address:        127.0.0.1#53

** server can't find www.no-such-domain.com: NXDOMAIN

[kevin@box ~]$ echo -n > /dev/tcp/www.no-such-domain.com/80
-bash: www.no-such-domain.com: Name or service not known
-bash: /dev/tcp/www.no-such-domain.com/80: Invalid argument
[kevin@box ~]$ echo -n > /dev/tcp/192.168.3.3/80    #no such server on my network
-bash: connect: No route to Host
-bash: /dev/tcp/192.168.3.3/80: No route to Host
[kevin@box ~]$ echo -n > /dev/tcp/192.168.3.1/88    #nothing listening on port 88
-bash: connect: Connection refused
-bash: /dev/tcp/192.168.3.1/88: Connection refused
[kevin@box ~]$
5
Kevin M

* nixマシンでもtelnetを使用できます。

3
warren

Bashでポートにアクセスできるかどうかをテストするには、次の1行のコマンドを使用できます。

$ </dev/tcp/example.com/80 && echo Port is open || echo Port is closed
Port is open

手動で確認するには、telnetコマンドを使用します(Windowsと同様)。

0
kenorb