【发布时间】:2013-10-10 14:56:56
【问题描述】:
我在本地 IP 地址为 192.168.1.6 的机器上运行 OS X Mountain Lion(由网络实用程序和 ifconfig 报告),并且在端口 8000 上运行我想要的本地 (Django) 开发 Web 服务器从在同一台机器上运行来宾操作系统的虚拟机连接。
在主机操作系统上(即,OS X 在机器的金属上运行,地址为 192.168.1.6)我可以通过浏览器导航到 127.0.0.1:8000 连接到我的测试 Web 服务器;或本地主机:8000;但在使用机器的本地 IP 地址时不会。这就是让这更加令人困惑的原因:
- 路由器没有过滤端口;而且,为了确定,我已将其设置为将端口 8000 和 22 显式转发到 192.168.1.6;说到 22 端口,
- 当我启动 SSH 服务时,我可以通过 ssh 192.168.1.6 连接(从命令行)
- 这不是浏览器问题,因为我也无法远程登录到 192.168.1.6 端口 8000(连接被拒绝),而我可以远程登录到 127.0.0.1 端口 8000,我也可以远程登录到192.168.1.6 22端口
- 防火墙已设置为关闭(如系统偏好设置中所述),但为了更加安全,我还设置了 ipfw 规则以允许所有内容通过
ipfw 规则如下:
00100 allow tcp from any to any dst-port 8000
65535 allow ip from any to any
以下是对端口确实被我的测试服务器监听的额外确认:
netstat -an | grep 8000
tcp4 0 0 127.0.0.1.8000 *.* LISTEN
那么这里发生了什么?不知何故,端口 22 的处理方式与端口 8000 不同,但我能想到的每个地方都找不到我找不到的那些差异。为什么我无法使用本机的 ip 地址进入本机的 8000 端口?
【问题讨论】:
-
别忘了 http:// : 127.0.0.1:8000
标签: django macos sockets networking firewall