LINUX.ORG.RU
ФорумAdmin

Как убрать rpcbind.socket с INADDR_ANY?

 


0

1

Привет!

Раньше убирал прослушивание со всех на только избранный адрес по -h IP. Работало.
Сейчас смотрю и вижу, что не работает. Какого? ЧЯДНТ?

ps axuw|grep rpc

root 313 0.0 0.0 0 0 ? I< мая13 0:00 [rpciod]
_rpc 72049 0.0 0.2 7900 4140 ? Ss 13:33 0:00 /sbin/rpcbind -f -h 127.0.0.1 -h 192.168.x.y
root 72061 0.0 0.0 6264 636 pts/0 S+ 13:34 0:00 grep rpc

ss -anlp|grep udp|grep 111

udp UNCONN 0 0 0.0.0.0:111 0.0.0.0:* users: ((«rpcbind»,pid=72049,fd=5),(«systemd»,pid=1,fd=42))
udp UNCONN 0 0 [::]:111 [::]:* users: ((«rpcbind»,pid=72049,fd=7),(«systemd»,pid=1,fd=55))

systemctl stop rpcbind.service

Warning: Stopping rpcbind.service, but it can still be activated by:
rpcbind.socket

ss -anlp|grep udp|grep 111

udp UNCONN 0 0 0.0.0.0:111 0.0.0.0:* users:((«systemd»,pid=1,fd=42))
udp UNCONN 0 0 [::]:111 [::]:* users:((«systemd»,pid=1,fd=55))

★★★★★

Как видно по выхлопу ss, на 0.0.0.0 слушает не сам rpcbind, а systemd, который в случае подключения запускает rpcbind и передаёт ему сокет.

Тебе нужно убрать ненужные адреса из rpcbind.socket, помещая измененную версию подлинкованного юнит-файла в /etc/systemd/system/rpcbind.socket. Также можно указать лишь те опции, которые надо изменить, в /etc/systemd/system/rpcbind.socket.d/ (насколько мне известно, придётся писать некрасиво - сначала ListenStream=, чтоб его обнулить, и затем ListenStream=нужный айпишник).

Ну или остановить и задисейблить именно rpcbind.socket, не .service. Тогда слушать будет только rpcbind и только на тех адресах, которые ты указал через -h.

token_polyak ★★★★★
()
Последнее исправление: token_polyak (всего исправлений: 5)
Ответ на: комментарий от token_polyak

спасибо, да, это оно.

совет про disable не помог, rpcbind всё равно дёргает .socket. но корневая причина понятна, спасибо! буду разбираться дальше, теперь ясно куда.

mumpster ★★★★★
() автор топика