ubuntu 22.04 配置VNC远程连接

bash 复制代码
sudo apt install tigervnc-standalone-server
bash 复制代码
curtis@curtis-FP650:~$ vncserver -list

TigerVNC server sessions:

X DISPLAY #     RFB PORT #      RFB UNIX PATH   PROCESS ID #    SERVER
1               5901                            29499           Xtigervnc

为什么同一个局域网内通过VNC viewer 连接报错,服务端vnc服务正常运行?

连接报错:The connection was refused by the computer

ufw 和 ufw服务不是一回事?

bash 复制代码
curtis@curtis-FP650:~$ systemctl status ufw
● ufw.service - Uncomplicated firewall
     Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
     Active: active (exited) since Sat 2026-01-17 13:30:49 CST; 1h 4min ago
       Docs: man:ufw(8)
    Process: 567 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SUCCESS)
   Main PID: 567 (code=exited, status=0/SUCCESS)
        CPU: 1ms

1月 17 13:30:49 curtis-FP650 systemd[1]: Starting Uncomplicated firewall...
1月 17 13:30:49 curtis-FP650 systemd[1]: Finished Uncomplicated firewall.

curtis@curtis-FP650:~$ sudo ufw status verbose
Status: inactive

1、服务端防火墙服务没有被正常启用,VNC 服务端端口不允许有流量通过。

bash 复制代码
curtis@curtis-FP650:~$ sudo ufw status verbose
Status: inactive

# 启用ufw并查看服务状态
curtis@curtis-FP650:~$ sudo ufw status verbose
Status: inactive
curtis@curtis-FP650:~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

curtis@curtis-FP650:~$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)

2、UFW 未放行 5901 端口。

bash 复制代码
# ufw命令放行vncserver端口
# 开放局域网访问,我的环境局域网网段为 192.168.0.0
sudo ufw allow from 192.168.0.0/24 to any port 5901 proto tcp

# 查看打开的vnc服务端口信息
curtis@curtis-FP650:~$ vncserver -list

TigerVNC server sessions:

X DISPLAY #     RFB PORT #      RFB UNIX PATH   PROCESS ID #    SERVER
1               5901                            29499           Xtigervnc

# 查询放通的端口
curtis@curtis-FP650:~$ sudo ufw status verbose
[sudo] password for curtis:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
5901/tcp                   ALLOW IN    192.168.0.0/24
5902/tcp                   ALLOW IN    192.168.0.0/24

3、VNC服务端只监听 127.0.0.1(localhost),仅允许本机通过VNC客户端连接。

bash 复制代码
curtis@curtis-FP650:~$ ss -tuln | grep 5901
tcp   LISTEN 0      5                             127.0.0.1:5901       0.0.0.0:*
tcp   LISTEN 0      5                                 [::1]:5901          [::]:*

# 解决办法启动vnc服务时添加参数 `-localhost no`
curtis@curtis-FP650:~$ vncserver :1 -localhost no -geometry 1920x1080 -depth 24

New Xtigervnc server 'curtis-FP650:1 (curtis)' on port 5901 for display :1.
Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /home/curtis/.vnc/passwd curtis-FP650:1 to connect to the VNC server.

curtis@curtis-FP650:~$ ss -tuln | grep 5901
tcp   LISTEN 0      5                               0.0.0.0:5901       0.0.0.0:*
tcp   LISTEN 0      5                                  [::]:5901          [::]:*

vncserver常见命令:

bash 复制代码
# 查看所有vnc连接
curtis@curtis-FP650:~$ vncserver -list

TigerVNC server sessions:

X DISPLAY #     RFB PORT #      RFB UNIX PATH   PROCESS ID #    SERVER
1               5901                            29499           Xtigervnc

# 根据displaay id关闭某个VNC连接
curtis@curtis-FP650:~$ vncserver -kill :1
Killing Xtigervnc process ID 29499... success!

# 指定VNC分辨率
# -geometry 3840x2160:设置虚拟桌面为 4K 分辨率
# -depth 24:颜色深度(24 位真彩色)
# -dpi 96:可选,设置 DPI(避免字体过小)
# -localhost no:允许局域网连接(关键!)
urtis@curtis-FP650:~$ vncserver -kill :1
Killing Xtigervnc process ID 29499... success!

# vncserver :1 -localhost no -geometry 1920x1080 -depth 24
curtis@curtis-FP650:~$ vncserver :1 -localhost no -geometry 3840x2160 -depth 24 -dpi 96

New Xtigervnc server 'curtis-FP650:1 (curtis)' on port 5901 for display :1.
Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /home/curtis/.vnc/passwd curtis-FP650:1 to connect to the VNC server.

ufw 常用命令:

bash 复制代码
# 查看ufw状态已经配置信息
curtis@curtis-FP650:~$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
5901/tcp                   ALLOW IN    192.168.0.0/24
5902/tcp                   ALLOW IN    192.168.0.0/24

# 查看ufw 配置信息
curtis@curtis-FP650:~$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 5901/tcp                   ALLOW IN    192.168.0.0/24
[ 2] 5902/tcp                   ALLOW IN    192.168.0.0/24

# 通过编号删除某条配置的规则
curtis@curtis-FP650:~$ sudo ufw delete 2
Deleting:
 allow from 192.168.0.0/24 to any port 5902 proto tcp
Proceed with operation (y|n)? y

Rule deleted
curtis@curtis-FP650:~$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 5901/tcp                   ALLOW IN    192.168.0.0/24
相关推荐
mounter6254 分钟前
GCCRS 突破与 Rust 入核:Linux 工具链的重大变革
linux·开发语言·rust·linux kernel·kernel
怪侠_岭南一只猿11 分钟前
[简单理解]小龙虾是怎么一回事?
运维·服务器·ai
海兰13 分钟前
【应用】Wastnet 框架的 SSE (Server-Sent Events)从协议原理到实践指南
运维·服务器·人工智能
头发够用的程序员35 分钟前
ImportError: libopenblas.so.0: cannot open shared object file 完整复盘与解决方案
python·ubuntu
向生42 分钟前
FRP 0.61.0 完整保姆级部署教程
运维
2401_894915531 小时前
Geo 优化源码部署实战:环境配置、参数调优完整指南
运维·服务器·数据库·tcp/ip·安全
lxw20230271162 小时前
k8s安装部署(利用ansible)
linux·kubernetes·ansible
爱和冰阔落2 小时前
【Linux】Ctrl+C 到底做了什么?从键盘、kill 到 alarm,一次讲清信号的产生
linux·运维·c++·安卓
JavaPub-rodert3 小时前
Linux 下部署 MongoDB:从安装、配置到生产环境使用
linux·运维·mongodb
我不会插花弄玉3 小时前
11.Linux进程信号【由浅入深-Linux】
linux·进程·信号