我正尝试在本地网络上公开一个在 Linux 上运行的非常简单的 Ruby 服务器。
server = TCPServer.new(hostname, port)
我的 Linux VM 在 NAT 虚拟网络上运行192.168.73.X
。我使用的端口是1564
,因此我使用 VMware 中的“虚拟网络编辑器”对其进行了转发。
然后我在我的 ruby 代码中使用它192.168.73.133
。hostname
这非常有效,如果我尝试从主机连接到我的服务器(包括使用我的主机的 IP)192.168.1.118
。
问题是我无法从网络上的其他计算机访问它。
我猜主机名需要更改,但我不知道该放什么(除了主机的 IP,但这样做时 ruby 会崩溃)。我还读到我需要在我的 Linux 中创建一条路由,但我不知道该放哪一条...
所以我认为我的问题是:为了能够将主机的 IP 地址放入主机名中,我应该在我的 Linux 中添加什么路由?
感谢您的帮助。
答案1
好吧,我对自己很生气...这是一个简单的 Windows 防火墙问题(NAT 配置良好,我不需要添加路由)。
要禁用防火墙:
- 开始
- 控制面板(小图标)
- Windows 防火墙
- 打开或关闭 Windows 防火墙(左栏)
感谢大家的帮助。
答案2
如果您的虚拟机已进行 NAT,则您必须连接到主机。主机会将流量重定向到客户机。无需路由、无需防火墙设置,仅此而已。您有一个 vmare 守护程序可以完成这项工作。
如果连接失败,这是因为您的主机没有重定向流量。
查看netstat -anlptu
vmvare 守护程序是否绑定到 1564 端口。如果没有,则说明您的 vmware NAT 配置存在错误。
SpacemanSpiff 让我想到了另一个问题:如果你的客用电脑有多个网卡,那么你能存在路由问题。不是在主机内部,而是在客户机内部。
确保您的客户机可以访问本地网络上的计算机。使用 traceroute。
要么将默认路由设置为 NATed NIC,要么通过 NATed NIC 添加到本地网络的路由。