ss는 원시 소켓을 표시합니다. "*:ipproto-255"를 수신하고 있다는 것은 무엇을 의미합니까?

ss는 원시 소켓을 표시합니다. "*:ipproto-255"를 수신하고 있다는 것은 무엇을 의미합니까?

로컬 주소/포트 열에서 은 무엇을 ss의미하나요?*:ipproto-255

$ sudo ss -ap | grep -vE "^(nl |u_)"
Netid  State     Recv-Q Send-Q  Local Address:Port  Peer Address:Port
p_raw  UNCONN    0      0        *:eth0               *                 users:(("lldpd",pid=742,fd=11))
raw    UNCONN    0      0        *:icmp              *:*                users:(("ping",pid=9077,fd=3))
raw    UNCONN    0      0        *:ipproto-255       *:*                users:(("atop",pid=7353,fd=4))
raw    UNCONN    0      0       :::ipv6-icmp        :::*                users:(("ping",pid=9077,fd=4))
udp    UNCONN    0      0        *:syslog            *:*                users:(("rsyslogd",pid=495,fd=5))
...

그것이 어떻게 생겼는지 궁금하다면 netstat, 그것은 이렇게 보입니다 0.0.0.0:255.

$ sudo netstat -l --raw -ep
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name
raw        0      0 0.0.0.0:255             0.0.0.0:*               7           root       2427667    7353/atop

답변1

255는 값입니다 IPPROTO_RAW. 이는 소켓이 모든 유형의 IPv4 패킷 전송을 허용한다는 것을 의미합니다. (패킷을 받을 수 없습니다.) 프로그램은 완전한 IPv4 헤더를 제공해야 합니다.

비교를 위해 원시 소켓을 사용하면 *:icmpICMP 프로토콜을 사용하여 IPv4 패킷을 보내고 받을 수 있습니다.

이러한 세부 정보는 Linux에만 해당됩니다. 원시 소켓의 정확한 동작은 Unix 변형과 버전에 따라 다릅니다.

http://man7.org/linux/man-pages/man7/raw.7.html

IPv4 프로토콜 필드에는 255개의 가능한 값이 있습니다.

https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers


즉, 나는 이 특정 IPPRPROTO_RAW소켓이 패킷을 보내는 데 사용되지 않는다는 것을 발견했습니다.

꼭대기에서 원시 소켓을 여는 이유는 무엇입니까?

관련 정보