我正在使用OSX Mountain Lion 10.8.3,并且刚重新启动了Mac。
我想启动一个服务(例如端口80上的Apache),但是端口80上已经发生了一些事情:
telnet localhost 80
Trying ::1...
Connected to localhost.
Escape character is '^]'.
等等,我听到您说,您可以使用lsof或netstat找到它。除了那里什么都没有
netstat -an | grep LISTEN | grep '\.80'
*comes back blank*
lsof -i :80 | grep LISTEN
*comes back blank
因此,从我对UNIX系统的了解中,我认为这一定是一个数据包转发规则吗?也就是说,数据包正从入站端口80转发到其他正在侦听该服务的端口。
ipfw show
65535 0 0 allow ip from any to any
嗯,那里没什么异常
pfctl -s nat
No ALTQ support in kernel
ALTQ related functions disabled
那里没什么异常
我的问题是,如何显示任何数据包转发规则...在Linux上,我可能只执行iptables -L -t NAT或iptables -L。或者,任何OSX专家都可以帮助我诊断此问题吗?
lsof
您使用的grep将恢复为空白;端口号映射到/etc/services
名称。尝试lsof -i | grep http
...
-i :port
仅当您使用grep时,如果使用格式,/ etc / services映射就不成问题。问题是lsof
需要root privs才能查看其他用户的进程,所以您应该使用sudo lsof -i :80
(我会尝试在没有的情况下使用grep
,只是为了确保...)
lsof -i :80
在该Telnet会话中仍保持连接状态?除了尝试http:// localhost /之外,也许在该Telnet提示符下键入某些内容会显示出某些内容...?(再次,我知道:即使您以这种方式解决问题