Linux 시스템에서 포트 수신기를 만드는 방법은 무엇입니까?

Linux 시스템에서 포트 수신기를 만드는 방법은 무엇입니까?

다음 명령은 포트 수신기를 생성합니다.

nc –l 5500 &

다음과 같이:

[root@xyz ~]# netstat -anlp | grep 5500
tcp       0     0 0.0.0.0:5500               0.0.0.0:*                   LISTEN
   21085/nc

100개의 포트 리스너를 생성하고 싶습니다.

그러나 구문은 다음과 같습니다.

 $ for i in {10000..10100}; do nc -l $i &; done

오류가 발생합니다.

 bash: syntax error near unexpected token `;'

  1. 테스트를 위해 n개의 포트 리스너를 생성하는 방법은 무엇입니까?

  2. 테스트가 완료된 후 이러한 포트 수신기를 어떻게 제거할 수 있습니까?

답변1

에서 언급했듯이채팅&과 같은 명령문 종결자 ;이므로 ;앞에 done나타나서는 안 됩니다 .

for i in {10000..10100}; do nc -l "$i" & done

또는,

for i in {10000..10100}; do
    nc -l "$i" &
done

nc를 사용하여 모든 프로세스를 종료할 수 있습니다 pkill nc.

또는 각 프로세스의 PID를 nc배열에 저장하고 해당 배열을 사용하여 프로세스를 종료합니다.

pids=()
for i in {10000..10100}; do
    nc -l "$i" & pids+=("$!")
done

후에:

kill "${pids[@]}"

분명히 이는 nc명령의 PID가 다른 프로세스에 의해 회수되지 않았다고 가정합니다.


roaima가 댓글에서 지적했듯이 중괄호 확장은 {10000..10100}100이 아닌 101 숫자로 확장됩니다.

관련 정보