
详解Deepin23-CUDA-Conda-Python-Pytorch-Xinference-Dify-Deepseek本地部署AI平台系列之二:Todesk+MobaXterm+VNC远程控制
本系列是实操中踩坑无数的经验总结。 上一篇实现了NFS远程镜像安装操作系统和内外网共用的基本网络配置,本期实现Todesk外网和VNC内网远程控制,Windows系统安装MobaXterm远程控制,方便操作管理。远程控制采用外网Todesk和内网x11vnc(xrdp),安装xrdp出现服务始终无法正常启动且同时只能登录一个用户,于是转向x11vnc实现多用户同时远控。
注:本系列是实操中踩坑无数的经验总结,成文备考,分享避坑。
前言
上一篇实现了NFS远程镜像安装操作系统和内外网共用的基本网络配置,本期实现Todesk外网和VNC内网远程控制,Windows系统安装MobaXterm远程控制,方便操作管理。
配置远程控制
远程控制采用外网Todesk和内网x11vnc(xrdp),安装xrdp出现服务始终无法正常启动且同时只能登录一个用户,于是转向x11vnc实现多用户同时远控。
一、Todesk Linux版安装
直接通过星火应用商城安装Todesk个人版。Todesk Linux版相对Windows版本是不限速的,最大的优点是文件传输相当方便,速度给力。
二、x11vnc安装
复制以下内容,修改保存为vmc.sh文件,然后运行。
#!/bin/bash
password="你的密码" # 这里请改成你自己登录账号的密码就可以,下方内容都不用变
# Step 1: 安装x11vnc
echo $password | sudo -S sudo apt update && sudo apt install x11vnc -y
# Step 2: 设置x11vnc密码
pseudo x11vnc -storepasswd $password /etc/x11vnc.pass
# Step 3: 创建一个 `systemd` 服务文件的配置,用于启动和管理 `x11vnc` 服务。以下是逐条解释:
# **[Unit] 部分**
#这部分定义了服务单元的基本属性,包括描述和服务依赖关系。
# **Description=x11vnc (Remote access)**
# **含义**:这是服务的描述,用于说明服务的作用。
# **作用**:在 `systemctl status` 或其他显示服务信息的命令中显示此描述。
# **After=network.target display-manager.service**
# **含义**:指定 `x11vnc` 服务在 `network.target` 和 `display-manager.service` 之后启动。
# **作用**:确保在启动 `x11vnc` 之前,网络服务和显示管理器(如 `lightdm` 或 `gdm`)已经启动并运行。
# **[Service] 部分**
#这部分定义了服务的运行时行为。
# **Type=simple**
# **含义**:指定服务类型为 `simple`。
# **作用**:`systemd` 会在 `ExecStart` 指定的命令启动后认为服务已启动。这是最简单的服务类型,适用于大多数命令行工具。
# **ExecStart=/usr/bin/x11vnc -auth (参数guess或者<修改成当前用户绝对路径,相对路径重启会出现不确定错误>)/.Xauthority -display :0 -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared -ncache_cr**
# **含义**:指定启动 `x11vnc` 时使用的命令和参数。
# **作用**:启动 `x11vnc` 服务,并设置相关参数。以下是参数的详细解释:
# `-auth (参数guess或者<修改成当前用户绝对路径,相对路径重启会出现不确定错误>)/.Xauthority`:指定 `x11vnc` 使用的 `.Xauthority` 文件路径,用于认证,参数guess是自己盲猜认证文件,有可能出问题,我最后使用了绝对路径。
# `-display :0`:指定要共享的 X11 显示设备编号(默认为 `:0`)。
# `-forever`:使 `x11vnc` 在后台持续运行,即使没有客户端连接。
# `-loop`:使 `x11vnc` 在客户端断开连接后重新启动,等待新的连接。
# `-noxdamage`:禁用 X DAMAGE 扩展,以提高兼容性。
# `-repeat`:允许重复按键事件。
# `-rfbauth /etc/x11vnc.pass`:指定 VNC 密码文件路径,用于客户端认证。
# `-rfbport 5900`:指定 VNC 服务监听的端口号为 5900。
# `-shared`:允许多个客户端同时连接到同一个 VNC 会话。
# `-ncache_cr`:启用客户端像素缓存的“copyrect”模式,优化窗口移动时的性能。
# **ExecStop=/bin/kill -TERM $MAINPID**
# **含义**:指定停止服务时执行的命令。
# **作用**:发送 `TERM` 信号终止 `x11vnc` 的主进程(`$MAINPID`)。
# **Restart=on-failure**
# **含义**:指定服务在失败时的行为。
# **作用**:如果 `x11vnc` 服务因错误退出,`systemd` 会尝试重新启动它。
# **[Install] 部分**
#这部分定义了服务的安装目标。
# **WantedBy=graphical <multi>.target**
# **含义**:指定 `x11vnc` 服务在 `graphical <multi>.target` 状态下被启用。
# **作用**:当系统进入图形界面<多用户>模式时(如启动桌面环境),`x11vnc` 服务会自动启动。
sudo tee /etc/systemd/system/x11vnc.service > /dev/null <<EOF
[Unit]
Description=Remote desktop service (VNC)
Requires=display-manager.service
After=display-manager.service
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth <修改成当前用户绝对路径,相对路径重启会出现不确定错误>/.Xauthority -display :0 -forever -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared -ncache_cr
ExecStop=/bin/kill -TERM $MAINPID
[Install]
WantedBy=multi-user.target
EOF
echo "服务文件写入完成!"
# 刷新服务配置
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start x11vnc
# 设置服务为自启动
sudo systemctl enable x11vnc echo "服务启动设置成功!"
执行vnc.sh脚本
sudo ./vnc.sh
查看x11vnc服务状态
sudo systemctl status x11vnc
如果x11vnc的状态如上图,应该可以用VNC远程登录了。
踩坑过程:Deepin25刚安装成功时,远程连接操作相当流畅,后面好像是安装了conda后,不知道啥原因出现卡顿,最后还出现输入时按键自动重复多次。搞得很伤神,最终也没有解决,就打算转向TigerVNC。发文时系统刚改成Deepin23,因为25被我搞崩溃了,现在系统服务正常,但远程还连接不上,后面再想办法解决(已解决,原因如下)。
出现上面问题是 /etc/systemd/system/x11vnc.service 服务配置文件有个换行错误,导致服务启动不正常,看着好像正常。
参考链接:一台设备控制一批设备,最终还是选择了VNC方式,支持一键配置。
三、TigerVNC安装
发文时在Deepin25试过,但没有连接成功,后面再试,Kimi说TigerVNC比x11vnc好。
Deepin安装TigerVNC执行以下命令
sudo apt install -y tigervnc-standalone-server
后续配置待续……
参考链接:TigerVNC - Arch Linux 中文维基
MobaXterm中文版安装
参考链接:MobaXterm-Chinese中文版本安装及简单使用
更多推荐
所有评论(0)