소개하다:포트가 사용 가능한지 확인하고 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
그런 식으로 여러 포트를 열 수 있습니다.
더 오랫동안 열어야 하는 경우 슈퍼 서버 중 하나를 사용하여 데몬을 만들 수 있습니다.
답변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
그런 다음 원하는 시스템에서 확인할 수 있습니다.