无需开放网络的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




