pingをすると応答が来ます。
$ ping 10.26.14.16
64 bytes from 10.26.140.160: icmp_seq=1 ttl=63 time=0.525 ms
ポートにpingをしても応答がありません。
$ nmap -p 5016 10.26.14.16
5016/tcp closed unknown
Q:ポート5016を開く方法は?
答え1
@ucarusがこの投稿で言ったようにコメント:
サービスにポートをリッスンさせることで、ポートを「開く」ことができます。
E、g:マシンnc
でポートリスナー5016を起動するために使用されます10.26.14.16
。
nc -l 5016 &
それから:
nmap -p 5016 10.26.14.16
答え2
このため、netcatはポートを開いたままにするのに適したツールではありません。その理由は、netcatリスナーが生のソケットツールであり、追加のコマンドを実行する必要があるためです。たとえば、サーバー側でTCP 5016を開いたままにします。次に、サーバーでnmapスキャンを実行します。スキャン中、クライアントは TCP SYN パケットを送信します。応答方法を知らなかったので、サーバーは応答方法を知りません。つまり、応答方法をプログラムする必要があります(TCPプロトコルと同様)。その結果、サーバーはSYNに応答してRSTをクライアントに送信し、接続が切断されます。これは、ポート上で実行されているサービスがなく、クライアントの観点から見ると、ポートが閉じられているように見えるときに発生します。
あなたの要件を簡単に満たすために、ほとんどのUnixファミリーオペレーティングシステムにプリインストールされているPythonを使用することをお勧めします。 HTTPモジュールを使用できます(追加のインストールは必要ありません)。この場合、クライアントがnmapスキャンを実行すると、サーバー(これは単純なHTTPサーバーとして機能します)がTCP SYNパケットにどのように応答するかを知ります。まず、Python v2またはv3に応じて、次のようになります。
Python 2(サーバー側):
$ python -V
$ cd /tmp
$ python -m SimpleHTTPServer 5016
Python 3(サーバー側):
$ python -V
$ cd /tmp
$ python3 -m http.server 5016
Nmap(クライアント):
$ nmap -p 5016 10.26.14.16
このコマンドは$ cd /tmp
必須ではありませんが、Webサーバーは現在のディレクトリを索引付けするため、注意してください。しかし、/tmp
ここはテストを実行するのに安全な場所です。