我有一个 Fedora 25 x86_64 独立工作站。有东西正在侦听端口 111(通过 nmap 扫描识别):
$ sudo lsof -i :111
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root 36u IPv4 15170 0t0 TCP *:sunrpc (LISTEN)
systemd 1 root 37u IPv4 15171 0t0 UDP *:sunrpc
systemd 1 root 38u IPv6 15172 0t0 TCP *:sunrpc (LISTEN)
systemd 1 root 39u IPv6 15173 0t0 UDP *:sunrpc
Run Code Online (Sandbox Code Playgroud)
我使用以下命令禁用了端口上的太阳齿轮:
$ sudo systemctl disable rpcbind
$ sudo systemctl disable sunrpc
Failed to disable unit: No such file or directory
Run Code Online (Sandbox Code Playgroud)
重启后端口仍然打开。
看起来 Sun gear 以外的其他东西想要在端口 111 上侦听。或者可能systemd
不尊重我禁用未使用服务的愿望。或者也许是别的什么...
如何确定正在尝试侦听端口的内容,以及如何禁用它?
从下面:
$ sudo systemctl -a | grep -E "rpc|port"
var-lib-nfs-rpc_pipefs.mount loaded active mounted RPC Pipe File System
abrtd.service loaded active running ABRT Automated Bug Reporting Tool
auth-rpcgss-module.service loaded inactive dead Kernel Module supporting RPCSEC_GSS
fedora-import-state.service loaded active exited Import network configuration from initramfs
fedora-readonly.service loaded active exited Configure read-only root support
rpc-gssd.service loaded inactive dead RPC security service for NFS client and server
rpc-statd-notify.service loaded inactive dead Notify NFS peers of a restart
rpc-statd.service loaded inactive dead NFS status monitor for NFSv2/3 locking.
? rpc-svcgssd.service not-found inactive dead rpc-svcgssd.service
rpcbind.service loaded inactive dead RPC Bind
rpcbind.socket loaded active listening RPCbind Server Activation Socket
rpc_pipefs.target loaded active active rpc_pipefs.target
rpcbind.target loaded active active RPC Port Mapper
Run Code Online (Sandbox Code Playgroud)
tal*_*zin 11
当你继续运行时sudo systemctl disable rpcbind
,Fedora 25
我认为有一个警告:
Warning: Stopping rpcbind.service, but it can still be activated by:
rpcbind.socket
Run Code Online (Sandbox Code Playgroud)
因此,您可以尝试以下操作:
sudo systemctl stop rpcbind.socket
sudo systemctl disable rpcbind.socket
Run Code Online (Sandbox Code Playgroud)
这是套接字激活:)。你的怀疑是对的。
您需要禁用rpcbind.socket
. 禁用rpcbind.service
- 这是systemctl disable rpcbind
假设 - 没有效果。
此外,disable
这里只会影响启动时发生的事情。所以,如果你想看到的立即改变,你也想运行systemctl stop rpcbind.socket
。
编辑:这个问题看起来与我非常相似。Jeff Schaller 指出您可以使用命令systemctl list-sockets
, 查看为其systemd
实现套接字激活的端口和服务。
我回去看了看Fedora-Workstation-Live-x86_64-25-1.3.iso
。
rpcbind.service 的状态显示为indirect; vendor preset; disabled
。(也Active: inactive (dead)
)。所以很明显再次禁用(或停止)它不会改变任何东西。
我想indirect
这里是一个提示,以寻找激活此单元的其他单元(包括但不限于套接字单元)。一旦插座单元也停止,它就会从indirect
变为disabled
。
奇怪的是,插座单元显示为enabled; vendor preset: disabled
。这意味着在 Fedora 25 镜像中启用了 rpcbind.socket,但它没有被/lib/systemd/system-preset/80-workstation.preset
或启用90-default.preset
。这似乎违反了https://fedoraproject.org/wiki/Packaging:DefaultServices 上的(当前)政策,该政策链接到 90-default.preset -
如果默认情况下应启用该服务,则必须将其添加到分发预设文件之一。
这已经在某个时候解决了。rpcbind.socket
中不再启用Fedora-Workstation-Live-x86_64-28-1.1.iso
。
(这并不意味着在从 Fedora 25 磁盘安装的系统上可以从网络自动访问 rpcbind / 端口 111。安装还包括不允许端口 111的防火墙)
归档时间: |
|
查看次数: |
5760 次 |
最近记录: |