我正在尝试使用 Remmina 从运行 Ubuntu 19.10 的家用电脑设置远程桌面到办公室的 Windows 10 机器。我的家用路由器是 Synology RT2600ac。我的公司使用 Fortinet SSL-VPN,它没有官方的 Linux 客户端(至少不是公开可用的),但经过一番努力,我能够在命令行和 Gnome 网络管理器上使用 openfortivpn 连接到它。
有效的方法:
- 使用装有官方 Forticlient VPN 应用程序和内置 Windows 远程桌面工具的 Windows 10 笔记本电脑从路由器后面连接到远程 PC
- 使用安装了官方 Forticlient VPN 应用程序和 Microsoft RD Client 应用程序的 Android 智能手机从路由器后面连接到远程 PC
- 断开路由器,直接将我的 Ubuntu PC 插入电缆调制解调器,然后使用 openfortivpn 和 Remmina 连接到远程 PC
不起作用的是:
- 使用装有 openfortivpn 和 Remmina 的 Ubuntu PC 从路由器后面连接到远程 PC。Remmina 将报告无法建立连接。我目前手边没有错误日志,我会在可以的时候修改这个问题,但我记得出现了“管道断裂”一词。
鉴于只有 Ubuntu PC 无法从路由器后面连接,并且即使连接到 VPN,本地网络上的设备在 Nautilus 中仍然可见,我推测本地路由器和工作中的远程路由器分配 IP 地址的方式存在一些冲突。这可能是因为它们都使用 192.xxx 范围。
所以我的问题是:如何在不绕过路由器的情况下在 Ubuntu 上获得远程桌面连接?例如,Ubuntu 网络堆栈的更改、路由器设置等。理想情况下,我希望只有 Remmina 访问 VPN 连接,而其他一切都可以正常访问互联网,但我可以忍受在 VPN 处于活动状态时无法访问本地网络上的设备。我不能做的是每次需要使用远程桌面时都断开路由器的连接,因为我有很多其他设备连接到它。
编辑:这是我尝试通过路由器连接时 Remmina 的输出:
[21:43:22:052] [5431:5437] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[21:43:22:053] [5431:5437] [INFO][com.freerdp.client.common.cmdline] - loading channelEx drdynvc
[21:43:25:109] [5431:5437] [ERROR][com.freerdp.core.transport] - BIO_should_retry returned a system error 32: Broken pipe
[21:43:25:109] [5431:5437] [ERROR][com.freerdp.core.nego] - Protocol Security Negotiation Failure
[21:43:25:109] [5431:5437] [ERROR][com.freerdp.core] - freerdp_set_last_error ERRCONNECT_SECURITY_NEGO_CONNECT_FAILED [0x0002000C]
[21:43:25:109] [5431:5437] [ERROR][com.freerdp.core.connection] - Error: protocol security negotiation or connection failure
答案1
这更像是一种解决方法,但基于这一页我发现如果我发出命令:
sudo route add 192.168.1.xxx dev ppp0
我可以正常连接到远程桌面。“192.168.1.xxx”是我工作电脑的 IP 地址(略有删减),“ppp0”是我推测的 VPN 网关。我通过安装 net-tools 并发出以下命令获取了它:
ifconfig
据我了解,断开 VPN 连接后,设置就会丢失。