$ 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.
rpcinfo
RPC 서비스의 포트 번호를 나열하시겠습니까 ? 어떻게 찾을 수 있나요?
답변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) 으로 나타납니다.