无法在OSX上连接本地IP地址

3
我正在尝试连接运行在我的Mac OSX 1.6上的Web服务器。我能够在本地使用http://127.0.0.1:8888/myapp进行连接,但当我试图使用我的机器的本地IP地址(http://192.168.1.15:8888/myapp IP如下所示)从同一台机器(或网络上的另一台机器)进行连接时,我无法连接。我可以ping通局域网IP地址。
我已尝试为端口8888向路由器添加IP转发,但没有帮助。 我已检查过OSX防火墙已经禁用。
有人能建议还有什么其他东西阻止了连接吗?
以下是运行ifconfig时的结果:
~ :ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    inet6 ::1 prefixlen 128 
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
    inet 127.0.0.1 netmask 0xff000000 
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether 00:1f:5b:e8:16:4d 
    media: autoselect status: inactive
    supported media: autoselect 10baseT/UTP <half-duplex> 10baseT/UTP <full-duplex> 10baseT/UTP <full-duplex,hw-loopback> 10baseT/UTP <full-duplex,flow-control> 100baseTX <half-duplex> 100baseTX <full-duplex> 100baseTX <full-duplex,hw-loopback> 100baseTX <full-duplex,flow-control> 1000baseT <full-duplex> 1000baseT <full-duplex,hw-loopback> 1000baseT <full-duplex,flow-control> none
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet6 fe80::21e:c2ff:febf:4809%en1 prefixlen 64 scopeid 0x5 
    inet 192.168.1.15 netmask 0xffffff00 broadcast 192.168.1.255
    ether 00:1e:c2:bf:48:09 
    media: autoselect status: active
    supported media: autoselect
fw0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 4078
    lladdr 00:1f:5b:ff:fe:2b:b3:3c 
    media: autoselect <full-duplex> status: inactive
    supported media: autoselect <full-duplex>
en5: flags=8822<BROADCAST,SMART,SIMPLEX,MULTICAST> mtu 1500
    ether 00:1e:c2:8e:0f:45 
    media: autoselect status: inactive
    supported media: none autoselect 10baseT/UTP <half-duplex>
en2: flags=8922<BROADCAST,SMART,PROMISC,SIMPLEX,MULTICAST> mtu 1500
    ether 00:1c:42:00:00:00 
    media: autoselect status: inactive
    supported media: autoselect
en3: flags=8922<BROADCAST,SMART,PROMISC,SIMPLEX,MULTICAST> mtu 1500
    ether 00:1c:42:00:00:01 
    media: autoselect status: inactive
    supported media: autoselect

尝试关闭OS X防火墙。 - Paul R
4个回答

2
您的Web服务器可能默认绑定到回环接口。应用程序可以“绑定”到特定接口 - 如果它仅侦听回环接口,则您将能够通过127.x.x.x IP连接,但无法连接外部IP。您可以查看“网络实用程序”-> Netstat ->显示所有套接字连接状态,这将显示所有打开的套接字。进一步调试需要来自此处的相关行(可能是端口8888上的行)以及您运行的Web服务器类型...

谢谢Steven,我运行了netstat,但没有看到任何有关端口8888的提及。 运行“netstat -a | grep 8888”没有返回任何内容。 我的服务器(jetty)仍在本地运行并响应。 - Alex Worden

1

这对我来说一直都没问题,突然间就停止工作了。我不认为在运行/调试配置中更改了任何内容,但可能是我做了。

无论如何,答案是将--address=0.0.0.0参数添加到运行/调试配置中。要执行此操作:

  1. 右键单击您的项目。
  2. 选择“Run As...” -> “Run Configurations”
  3. 确保在“Run Configurations”对话框中选择了您的项目,并选择“Arguments”选项卡。
  4. 插入参数:--address=0.0.0.0

正如我所说,这对我来说一直都能工作,我记得之前没有设置过这个参数。无论如何,我已经添加了它,现在一切都很好。

TR


0

除非这个问题与编程有关,否则可能应该在ServerFault或SuperUser上发布。

无论如何,如果您正在Mac OS上编写应用程序,可能需要指定应用程序正在侦听的确切接口。


嗨 - 我并不是在尝试配置服务器 - 我正在本地开发并尝试连接到托管我的GWT应用程序的Jetty应用服务器。我不确定您所说的“指定确切接口”的含义。您是否指协议? - Alex Worden
你好, 不,很可能你有多个接口,例如以太网接口、无线局域网接口,当然也包括环回接口。(fw0、en0、en1、lo0) 你可能需要非常明确地指定应用程序监听哪些接口上的传入请求。 - TimothyP

-1

顺便说一下 - 我认为这是用户错误。我想我可能在Firefox插件中以托管模式运行了GWT。没有运行或监听端口8888的Web服务器,这就是为什么它没有显示出来的原因!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接