Ubuntu 22.04 Basic Use
Ubuntu 22.04 LTS 基础配置
Ubuntu 22.04 快速入门(一)
1. 远程登陆 Ubuntu 桌面
1.1 底层原理
远程连接 Ubuntu 桌面(或任何 Linux 发行版)的核心原理是图形界面数据的捕获、压缩、传输与还原。
Note
简单来说,这就像是在两台电脑之间搭建了一个专用的“直播间”:一台机器负责表演(运行程序),另一台负责观看并提供远程遥控(输入指令)。
核心工作流程
- 服务端截取 (Screen Scraping): Ubuntu 上的远程桌面服务端(如 VNC Server 或 RDP Server)会持续监测显示输出(X11 或 Wayland 服务)。当屏幕内容发生变化时,它会截取当前帧。
- 编码与压缩 (Encoding): 为了不让网络带宽瞬间爆炸,图像数据会被压缩。现代协议(如 NoMachine 或 RDP)不仅压缩图片,还会只发送“增量更新”(即只发送屏幕上发生变化的那一小块区域)。
- 网络传输 (Transmission): 数据包通过 TCP 或 UDP 协议发送到客户端。UDP 通常用于对延迟敏感的场景,因为它比 TCP 更快,虽然偶尔会丢包。
- 指令反馈 (Input Redirection): 这是“遥控”的关键。你在本地敲下的键盘按键或移动的鼠标,会被客户端打包成指令发回 Ubuntu,服务端再将这些指令模拟输入到 Linux 内核中。
主流的实现协议
- VNC (Virtual Network Computing)
- 原理: 它是基于 RFB (Remote Framebuffer) 协议的。VNC 非常“诚实”,它直接传输原始像素数据。
- RDP (Remote Desktop Protocol)
- 由微软开发,Ubuntu 现在通过 xrdp 广泛支持。RDP 比较“聪明”,它不只是传图片,还会传绘制指令(例如:画一个矩形、填充蓝色)。
- X11 Forwarding (底层转发)
- 这是 Linux 特有的高级玩法。它不传输整个桌面,而是直接将 X Server 的图形指令通过 SSH 通道发给客户端。
1.2 安装
- Xrdp(RDP) 协议
在Ubuntu 22.04上安装xrdp:默认端口是3389
# 安装
sudo apt update
sudo apt install xrdp
# 重新启动程序
sudo systemctl enable xrdp
sudo systemctl start xrdp- 配置防火墙
检查运行端口使用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
- Mac连接
由于采用的Xrdp,所以需要下载一个app,充当windows连接Ubuntu,以前是Microsoft Remote Desktop,现在改成了Windwos App
微软官网公布了,更改消息

输入IP地址和账户密码即可登陆成功
1.3 常见问题
- 登陆后黑屏
这种原因是由于主机登陆着当前的账户,导致冲突。Ubuntu 的内置远程桌面(基于 RDP/xrdp)默认不允许同一个用户既在物理机上操作,又通过远程连接。如果你的 Ubuntu 电脑此时正亮着屏幕并停留在桌面,远程连接就会显示黑屏。
- 在 Ubuntu 物理机上点击“注销 (Log Out)”,回到登录输入密码的界面。
- 再次尝试从 Mac 发起远程连接。
或者在远端进行命令行操作
- 使用
loginctl list-sessions查看当前的绘画列表 - seat0 和 tty2 标志着这是你的本地物理桌面会话
sudo loginctl terminate-session <process id>输入含有tty2或seat0的对应ID 关闭即可
Ubuntu 的默认远程服务(尤其是基于 RDP 的)在工作时,会尝试接管或创建一个 X Display。如果物理屏幕已经占用了一个 :0 端口(即本地登录),远程连接往往会因为权限冲突或资源争夺而卡死在黑屏界面。