我的主机系统是启用了 Hyper-V 的 Win 11 Pro,也使用“增强会话模式”。
我手动安装了几个 Ubuntu 版本(我下载了 ISO 并运行安装),但它们总是有问题。所以这次我使用了 Quick Create 和最新的 Ubuntu 长期支持版本(22.04)。我希望它能更好地工作,因为它是经过精心策划的。
当我从 Hyper-V 管理器启动它时,它连接得很好。它使用 XRDP 协议和 Xorg 会话。哇!
现在,在我手动安装的所有 Ubuntu VM 上,从 Hyper-V 管理器启动时我从未见过该 XRDP 屏幕。我仅有的当我尝试从远程桌面连接时,我看不到它。所以我假设这次它比平时工作得更好。
但是当我尝试从远程桌面连接时,出现错误“远程桌面无法连接到远程计算机”。
我拼命在 Google 上搜索,尝试了很多看似毫无意义的事情,并证明那些事情毫无意义。到目前为止,我所做的一切都没有起到作用。
对于远程桌面的“计算机”字段,我尝试使用实际的计算机名称、IPV4 地址和 IPV6 地址。但都不起作用。
但是...我可以从主机 ping 到客户机,也可以从客户机 ping 到主机。
XRDP 显然安装在客户 Ubuntu 系统中。
我不知道是什么原因导致它无法连接。
答案1
我有一台装有 VMware 的计算机,另一台装有 Hyper-V。Hyper-V 系统同时装有 Ubuntu 和 Kali Guest,我可以使用 RDP 从第一台计算机连接到它们。
XRDP 显然安装在客户 Ubuntu 系统中。
(1)那很好(有必要)。
现在确保 XRDP 已启用。sudo systemctl enable xrdp
然后确保 XRDP 已启动。sudo systemctl start xrdp
您可能希望检查 XRDP 状态以确保它正在运行。
(2)给 Hyper-V 中的 Ubuntu Guest 提供一个外部交换机(大多数 VM 应用程序中的桥接网络)是个好主意(最好)。这样另一台计算机上的 RDP 就可以轻松找到 Ubuntu Guest。
关闭 Guest,在 Hyper-V 中创建一个新的外部交换机。转到 Hyper-V 中的 Guest 设置并选择外部交换机。
启动客户机并确保外部交换机正常工作。
(3)重新启动 Guest,启动 XRDP 服务(每次 Linux 重新启动时都需要重新启动。
现在注销 Linux 但保持其运行。
转到另一台机器并进入 RDP。应该可以工作。上述步骤对我来说非常完美。
答案2
这似乎对我有用......
首先,我必须在 Hyper-V 设置中禁用“允许增强会话模式”。这实际上可能是唯一需要做的事情,但下一步还算不错,所以...
我编辑了 /etc/xrdp/xrdp.ini,使 PORT 具有多个值:
port=vsock://-1:3389 tcp://:3389
这样我就可以同时通过 RDP 和 Hyper-V 管理器进行连接!我认为你可以登录分离帐户,但尝试两次登录同一个帐户将会失败。
得到这个建议的是https://github.com/neutrinolabs/xrdp/issues/1260。
我对这个解决方法不太满意,但也许这只是悲观主义。如果有人有更好的可行建议,我会很乐意给予他们赞扬。
答案3
在(同样)“... 拼命在 Google 上搜索...”并尝试了大量方法之后,我发现 Ubuntu 22.04 现在对 Microsoft RDP 具有原生支持。
我所要做的就是进入 Ubuntu vm 的“设置”,在“共享”下打开“远程桌面”并启用“远程控制”。太棒了!终于成功了!
本文图片:Ubuntu 22.04 终于支持通过 MS RDP 协议进行远程桌面控制 | UbuntuHandbook
[现在,我只是不确定我尝试了所有其他的东西会破坏什么 ;)]
更新:不确定为什么要投反对票;但是...在创建新的虚拟机并按照只需这些步骤,这没有用——所以我尝试的许多其他方法之一可能已经解决了这个问题。我有一些想法,所以一旦我找到“关键”,我就会更新这个答案……(或者如果我很快就找不到关键,就删除它)