无法在家庭路由器上为ubuntu virtualbox来宾目标设置端口转发



我有一台运行VirtualBox的Windows 10主机,Ubuntu客户有一个桥接适配器@1192.168.1.5。此外,我正在Ubuntu中运行一个docker容器,其端口绑定到8080端口。我可以在我的网络中(例如,从我的移动和桌面主机)打192.168.1.5:8080。

然而,我无法在我的mi424wr路由器上获得端口转发,以转发到ubuntu guest@1192.168.1.5。我可以让端口转发在我的Windows 10机器上工作。

我的路由器可能不喜欢ubuntu来宾虚拟机吗?

编辑时间:以下是我从外部ip地址尝试时路由器安全日志中的条目:

端口转发规则:56123->192.168.1.5:8080

  1. 已打开连接:TCP 192.168.1.5:8080<-->myIp:56123[74.96.281.140:1024]CLOSED/CLOSED local_dev NAPT传入静态UNINIT UNSECURED
  2. 已打开连接:TCP 192.168.1.5:8080<-->myIp:56123[myIp:1025]CLOSED/CLOSED local_dev NAPT传入静态UNINIT UNSECURED
  3. 挂接的通配符连接:TCP 192.168.1.5:8080<-->myIp:56123[myIp:1024]CLOSED/SYN_SENT local_dev NAPT Incoming STATIC BNAPT UNSECURED
  4. 挂接的通配符连接:TCP 192.168.1.5:8080<-->myIp:56123[myIp:1025]CLOSED/SYN_SENT local_dev NAPT Incoming STATIC BNAPT UNSECURED
  5. 已打开连接:TCP 192.168.1.5:8080<-->myIp:56123[74.96.28.140:1026]CLOSED/CLOSED local_dev NAPT传入静态UNINIT UNSECURED
  6. 已打开连接:TCP 192.168.1.5:8080<-->myIp:56123[myIp:1026]CLOSED/CLOSED local_dev NAPT传入静态UNINIT UNSECURED
  7. 挂接的通配符连接:TCP 192.168.1.5:8080<-->myIp:56123[myIp:1026]CLOSED/SYN_SENT local_dev NAPT Incoming STATIC BNAPT UNSECURED

我的实际ip地址被替换为"myIp">

此外,我还测试了一个托管静态文件的http服务器npm包。它在我的局域网内工作,但端口转发也失败了,这应该会否定Docker是罪魁祸首。

这可能是因为Ubuntu虚拟机、Docker容器或Windows防火墙上的防火墙设置。也许它们设置为允许192.168.*.*私有地址,但不允许公共IP地址
参见:UFW,iptables、Docker和iptables,Windows防火墙

我会逐一检查每个防火墙配置,并测试您是否能在每次更改后通过。请注意,UFW只是iptables的前端,可以启用也可以不启用

如果这些似乎都没有帮助,也许你会更成功地在NAT模式下运行Ubuntu虚拟机,除了在路由器上,还可以通过虚拟盒设置端口转发
请参阅:虚拟机箱网络(特别是6.3.1)。

最新更新