ポートを開く方法?

ポートを開く方法?

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ここはテストを実行するのに安全な場所です。

関連情報