Ubuntu 22.04 Basic Use

Ubuntu 22.04 LTS 基础配置

Ubuntu 22.04 快速入门(一)

1. 远程登陆 Ubuntu 桌面

1.1 底层原理

远程连接 Ubuntu 桌面(或任何 Linux 发行版)的核心原理是图形界面数据的捕获、压缩、传输与还原。

Note

简单来说,这就像是在两台电脑之间搭建了一个专用的“直播间”:一台机器负责表演(运行程序),另一台负责观看并提供远程遥控(输入指令)。

核心工作流程

    1. 服务端截取 (Screen Scraping): Ubuntu 上的远程桌面服务端(如 VNC Server 或 RDP Server)会持续监测显示输出(X11 或 Wayland 服务)。当屏幕内容发生变化时,它会截取当前帧。
    1. 编码与压缩 (Encoding): 为了不让网络带宽瞬间爆炸,图像数据会被压缩。现代协议(如 NoMachine 或 RDP)不仅压缩图片,还会只发送“增量更新”(即只发送屏幕上发生变化的那一小块区域)。
    1. 网络传输 (Transmission): 数据包通过 TCP 或 UDP 协议发送到客户端。UDP 通常用于对延迟敏感的场景,因为它比 TCP 更快,虽然偶尔会丢包。
    1. 指令反馈 (Input Redirection): 这是“遥控”的关键。你在本地敲下的键盘按键或移动的鼠标,会被客户端打包成指令发回 Ubuntu,服务端再将这些指令模拟输入到 Linux 内核中。

主流的实现协议

    1. VNC (Virtual Network Computing)
    • 原理: 它是基于 RFB (Remote Framebuffer) 协议的。VNC 非常“诚实”,它直接传输原始像素数据。
    1. RDP (Remote Desktop Protocol)
    • 由微软开发,Ubuntu 现在通过 xrdp 广泛支持。RDP 比较“聪明”,它不只是传图片,还会传绘制指令(例如:画一个矩形、填充蓝色)。
    1. X11 Forwarding (底层转发)
    • 这是 Linux 特有的高级玩法。它不传输整个桌面,而是直接将 X Server 的图形指令通过 SSH 通道发给客户端。

1.2 安装

  1. Xrdp(RDP) 协议

在Ubuntu 22.04上安装xrdp:默认端口是3389

# 安装
sudo apt update
sudo apt install xrdp

# 重新启动程序
sudo systemctl enable xrdp
sudo systemctl start xrdp
  1. 配置防火墙

检查运行端口使用netstat,在 Linux 系统(比如 Ubuntu/Debian)上,netstat 并不是默认安装的,它属于 net-tools 软件包。你可以按下面步骤安装和使用:

sudo apt update
sudo apt install net-tools

查看所有TCP端口监听

查看 TCP 端口监听 = 确认“有没有服务在等你连、是不是它、是不是在对的地方等”

  • 端口=服务的门牌号
  • 监听(listen)=服务已经把门打开,在等客户来敲门
sudo netstat -tlnp
参数 含义 作用
-t TCP 只显示 TCP 连接/监听端口
-l Listening 只显示 监听状态 的端口(server端)
-n Numeric 数字显示 IP 和端口号,不解析域名或服务名
-p Process 显示 对应进程的 PID 和名称

可选的配置防火墙 sudo ufw allow 3389/tcp

  1. Mac连接

由于采用的Xrdp,所以需要下载一个app,充当windows连接Ubuntu,以前是Microsoft Remote Desktop,现在改成了Windwos App

微软官网公布了,更改消息

windows app

windows app

输入IP地址和账户密码即可登陆成功

1.3 常见问题

  1. 登陆后黑屏

这种原因是由于主机登陆着当前的账户,导致冲突。Ubuntu 的内置远程桌面(基于 RDP/xrdp)默认不允许同一个用户既在物理机上操作,又通过远程连接。如果你的 Ubuntu 电脑此时正亮着屏幕并停留在桌面,远程连接就会显示黑屏。

  • 在 Ubuntu 物理机上点击“注销 (Log Out)”,回到登录输入密码的界面。
  • 再次尝试从 Mac 发起远程连接。

或者在远端进行命令行操作

  1. 使用 loginctl list-sessions 查看当前的绘画列表
  2. seat0 和 tty2 标志着这是你的本地物理桌面会话
  3. sudo loginctl terminate-session <process id> 输入含有tty2或seat0的对应ID 关闭即可

Ubuntu 的默认远程服务(尤其是基于 RDP 的)在工作时,会尝试接管或创建一个 X Display。如果物理屏幕已经占用了一个 :0 端口(即本地登录),远程连接往往会因为权限冲突或资源争夺而卡死在黑屏界面。

2. 安装V2rayN