6.14 远程桌面
x11vnc(FreeBSD 为被控端,镜像屏幕)
x11vnc 会和远程软件 todesk 一样直接镜像屏幕,简言之,你的所有操作都会同步到显示器上,反过来在显示器上的操作你在 VNC 上也可以看到。
如果没有显示器则无法使用 x11vnc(可考虑使用 HDMI 显卡欺骗器)。
安装 x11vnc
使用 pkg 安装:
# pkg install x11vnc或使用 Ports 安装:
# cd /usr/ports/net/x11vnc/
# make install clean创建密码
设置 x11vnc 的访问密码:
$ 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 授权文件启动 x11vnc:
警告
SDDM 左下角选择
Wayland无法进入,因为 x11vnc 尚不支持 Wayland。
使用指定密码文件和 LightDM 授权文件启动 x11vnc:
使用指定密码文件和 GDM 授权文件启动 x11vnc:

参考文献
TigerVNC(FreeBSD 为被控端)
启用 VNC 服务(目前 Ports 中仅剩此 TigerVNC)
安装 TigerVNC Server
或者:
做一些设置
创建 ~/.vnc/ 路径:
编辑 ~/.vnc/xstartup 文件,新增以下行:
读者使用哪个桌面,就删除该桌目前面的注释 # 即可。
警告
请注意保留
&。
设置 xstartup 脚本为可执行权限:
接下来在终端执行命令启动 VNC 服务器:
或在显示 :1 上启动 VNC 服务器:
其中 :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)
或者:
查看配置文件:
配置 XRDP
配置守护进程
编辑 /usr/local/etc/xrdp/startwm.sh,找到 #### start desktop environment,修改如下:
然后重启系统即可。
中文化 (用户使用默认的 sh)
编辑 /usr/local/etc/xrdp/startwm.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 以 XRDP 远程访问 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。
安装:
或者:
配置:
启动 hbbs:
再启动 hbbr:
在其他设备上打开 RustDesk 客户端,双方都需填写相同的“ID 服务器(FreeBSD 的 IP 地址或域名)”和“Key”,其余项留空,在控制端输入被控端显示的 ID 即可连接。
参考文献
最后更新于
这有帮助吗?