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:

SDDM 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),所以无法连接。

SDDM VNC

示例:

SDDM VNC

通过 VNC 远程 FreeBSD 没声音

不知道怎么配置。

通过 Windows 自带的桌面远程连接(RDP)远程访问 FreeBSD

xrdp FreeBSD

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

xrdp FreeBSD
xrdp FreeBSD
xrdp FreeBSD
xrdp FreeBSD

故障排除与未竟事宜

如果 Windows 的远程桌面窗口既不在左上角也未全屏显示,则会模糊

取消 勾选“智能调整大小”。

使用 Android 通过 XRDP 远程访问 FreeBSD

首先需要下载所需软件:

由微软官方开发的手机 RDP 软件:Remote Desktop

该软件操作便捷。

请注意,须将左上 🖱️ 改为 👆。默认的鼠标操作很不方便:或者读者也可以选择手机 OTG 一个鼠标和键盘。

Remote Desktop FreeBSD

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

Remote Desktop FreeBSD

通过 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

参考文献

freerdp2(旧稳定版,支持 NLA)

使用 pkg 安装:

或者用 Ports:

使用 FreeBSD 远程链接到 Windows 11 24H2:

freerdp

故障排除与未竟事宜

  • 但是笔者没有输入用户名就连上了?

不知道。难道是因为笔者的 FreeBSD 用户名和 Windows 是一样的?

rdesktop(不支持 NLA)

net/xrdesktop2 是 rdesktop 的图形化前端,但笔者打开里面的键盘设置就卡死了。


使用 pkg 安装 rdesktop:

或者用 Ports:

rdesktop 无前端 GUI,故要在终端输入命令:

如果没有特意更改 Windows 配置,无须加 :端口

对于笔者测试的 Windows 11 24H2 会报错:

根据 CredSSP does not work,是个老问题了。

影响安全的解决方案是禁用网络级身份验证(NLA),在要远程连接的 Windows 上操作:

再测试连接:

rdesktop
rdesktop

故障排除与未竟事宜

看视频没声音

待解决

参考文献

AnyDesk

使用 AnyDesk 可进行远程访问,FreeBSD 上仅支持 x86 架构:

由于版权原因(私有软件未经许可禁止分发),必须用户使用 Ports 自行编译:

不可使用 BATCH=yes 参数,因为需要接受许可协议才能使用:

anydesk

查看 AnyDesk 安装后说明:

提示挂载 proc 文件系统,经过测试没有的话的执行程序确没反应。

root 用户无法运行 AnyDesk。需要普通用户:

执行命令后弹出来这个界面:

注意,被连接方必须“接受”(Accept)才能继续连接。

Windows 通过 AnyDesk 远程访问 FreeBSD

Windows 通过 AnyDesk 远程 FreeBSD

FreeBSD 通过 AnyDesk 远程访问 Windows

Windows 通过 AnyDesk 远程 FreeBSD

故障排除与未竟事宜

FreeBSD 通过 AnyDesk 远程 Windows,似乎无法在 Windows 中移动鼠标

待解决。

RustDesk 中继服务器

注意

这是中继 ID 服务器,本身不能被远程控制。

换言之,你没法用 RustDesk 控制 FreeBSD。

安装:

或者:

配置:

  • 启动 hbbs:

  • 再启动 hbbr:

在其他设备上打开 RustDesk 客户端,双方都需填写相同的“ID 服务器(FreeBSD 的 IP 地址或域名)”和“Key”,其余项留空,在控制端输入被控端显示的 ID 即可连接。

参考文献

最后更新于

这有帮助吗?