인용하다소스 포트를 할당하는 방법, 로컬 포트가 어떻게 결정되는지 알고 있습니다. (=>임의의 무료 임시 포트).
그런데 내 원시 소켓이 할당된 socket(AF_INET, SOCK_RAW, IPPROTO_TCP)
포트를 사용하는 이유는 무엇입니까 6
?
ss -lnp
보여주다:tcp UNCONN 0 0 0.0.0.0:6 0.0.0.0:* users:(("exe",pid=13164,fd=5))
=6
IPPROTO_TCP가 에서 정의 되었기 때문에 소켓을 잘못 생성했나요 linux/in.h
? 아니면 6
가능한 경우 RAW_SOCKETS가 기본적으로 포트를 사용합니까 ?
이것이 중요하다면 Ubuntu 4.15를 사용하고 있습니다.
답변1
@dirkt가 언급했듯이 소켓은 포트에 바인딩되어 있지 않으며 displays
프로토콜은 포트(분명히 존재하지 않음) 대신 로컬 IP 뒤에 있습니다.
사용 socket(AF_INET, SOCK_RAW, 123)
, ss
출력??? UNCONN 0 0 0.0.0.0:123 0.0.0.0:* users:(("exe",pid=10039,fd=3))
또한 세 번째 인수로 다른 숫자를 사용하여 테스트한 socket()
결과 ss
local port
.