![为什么只在 netstat 的特定格式中列出端口?](https://linux22.com/image/579793/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%8F%AA%E5%9C%A8%20netstat%20%E7%9A%84%E7%89%B9%E5%AE%9A%E6%A0%BC%E5%BC%8F%E4%B8%AD%E5%88%97%E5%87%BA%E7%AB%AF%E5%8F%A3%EF%BC%9F.png)
我有 Tomcat,我正在尝试绑定到 2 个特定端口(使用自定义连接器)。例如 portA
和 port B
。
问题:
当我这样做netstat -a |grep A
时不是查看列出的端口。
如果我这样做,我会看到列出的netstat -antp
两个端口。 A
B
这些命令之间有什么区别?
答案1
选项-n
就是区别所在。如果没有它,netstat
会将众所周知的端口(例如 3306 和 80)转换为诸如 mysql 和 http 之类的名称。
如果A
是知名端口而B
不是,则第一个命令只会列出您的一个端口。
如果某个端口是知名的,则应该在中列出/etc/services
。
答案2
通过指定,-n
您可以告诉 netstat 使用端口号而不是服务名称。如果您查看的输出,netstat -a
您将看到端口号是人类可读的服务名称。这些是从 映射的/etc/services
,因此如果您正在监听端口 80,您将看到*:http
或hostname:http
,如果您正在监听端口 8080,您将看到*:webcache
或hostname:webcache
。
来自 Fedora 16 上的 netstat 手册页:
--numeric , -n
Show numerical addresses instead of trying to determine symbolic host,
port or user names.