You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

无需开放网络的Hyper-V与Ubuntu 22.04虚拟机安全文件共享及复制粘贴实现方案咨询

无需开放网络的Hyper-V与Ubuntu 22.04虚拟机安全文件共享及复制粘贴实现方案咨询

我之前查了不少用XRDP在Ubuntu桌面开启远程桌面服务来实现Hyper-V“增强会话模式”的教程,但发现这个方案有个大问题——虚拟机相当于向同一网络内所有设备开放了远程桌面权限,完全不安全,风险很高。对比VMware Workstation,人家不用VNC或远程桌面就能实现文件夹共享,我现在想在Ubuntu 22.04虚拟机里实现复制粘贴功能,同时像VMware那样安全地和Hyper-V主机共享文件夹,而且不能把虚拟机暴露在网络里。有没有足够安全的解决方案?


安全解决方案推荐

1. 调整增强会话模式配置(最省心,零外部暴露)

其实你不用放弃增强会话模式,只要改个配置就能把XRDP的监听限制在本地,完全不对外暴露:

  • 先给Ubuntu装全Hyper-V相关工具:sudo apt install linux-tools-virtual linux-cloud-tools-virtual
  • 编辑XRDP的配置文件:sudo nano /etc/xrdp/xrdp.ini,找到port=3389这一行,改成port=127.0.0.1:3389,这样XRDP只监听虚拟机本地的回环地址,外部设备根本连不上
  • 重启XRDP服务生效:sudo systemctl restart xrdp
  • 之后在Hyper-V控制台里连接虚拟机时,选择“增强会话”,不仅能正常用复制粘贴,还能直接挂载主机的文件夹——这个通信是走Hyper-V内部的专用通道,完全不经过外部网络,安全得很

2. 内部虚拟交换机+Samba共享(更灵活的文件管理)

如果不想依赖增强会话模式,用Hyper-V的内部网络配合Samba是个不错的选择:

  • 打开Hyper-V管理器,新建一个内部虚拟交换机(这种交换机只允许主机和虚拟机之间通信,不连接外部网络)
  • 给Ubuntu虚拟机分配这个内部交换机的网卡,手动设置静态IP(比如192.168.100.2/24),然后在主机的“网络连接”里找到对应的虚拟网卡,设置同网段的静态IP(比如192.168.100.1/24
  • 在Ubuntu里安装Samba:sudo apt install samba
  • 创建要共享的目录并设置权限:mkdir ~/host-shared && chmod 755 ~/host-shared
  • 编辑Samba配置文件:sudo nano /etc/samba/smb.conf,在文件末尾添加以下内容(记得替换成你的用户名):
    [HostShared]
    path = /home/你的用户名/host-shared
    valid users = 你的用户名
    read only = no
    browsable = yes
    public = no
    
  • 设置Samba用户密码(要和Ubuntu用户名对应):sudo smbpasswd -a 你的用户名
  • 重启Samba服务:sudo systemctl restart smbd nmbd
  • 之后在主机的文件资源管理器地址栏输入\\192.168.100.2\HostShared,输入刚才设置的密码就能访问共享文件夹了,复制粘贴可以通过这个目录中转,整个过程都在封闭的内部网络里,绝对安全

3. 仅启用Guest Services(单纯需要复制粘贴)

如果只是需要主机和虚拟机之间的文本复制粘贴,不用搞复杂的共享,直接启用Hyper-V的Guest Services就行:

  • 在Hyper-V管理器的虚拟机设置里,找到“集成服务”,勾选“Guest Services”选项
  • 在Ubuntu里确保对应的服务在运行:sudo systemctl enable --now hv-kvp-daemon hv-vss-daemon hv-fcopy-daemon
  • 之后用Hyper-V控制台连接虚拟机时,就能直接在主机和虚拟机之间复制粘贴文本了,完全不需要开放任何网络端口,也不会暴露虚拟机

备注:内容来源于stack exchange,提问作者stackbiz

火山引擎 最新活动