`rpcinfo`는 RPC 서비스의 포트 번호를 나열합니까?

`rpcinfo`는 RPC 서비스의 포트 번호를 나열합니까?
$ rpcinfo 
   program version netid     address                service    owner
    100000    4    tcp6      ::.0.111               portmapper superuser
    100000    3    tcp6      ::.0.111               portmapper superuser
    100000    4    udp6      ::.0.111               portmapper superuser
    100000    3    udp6      ::.0.111               portmapper superuser
    100000    4    tcp       0.0.0.0.0.111          portmapper superuser
    100000    3    tcp       0.0.0.0.0.111          portmapper superuser
    100000    2    tcp       0.0.0.0.0.111          portmapper superuser
    100000    4    udp       0.0.0.0.0.111          portmapper superuser
    100000    3    udp       0.0.0.0.0.111          portmapper superuser
    100000    2    udp       0.0.0.0.0.111          portmapper superuser
    100000    4    local     /run/rpcbind.sock      portmapper superuser
    100000    3    local     /run/rpcbind.sock      portmapper superuser

내 생각에 "주소"는 RPC 서비스의 IPv6 주소를 나타내는 것 같습니다.https://unix.stackexchange.com/a/234158/674.

rpcinfoRPC 서비스의 포트 번호를 나열하시겠습니까 ? 어떻게 찾을 수 있나요?

답변1

이 버전의 rpcinfo구현은 포트 번호가 단일 16비트 숫자 대신 두 개의 별도 바이트로 표시되므로 약간 성급한 것처럼 보입니다.

portmapper서비스는 포트 번호가 다를 수 있는 다른 모든 RPC 서비스를 찾는 데 사용되므로 항상 포트 111에 있을 것으로 예상됩니다. (ONC RPC 프로토콜은 방화벽이 널리 보급되기 전에 개발되었기 때문에 최신 구현에서는 정적 포트 번호를 점점 더 많이 사용하고 있습니다. 예를 들어 NFS는 이제 포트 2049를 표준으로 사용할 것으로 예상됩니다.)

이는 IPv6에서 가장 명확하게 나타납니다. 모두 0인 IPv6 주소는 으로 표시되고 ::포트 번호는 로 표시됩니다 .0.111. 이 경우 포트 번호의 최상위 바이트는 0이고 최하위 바이트는 111임을 의미합니다.

IPv4 측에서는 동일한 구문을 사용합니다. 주소 필드에는 모두 0인 IPv4 주소(INADDR_ANY)와 연결된 포트 번호 0.0.0.0의 2바이트 표현이 있습니다..0.111

포트 번호의 MSB에 256을 곱한 후 LSB 값을 더하면 실제 포트 번호를 얻을 수 있습니다. 예를 들어 포트 번호 2049는 .8.1이 구문( 8*256 + 1= 2049) 으로 나타납니다.

관련 정보