我可以从浏览器“http://localhost:8080/”访问,但不能访问“my_private_ip:8080/”
Posted
技术标签:
【中文标题】我可以从浏览器“http://localhost:8080/”访问,但不能访问“my_private_ip:8080/”【英文标题】:I can reach from browser "http://localhost:8080/" but not "my_private_ip:8080/" 【发布时间】:2016-09-02 12:05:15 【问题描述】:我在我的作业局域网中,我的 Macintosh (Mac OS X El Capitan 10.11.4) 的私有 IP 是 192.168.1.9,我的防火墙是关闭的。 我在“http://localhost:8080/”上运行了一个 wildfly 10 网络项目,直到我从 localhost 访问该项目一切正常,当我尝试从 http://192.168.1.9:8080/ 访问它时,谷歌浏览器告诉我:
This site can’t be reached
192.168.1.9 refused to connect.
Search Google for 192 168 8080
ERR_CONNECTION_REFUSED
我需要从外部移动设备访问它,但如果我什至无法从我自己的计算机从计算机本身的 IP 访问它,则很难将其传递给移动设备...
奇怪的是我也有 MAMP Apache 端口在端口 80 上侦听,实际上“http://localhost/”和“http://192.168.1.9/”都工作得很好(向我展示了默认的 MAMP“www/index.php” )。
【问题讨论】:
您的 Wildfly 服务器是侦听 ip 192.168.1.9 端口 8080 还是仅侦听 localhost 端口 8080。试试netstat -ltn
(我希望语法正确,我从未使用过 MAC。;-))
我执行了命令,没有找到任何“192.168.1.9.8080”,这是什么意思吗?
正如我在下面写的那样,我用standalone.sh -b 192.168.1.9
解决了,但我不得不从命令行运行它...我仍在尝试从 Eclipse 中解决它,因为它仍然无法莫名其妙地工作。
当然,这意味着什么。正如您自己发现的那样(恭喜):如果服务器不侦听特定地址,则浏览器无法连接到该地址。并且localhost
与绑定到网络适配器的网络地址不同。此外,监听 localhost 比每个防火墙都好,因为无法从外部网络访问它。 localhost 分配给所谓的环回地址,该地址仅可用于计算机内部的进程。请将您的答案标记为已接受。我会赞成的。
如果您在standalone.xml 配置文件中更改了IP 地址,那么它也应该适用于eclipse。 (如果您将正确的standalone.xml 分配给您在eclipse 中使用的服务器adpater 配置文件,那当然)。如果它不起作用,即使它被正确分配,也可能为您的运行配置文件配置了一个应用程序参数(-b ...)。不过不好意思,我不知道这个在eclipse哪里可以配置。
【参考方案1】:
从 Eclipse 配置
如果您想从 Eclipse 设置 IP,您应该按照以下步骤操作(更改文件 Standalone.xml 中的 IP 在 Eclipse 中不起作用,因为设置了 -b 选项,请参见下文...)
这是在eclipse上配置它的步骤:
-
单击您的 Wildfly 服务器
点击
Open Launch Configuration
取消选中Always update arguments related to the runtime
,然后使用your_private_ip 更改-b
选项(如果删除选项-b localhost
,您可以直接从standalone.xml
文件配置它,请参阅下面的配置部分)
或者简单地说,而不是 2.
解决方案,选中框 Listen on all interfaces to allow remote web connections
从standalone.xml
配置
另一种方法是在 standalone.xml
接口部分进行配置。
变化:
<interfaces>
<interface name="management">
<inet-address value="127.0.0.1"/>
</interface>
<interface name="public">
<inet-address value="127.0.0.1"/>
</interface>
</interfaces>
到:
<interfaces>
<interface name="management">
<!-- Use the IPv4 wildcard address -->
<any-ipv4-address/>
</interface>
<interface name="public">
<!-- Use the IPv4 wildcard address -->
<any-ipv4-address/>
</interface>
</interfaces>
或者简单地将 127.0.0.1 替换为您的私有 IP
从命令行配置(从命令行运行服务器)
另一种选择是直接从命令行运行它。 默认 jboss/wildfly 绑定到 localhost,如果你想改变这个,你可以执行:
standalone.sh -b 0.0.0.0
监听机器的所有 IP 地址(如果多宿主)
或者如果你想在你的 ip 上收听:
standalone.sh -b your_private_ip
参考:
WildFly - Interfaces and ports WildFly - Command line parameters【讨论】:
为了帮助人们找到您的答案,最好将其标记为已接受的答案。这是一个清晰、正确和易于理解的文本,可以帮助其他人解决同样的问题。 当然,但是 *** 让您等待几天,我认为这是因为 *** 希望其他人离开他们可能的解决方案。我今天不能接受。 好吧,我不知道!对不起,下次我会更有耐心。 ;-) 在我给别人好的建议之前,也许我应该自己问至少一个问题,看看它是如何工作的。 ;-) 谢谢! 啊,别担心,我认为他们最近在 *** 中更改了此策略。再见,再次感谢!以上是关于我可以从浏览器“http://localhost:8080/”访问,但不能访问“my_private_ip:8080/”的主要内容,如果未能解决你的问题,请参考以下文章
http://localhost:8080打开tomcat主页的原理是啥