RPCBIND(8)

โœจ RPCBIND โœจ

okay so bestie, welcome to rpcbind โ€” the manual page for the universal addresses to RPC program number mapper ๐Ÿ’ซ it's from the System Manager's Manual, section 8, and it's genuinely one of those little daemons that holds the whole RPC situation together. let's get into it ๐Ÿซถ


๐ŸŒธ SYNOPSIS ๐ŸŒธ

rpcbind [-adfhilsvw]

๐Ÿ’… DESCRIPTION ๐Ÿ’…

so the rpcbind utility is a server that converts RPC program numbers into universal addresses. that's the whole job. and it must be running on the host if you wanna make RPC calls on a server on that machine. no rpcbind, no calls, periodt ๐Ÿ˜ญ

here's the lore. when an RPC service starts up, it tells rpcbind the address it's listening on, plus the RPC program numbers it's ready to serve. then when a client wants to make an RPC call to a given program number, it first hits up rpcbind on the server machine to find out where the RPC requests should actually be sent. matchmaker behavior fr ๐Ÿ’–

the order matters, bestie: rpcbind should be started before any other RPC service. normally, standard RPC servers get started by port monitors, so rpcbind must be started before port monitors are invoked. like, it's the opening act, and it does NOT get skipped ๐Ÿ‘‘

when rpcbind starts, it checks that certain name-to-address translation-calls function correctly. if they fail, the network configuration databases may be corrupt. and since RPC services cannot function correctly in that situation, rpcbind reports the condition and terminates. dramatic? yes. necessary? also yes ๐Ÿ’€

also hi, important: the rpcbind utility can only be started by the super-user. sorry to the girlies without root ๐Ÿฅฒ

โœจ OPTIONS โœจ

  • -a โ€” when debugging (-d), do an abort on errors. spicy mode ๐ŸŒถ๏ธ
  • -d โ€” run in debug mode. in this mode, rpcbind will log additional information during operation, and will abort on certain errors if -a is also specified. with this option, the name-to-address translation consistency checks are shown in detail. it's giving verbose queen ๐Ÿ”
  • -f โ€” do not fork and become a background process. it stays right there with you, main character energy, no disappearing acts ๐Ÿ™ˆ
  • -h โ€” specify specific IP addresses to bind to for UDP requests. this option may be specified multiple times and can be used to restrict the interfaces rpcbind will respond to. when specifying IP addresses with -h, rpcbind will automatically add 127.0.0.1 and if IPv6 is enabled, ::1 to the list. if no -h option is specified, rpcbind will bind to INADDR_ANY, which could lead to problems on a multi-homed host due to rpcbind returning a UDP packet from a different IP address than it was sent to. ๐Ÿ˜ฌ note that when rpcbind is controlled via systemd's socket activation, the -h option is ignored. in this case, you need to edit the ListenStream and ListenDgram definitions in /usr/lib/systemd/system/rpcbind.socket instead. yes bestie, you have to go edit the file, i don't make the rules ๐Ÿซ 
  • -i โ€” โ€œInsecureโ€ mode ๐Ÿ‘€ allow calls to SET and UNSET from any host. normally rpcbind accepts these requests only from the loopback interface for security reasons. this change is necessary for programs that were compiled with earlier versions of the rpc library and do not make those requests using the loopback interface. legacy behavior, we respect it, we also side-eye it ๐Ÿ’€
  • -l โ€” turn on libwrap connection logging. receipts, but make them logs ๐Ÿ“
  • -s โ€” cause rpcbind to change to the user daemon as soon as possible. this causes rpcbind to use non-privileged ports for outgoing connections, preventing non-privileged clients from using rpcbind to connect to services from a privileged port. glow down for safety, we love to see it ๐Ÿ›ก๏ธ
  • -v โ€” print rpcbind version and builtin configuration and exit. quick lil vibe check then bounce โœŒ๏ธ
  • -w โ€” cause rpcbind to do a "warm start" by read a state file when rpcbind starts up. the state file is created when rpcbind terminates. so it remembers where it left off, unlike me during finals ๐Ÿ˜ญ

๐ŸŽ€ FILES ๐ŸŽ€

the rpcbind utility tries to load configuration file in following order:

  1. /etc/rpcbind.conf
  2. /etc/default/rpcbind
  3. /etc/sysconfig/rpcbind

first one it finds wins, basically first-come-first-served ๐Ÿ’–


๐Ÿฆ‹ NOTES ๐Ÿฆ‹

all RPC servers must be restarted if rpcbind is restarted. like, all of them. no exceptions, no negotiating, no "but i just started it" ๐Ÿ˜ค

๐ŸŒˆ SEE ALSO ๐ŸŒˆ

  • rpcinfo(8) โ€” go say hi, it's the friend that tells you what's actually registered ๐Ÿ‘‘

๐Ÿ‘‘ LINUX PORT ๐Ÿ‘‘

(the manual keeps this section as a little marker of its Linux/port heritage, so here it is, honored and iconic โœจ)


and that's the whole page, bestie! ๐Ÿ’œ this one's from the Debian crew, dated September 14, 1992 โ€” yes, 1992, a true vintage icon that's still out here mapping addresses for us ๐ŸŽ€ the page itself is RPCBIND(8), part of the System Manager's Manual, and you can find it in section 8 like all the good sysadmin stuff. now go start your RPC services in the right order and slay ๐Ÿ’…โœจ๐Ÿซถ