紹介する:ポートが使用可能であることを確認し、falseの場合、最大ポート番号に達するまでポートを1ずつ増やすbash関数を作成しました。たとえば、ポート500が利用できない場合、550までの501の可用性が確認されます。
目的:このbash機能をテストするには、LISTEN状態で一連のポートを作成する必要があります。
努力する:Windowsでは、次のコマンドを使用してLISTENポートを作成できます。これらのPowerShellコマンド:
PS C:\Users\u> netstat -nat | grep 1234
PS C:\Users\u> $listener = [System.Net.Sockets.TcpListener]1234
PS C:\Users\u> $listener.Start();
PS C:\Users\u> netstat -nat | grep 1234
TCP 0.0.0.0:1234 0.0.0.0:0 LISTENING InHost
PS C:\Users\u> $listener.Stop();
PS C:\Users\u> netstat -nat | grep 1234
PS C:\Users\u>
これに基づいて、CentOSで同じことを行うコマンドを考えてみましたが、なぜかGoogleを起動しましたが、この問題に対する解決策が見つかりませんでした。
予想される回答:リッスンポートを生成するコマンドを含む回答を受け入れ、賛成投票します。そのコマンドが実行されると、ポートはスタンバイ状態を維持する必要があります。つまり:
[user@host ~]$ ss -nat | grep 500
LISTEN 0 128 *:500 *:*
答え1
Netcatを使用してポートリスナーを作成できます。
root@ubuntu:~# nc -l 5000
netstat コマンドを使用してポートが開いていることを確認することもできます。
root@vm-ubuntu:~# netstat -tulpen | grep nc
tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN 0 710327 17533/nc
nc を使用して以下を確認することもできます。
Netcatサーバーリスナー:
nc -l localhost 5000
ネットワーク猫クライアント:
root@vm-ubuntu:~# nc -v localhost 5000
Connection to localhost 5000 port [tcp/*] succeeded!
ポートが開いていない場合
root@vm-ubuntu:~# nc -v localhost 5000
nc: connect to localhost port 5000 (tcp) failed: Connection refused
答え2
nc -l
必要なものを達成するための方法として使用できます。一部の実装には、接続を持続させるオプションがnc
あります。-L
しばらくの間必要な場合は、このコマンドを繰り返して複数のfor
ポートを開くことができます。
長時間開く必要がある場合は、スーパーサーバーの1つを使用してデーモンを作成できます。
答え3
聞くにはnetcatを使用してください。
# nc -l 5555
SSで確認
# ss -nat|grep 5555
LISTEN 0 1 *:5555 *:*
#
答え4
以下のPythonコードは仮想ポートを開くのに役立ちます。
''' Simple socket server using threads
'''
import socket
import sys
HOST = '' # Symbolic name, meaning all available interfaces
PORT = 5500 # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print 'Socket created'
#Bind socket to local host and port
try:
s.bind((HOST, PORT))
except socket.error as msg:
print 'Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
sys.exit()
print 'Socket bind complete'
#Start listening on socket
s.listen(10)
print 'Socket now listening'
#now keep talking with the client
while 1:
#wait to accept a connection - blocking call
conn, addr = s.accept()
print 'Connected with ' + addr[0] + ':' + str(addr[1])
s.close()
ファイルを保存し、以下のようにpythonコマンドを使用して実行します。
~]# python portlistener.py
Socket created
Socket bind complete
Socket now listening
その後、希望のシステムで確認できます。