단순 TCP 서버는 포트를 수신하지만 SYN-ACK를 반환하지 않습니다.

단순 TCP 서버는 포트를 수신하지만 SYN-ACK를 반환하지 않습니다.

지정된 포트에서 수신 대기하고 SYN이 수신되면 명령줄 TCP 서버(가급적 단일 줄)를 찾고 있습니다.아니요일반 TCP 서버처럼 SYN-ACK로 응답합니다.

이 상황을 올바르게 처리하기 위해 과부하 상태에서 서버에 연결을 시도하는 클라이언트를 테스트하는 것이 목적입니다.

답변1

내가 아는 한 이것은 전적으로 가능합니다. 원시 IP 소켓에 바인딩해야 합니다.UID= 0(그러나 이를 방지하기 위해 정의된 함수가 있을 수도 있습니다. 잘 모르겠습니다). 사실 그게 다야조짐일하는 중입니다스텔스 모드.

답변2

설명하신 대로 명령줄 도구를 찾지 못했지만 해결 방법이 있습니다.iptables:

sudo iptables -A INPUT -p tcp --destination-port 52379 -j DROP

답변3

-l 옵션과 함께 nc(netcat)를 사용해 볼 수 있습니다.

-l      Used to specify that nc should listen for an incoming connection
        rather than initiate a connection to a remote host.  It is an
        error to use this option in conjunction with the -p, -s, or -z
        options.  Additionally, any timeouts specified with the -w option
        are ignored.

에서와 같이

nc -l yourport

답변4

Syn-ack에 응답하지 않으면 상대방이 계속해서 syn-ack을 보낼 수 있습니다. 포트 9가 수행하는 작업을 수행하여 이 문제를 파악할 수 있습니다. 즉, 승인(즉, syn-ack 전송)을 수행한 다음 다른 모든 패킷을 삭제합니다. 바라보다 /etc/services. 소켓을 소모합니다.

또 다른 옵션은 방화벽에서 IP + 포트를 차단하고 60분 후에 규칙을 삭제하는 것입니다.

관련 정보