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

SDDM X11VNC

参考文献

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),所以必定连不上。

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 以 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

参考文献

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。

安装:

或者:

配置:

  • 启动 hbbr:

  • 再启动 hbbs:

在其他设备上打开 rustdesk 客户端,两边都要填入相同的“ID 服务器(FreeBSD 的 IP 地址或域名)”和“Key”,其他空着不填,在控制端输入被控端显示的 ID 即可连接。

参考文献

最后更新于

这有帮助吗?