6.14 远程桌面
x11vnc(FreeBSD 为被控端,镜像屏幕)
x11vnc 会和远程软件 todesk 一样直接镜像屏幕,简言之,你的所有操作都会被同步到显示器上面,反过来在显示器上的操作,你在 VNC 上也可以看到。
如果没有显示器则不能使用 x11vnc。
安装 x11vnc
使用 pkg 安装:
# pkg install x11vnc或者使用 Ports 安装:
# cd /usr/ports/net/x11vnc/
# make install clean创建密码
$ x11vnc -storepasswd
Enter VNC password:
Verify password:
Write password to /root/.vnc/passwd? [y]/n y #此处键入 y 回车
Password written to: /root/.vnc/passwd启动服务器(KDE 6 SDDM)
警告
SDDM 左下角选
Wayland是进不去的!因为 x11vnc 尚不支持 Wayland。
LightDM
GDM

参考文献
TigerVNC(FreeBSD 为被控端)
启用 VNC 服务(目前 Ports 就只剩下这个 TigerVNC 了)
安装 TigerVNC Server
或者:
做一些设置
在终端执行命令 vncpasswd,设置访问密码。
创建 ~/.vnc/xstartup 文件:
内容如下:
你用哪个桌面就把那个桌面前面的注释 # 删掉即可。
警告
请注意保留
&**。
保存后执行命令授予权限。
接下来在终端执行命令
或
其中“:1”意味着 DISPLAY=:1,即指定桌面显示的通信端口为 1,对应 VNC 服务的端口为 5901。桌面显示通信端口从 0 开始,但该端口已被当前桌面占用(除非是镜像 VNC),因此 VNC 服务默认端口虽为 5900,但实际执行须却是从 5901 端口开始的。故,你要链接的话,必须指定端口为 5901。
测试:
如果启动服务时未通信端口,则系统根据使用情况自动指定。
可以查看进程:
关闭服务请用命令 vncserver -kill :1,这里必须指定通信端口。
如果启用了防火墙,以 ipfw 为例,在终端输入命令:
上行命令表示放通端口 5900-5910,即 DISPLAY 0-10。
参考文献
XRDP(FreeBSD 为被控端)
安装 XRDP(基于 kde6)
或者:
查看配置文件:
配置
编辑 /usr/local/etc/xrdp/startwm.sh:
找到 #### start desktop environment,修改如下:
然后重启系统,即可。
中文化 (用户使用默认的 sh)
故障排除与未竟事宜
XRDP 没声音
你试试火狐浏览器
通过 Windows 以 TigerVNC 远程访问 FreeBSD
下载 TigerVNC 查看器:
下载地址:https://sourceforge.net/projects/tigervnc/files/stable/
查看 FreeBSD 的 VNC 端口:
故障排除与未竟事宜:由于目标服务器积极拒绝,无法连接
非镜像 vnc 在连接时必须指定端口,否则按默认端口 5900 进行连接,但是你不是镜像的屏幕(你用的不是 x11vnc),所以必定连不上。
示例:

故障排除与未竟事宜
通过 VNC 远程 FreeBSD 没声音,不知道怎么配置。
通过 Windows 自带的桌面远程连接(RDP)远程访问 FreeBSD

首次登录设备会有安全提示,输入 yes,回车后就会弹出远程桌面窗口。




故障排除与未竟事宜
Windows 的远程桌面窗口若不在左上角或全屏显示,则会模糊
请 取消 勾选“智能调整大小”。

使用 Android 通过 XRDP 远程访问 FreeBSD
首先需要下载所需软件:
由微软官方开发的手机 RDP 软件:Remote Desktop
该软件操作便捷。
请注意,须将左上 🖱️ 改为 👆。默认的鼠标操作很不方便:或者你也可以选择手机 OTG 一个鼠标和键盘。

连接示意图(后台正在编译 Chromium,故占用会很高):

通过 FreeBSD 以 XDRP 远程访问 Windows
freerdp3(新稳定版,支持 NLA)
使用 pkg 安装:
或者用 Ports:
使用 FreeBSD 通过 freerdp3 远程链接到 Windows 11 24H2:
xfreerdp3 /u:ykla /p:z /v:192.168.31.213:
xfreerdp3,注意前面有个x。/u:ykla,/u:即 Username 用户名。ykla是我 Windows 的登录名/p,即 Password 密码。z是我 Windows 用户ykla的登录密码/v:,即 Server 服务器。

参考文献
FreeRDP User Manual,里面命令说明和一些用法示例
freerdp2(旧稳定版,支持 NLA)
使用 pkg 安装:
或者用 Ports:
使用 FreeBSD 远程链接到 Windows 11 24H2:

故障排除与未竟事宜
但是我没有输入用户名就连上了?
不知道。难道是因为我的 FreeBSD 用户名和 Windows 是一样的?
rdesktop(不支持 NLA)
net/xrdesktop2 是 rdesktop 的图形化前端,但我打开里面的键盘设置就卡死了。
使用 pkg 安装 rdesktop:
或者用 Ports:
rdesktop 无前端 GUI,故要在终端输入命令:
如果没有特意更改 Windows 配置,无须加 :端口。
对于我测试的 Windows 11 24H2 会报错:
根据 CredSSP does not work,是个老问题了。
影响安全的解决方案是禁用网络级身份验证(NLA),在要远程连接的 Windows 上操作:
再测试链接:


故障排除与未竟事宜
看视频没声音
待解决
参考文献
使用 RDP 连接到 Azure VM 时排查身份验证错误,打开和关闭 NLA 的方法在此。经过测试关闭后 rdesktop 果然又连不上了。
AnyDesk
使用 AnyDesk 可进行远程访问,FreeBSD 上仅支持 x86 架构:
由于版权问题(私有软件未经许可默认禁止分发),必须用户使用 Ports 自行编译:
不可使用 BATCH=yes 参数,因为需要接受许可协议才能使用:

查看 AnyDesk 安装后说明:
提示需要 /proc,经过测试没有的话的执行程序确没反应。
root 用户无法运行 AnyDesk。需要普通用户:
执行命令后弹出来这个界面:

注意,被连接方“接受”(Accept)了才能继续链接。
Windows 通过 AnyDesk 远程 FreeBSD

FreeBSD 通过 AnyDesk 远程 Windows

故障排除与未竟事宜
FreeBSD 通过 AnyDesk 远程 Windows,似乎无法在 Windows 中移动鼠标。
待解决。
RustDesk 中继服务器
注意
这个是中继的 ID 服务器,本身不能被远程控制。
换言之,你没法用 RustDesk 控制 FreeBSD。
安装:
或者:
配置:
启动 hbbr:
再启动 hbbs:
在其他设备上打开 rustdesk 客户端,两边都要填入相同的“ID 服务器(FreeBSD 的 IP 地址或域名)”和“Key”,其他空着不填,在控制端输入被控端显示的 ID 即可连接。
参考文献
最后更新于
这有帮助吗?
