第一步:下载并配置内网服务器上的vnc服务
在ubuntu上选择tightvncserver
1
2
|
sudo apt update
sudo apt install -y tightvncserver xfce4 xfce4-goodies
|
启动并设置vnc密码:
修改 VNC 启动配置文件:
内容替换为:
1
2
3
4
5
6
7
8
9
10
11
12
|
#!/bin/sh
export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xfce4-panel &
xfsettingsd &
xfwm4 &
xfdesktop &
pcmanfm &
xfce4-terminal &
|
赋予可执行权限:
1
|
chmod +x ~/.vnc/xstartup
|
启动vnc服务:
1
|
vncserver -geometry 1920x1080
|
第二步:frp内网穿透
查询vnc使用的端口是否被监听,一般是5901开始,随着vnc服务的开启顺序增加(如vncserver :7就是5907)
1
|
netstat -tuln | grep 5901
|
与frp实现ssh内网穿透类似,需要编写两个toml文件
frps:
1
2
|
[common]
bind_port = 7001 # 避免和使用7000的ssh端口重复
|
frpc:
1
2
3
4
5
6
7
8
9
10
|
[common]
server_addr = xxx.xxx.xxx.xxx # 公网服务器 IP
server_port = 7001 # 与服务端的监听端口一致
# VNC 映射
[[proxies]]
type = tcp
local_ip = 127.0.0.1
local_port = 5901 # 内网服务器的 VNC 服务端口
remote_port = 6001 # 公网服务器上暴露的端口
|
后面设置服务启动服务与ssh是一样的。
第三步 云服务器开放对应的端口
比如这里就要开放6001和7001端口
第四步 本地机器下载VNC工具并连接远程桌面
比如常用的是RealVNC Viewer,在上方输入框输入公网服务器ip:remote_port即可连接

附录:常用命令
vnc服务常用命令
修改密码
查询已开启的vnc服务
查询vnc已用端口
关闭某个vnc服务(X)
启动指定端口的vnc服务
其他常用命令
查询端口占用的PID
坑与参考
黑屏问题
vncviewer黑屏问题解决_vnc viewer黑屏-CSDN博客