如何将端口从客户机(虚拟机上的操作系统)转发到主机(我的实际机器)?
Guest - Windows 7
Host - Ubuntu 12.10
在我的主机上,我在端口上运行一个 Web 服务器3000
。
我希望能够通过 URL 从访客身份打开浏览器
http://127.0.0.1:3000
并查看我在主机上运行的 Web 应用程序。(原因是我需要 IE 浏览器来测试一些东西)。
在 Virtual Box 设置中,我选择了 NAT,并在端口转发中写入
Host IP: 127.0.0.1 Port: 3000
Guest IP: 192.168.0.3 Port: 3000
192.168.0.3
我从 ipconfig 获取的客户机 IP 在哪里。
我认为这应该可行,但是现在,一旦我尝试运行 Web 服务器并且 Guest 正在运行,我就会收到该端口已被使用的错误。
实际误差
/home/username/.rbenv/versions/2.0.0-rc2/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/lib/eventmachine.rb:526:in `start_tcp_server': 没有接受器(端口正在使用或需要 root 权限)(RuntimeError)
Web 服务器是 Webrick(开发模式下的默认 Rails 和 Ruby Web 服务器)。
我尝试了不同的主机/客户机 IP 和端口组合,但似乎都不起作用。
答案1
对我来说最简单的方法似乎是使用主机的 IP 地址而不是 127.0.0.1。您可以通过查看默认网关从 ipconfig 获取此信息。
如果你真的想做端口转发,我建议你看看https://stackoverflow.com/a/11535395/2313067。我甚至不确定这是否在环回接口上起作用。