我一直在尝试使我的 Linux 方式现代化,其中之一是放弃 netstat 而使用 ss。我在 ss 手册页中查找了我最喜欢的 netstat 命令行标志,并且很高兴地发现它netstat -lnp
与ss -lnp
.或者说我是这么想的...
# ss -lnp | grep 1812
没有发现任何结果,但是
# netstat -lnp | grep 1812
udp 0 0 0.0.0.0:1812 0.0.0.0:* 11103/radiusd
做。这一事实使特定的故障排除变得不必要地困难。
现在我试图了解应该如何使用 ss 来验证守护进程是否正在侦听。
有人可以解释一下吗?
编辑:
# ss --version
ss utility, iproute2-ss090324
# ss -aunp | grep radi
UNCONN 0 0 *:50482 *:* users:(("radiusd",11103,11))
UNCONN 0 0 127.0.0.1:18120 *:* users:(("radiusd",11103,9))
UNCONN 0 0 *:1812 *:* users:(("radiusd",11103,6))
UNCONN 0 0 *:1813 *:* users:(("radiusd",11103,7))
UNCONN 0 0 *:1814 *:* users:(("radiusd",11103,10))
# ss -lnp | grep radi
#
答案1
最新版本ss
也应该以这种方式显示 UDP 侦听器。您可以使用 限制为 UDP ss -unlp
。
我尝试过最新的 Debian 版本,其中有ss --version
报告ss utility, iproute2-ss140804
并且确实有效。
在 Red Hat 5 系统上则ss utility, iproute2-ss061002
不然。ss -aunp
尽管也显示了连接的端口,但您确实可以在那里获得更多信息。
您还可以尝试:
ss -apu state unconnected 'sport = :1812'