我最近开始在我的基于 OS X 的计算机上使用 Squid 缓存服务器。我很好奇是否有一种方法可以使用netstat
或其他标准 unix 命令来判断 Squid 正在哪个端口上运行。
也就是说,我知道 Squid 默认在 port 上运行3128
,但是如果我不知道这个或者有人通过我无法访问或找到的配置文件启动 Squid 监听不同的端口,是否有办法确定正在监听哪个端口。
netstat
一些基本的谷歌搜索为运行 Linux 的机器找到了以下命令
$ netstat -plant
但在 OS X 上运行会引发错误
$ netstat -plant
netstat: lant: unknown or uninstrumented protocol
我认为这是 BSD/Linux 的一些差异,但由于不太了解我的网络,我无法弄清楚正确的 BSD 调用是什么。
操作系统 10.10(如果有的话)。
答案1
使用 -i 列出打开的文件应该会显示正在使用的端口
lsof -i
如果输出太多
lsof -i | grep squid
适用于 Linux 和 OS X
答案2
在 BSD 中netstat
-p
是协议,而它是程序在netstat
net-tools 中,BSD 版本似乎没有等效项。man
在这些情况下,他几乎总是你的朋友。
BSD 有sockstat
它可以让你得到你想要的东西,但这似乎在 OS XI 上没有。
正如已经提到的,lsof
这可能是获得您想要的结果的最跨平台的方式。添加-n
以阻止端口号被转换为名称并让您感到困惑原子吸收光谱法你期待的是 3128。