`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ビット数の代わりに2つの別々のバイトとして表示されるため、少し急性のように見えます。

このportmapperサービスは、ポート番号が異なる可能性がある他のすべてのRPCサービスを見つけるために使用されるため、常にポート111にあると予想されます。 (ONC RPCプロトコルはファイアウォールが広く普及する前に開発されているため、最新の実装では静的ポート番号がますます使用されています。

これはIPv6で最も明確に表示されます。すべて0のIPv6アドレスはで、::ポート番号はで表示されます.0.111。この場合、ポート番号の最上位バイトは 0 で、最下位バイトは 111 であることを意味します。

IPv4 側では同じ構文を使用します。アドレスフィールドには、すべてゼロのIPv4アドレス(INADDR_ANY)に関連付けられているポート番号0.0.0.0の2バイト表現があります。.0.111

ポート番号の MSB に 256 を乗算した後、LSB 値を加算すると実際のポート番号が得られます。たとえば、ポート番号2049は.8.1この構文(8* 256 + 1= 2049)として表示されます。

おすすめ記事