远程协作:桌面环境与现代共享方案

虽然高手通常只用终端,但在进行 GUI 开发、数据可视化或远程教学时,图形化桌面连接依然不可或缺。


1. 经典之选:VNC (Virtual Network Computing)

VNC 是 Linux 平台上最通用的远程桌面协议。

  • 服务端: TigerVNC, TightVNC, RealVNC
  • 客户端: Remmina, VNC Viewer
  • 原理: 类似视频推流,服务器端捕捉 X11 窗口并传输像素。
实操:如何启动 VNC 服务?
# 1. 安装服务 (以 TigerVNC 为例)
sudo apt install tigervnc-standalone-server
 
# 2. 设置 VNC 密码 (与系统密码不同)
vncpasswd
 
# 3. 启动 VNC 桌面 (1 代表 5901 端口)
vncserver :1 -geometry 1920x1080 -depth 24

安全提示: VNC 协议不加密。强烈建议通过 SSH 隧道 访问:ssh -L 5901:localhost:5901 server


2. Windows 兼容:RDP (Remote Desktop Protocol)

通过 xrdp,你可以直接使用 Windows 自带的“远程桌面连接” (mstsc) 连接到 Linux。

  • 优势: 对网络带宽优化极佳,支持剪贴板共享。
  • 配置:
    sudo apt install xrdp
    sudo systemctl enable --now xrdp
    # 确保 3389 端口在防火墙放行
    sudo ufw allow 3389/tcp

3. 现代协作神器:RustDesk / NoMachine

传统的 VNC/RDP 在跨内网访问时配置繁琐。

  • RustDesk: 开源、跨平台、支持自建服务器,被称为“TeamViewer 的完美替代品”。
  • NoMachine (NX): 极速协议,几乎感觉不到延迟,非常适合远程视频剪辑或游戏开发。

4. Web 终端:无客户端连接

有时候你只需要一个浏览器就能管理服务器。

  • ttyd: 将任意命令(如 bash)共享到网页端口。
  • Cockpit: Linux 官方现代化的 Web 管理面板,集成终端、日志、容器管理。
    sudo apt install cockpit
    sudo systemctl start cockpit
    # 访问 https://your_ip:9090

5. 多人协作场景:如何协同排障?

== tab 场景 A:屏幕共享 使用 RustDesk 发起受控连接,对方可以直接操作你的图形界面。

== tab 场景 B:终端结对编程 启动 tmux 并开启会话,两个用户同时 ssh 进同一台机器并 tmux attach 到同一个会话。两人的操作实时同步,甚至可以一起敲代码。

== tab 场景 C:Live Share VS Code 插件 Live Share 允许你邀请他人加入你的编辑器,即使代码只在你的服务器上。


6. 结业练习

Navigation