You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从非宿主机linux@home访问数据中心的VirtualBox Windows 7虚拟机

实现linux@home访问数据中心Windows虚拟机服务的配置方案

好的,我来帮你梳理这个场景下的配置步骤,核心是通过端口转发打通三层网络的访问路径——从家里的Linux主机,到数据中心的Linux物理机,再到上面的Windows虚拟机。具体分两步走:

第一步:在VirtualBox中配置NAT端口转发(把Windows虚拟机的服务映射到物理机)

因为Windows虚拟机用的是NAT网络,默认只能主动向外访问,外部无法直接连接它。所以首先要把虚拟机上的服务端口映射到宿主机(linuxHost@datacenter)的某个端口:

  1. 先确认Windows虚拟机的内网IP:

    • 登录windowsGuest,打开cmd执行 ipconfig,找到NAT网卡的IPv4地址(通常是10.0.2.x段,比如10.0.2.15)
    • 或者在linuxHost上用VirtualBox命令行查询:
      VBoxManage guestproperty get windowsGuest "/VirtualBox/GuestInfo/Net/0/V4/IP"
      
  2. 配置VirtualBox端口转发规则:

    • 打开VirtualBox管理器,找到windowsGuest虚拟机,右键选择「设置」→「网络」→「网卡1」(确保是NAT模式)→「高级」→「端口转发」
    • 点击「添加」按钮,填写规则:
      • 名称:随便填(比如win-guest-service)
      • 协议:选择服务对应的协议(比如TCP,大部分服务用这个)
      • 主机IP:留空(表示监听linuxHost的所有网卡),如果只想让特定网卡访问可以填对应IP
      • 主机端口:选一个linuxHost上未被占用的端口(比如9090)
      • 子系统IP:填刚才查到的Windows虚拟机内网IP(比如10.0.2.15)
      • 子系统端口:填windowsGuest上服务监听的端口(比如服务用的8080)
    • 保存设置,规则通常会即时生效,无需重启虚拟机

第二步:让家里的linux@home能访问到数据中心Linux物理机的转发端口

现在Windows的服务已经映射到linuxHost的9090端口了,接下来分两种场景配置:

场景1:linuxHost@datacenter有公网IP

直接通过公网IP访问即可,但要确保linuxHost的防火墙允许该端口的入站流量:

  • 如果用firewalld:
    # 临时添加端口规则
    firewall-cmd --add-port=9090/tcp
    # 永久生效(重启防火墙后依然有效)
    firewall-cmd --add-port=9090/tcp --permanent
    # 重载防火墙规则
    firewall-cmd --reload
    
  • 如果用iptables:
    # 添加入站允许规则
    iptables -A INPUT -p tcp --dport 9090 -j ACCEPT
    # 持久化规则(不同发行版工具不同,比如用iptables-save)
    iptables-save > /etc/sysconfig/iptables
    

配置完成后,在linux@home上直接访问 linuxHost的公网IP:9090 就能连接到windowsGuest的服务了。

场景2:linuxHost@datacenter没有公网IP,或想更安全地访问

用SSH隧道做端口转发,避免直接暴露端口到公网:
在linux@home的终端执行以下命令:

# 将本地8888端口转发到linuxHost的9090端口
ssh -L 8888:localhost:9090 linuxHost@datacenter
  • 执行后会要求输入linuxHost的登录密码,验证通过后隧道就建立了
  • 此时在linux@home上访问 localhost:8888,就相当于直接连接windowsGuest的服务端口了
  • 如果需要后台运行隧道,可以加-fN参数:
    ssh -fN -L 8888:localhost:9090 linuxHost@datacenter
    

额外注意事项

  • 确保windowsGuest的Windows防火墙允许服务端口的入站连接:打开Windows防火墙→高级设置→入站规则→新建规则,允许对应端口的TCP连接
  • 检查linuxHost的转发端口是否被占用:用ss -tulpn | grep 9090查看,如果有其他服务占用,换一个未被使用的端口
  • 如果VirtualBox端口转发的「主机IP」填了特定IP,要确保linux@home能访问到这个IP(比如内网IP的话,需要linux@home和linuxHost在同一内网,或者通过VPN连通)

内容的提问来源于stack exchange,提问作者aTom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:16:51