x11vnc是一种在Linux系统中实现远程桌面控制的工具,它的原理是通过X Window系统的协议来实现远程桌面的展示和控制。在Linux系统中,X Window系统是用于图形界面显示的基础架构,它通过客户端-服务器的方式工作,x11vnc就是作为一个服务器程序来运行,接受客户端的连接并提供远程桌面服务。
Cpolar内网穿透是一种安全的内网穿透云服务,可以将内网下的本地服务器通过安全隧道暴露至公网,使得公网用户可以正常访问内网服务。它支持HTTP、HTTPS、TCP协议端口映射。
下面介绍在Deepin中安装x11vnc工具,并结合Cpolar内网穿透工具实现无公网IP也可以远程连接Deepin精美的桌面.
1. 安装x11vnc
首先更新仓库
sudo apt update
执行下面命令安装x11vnc
sudo apt install x11vnc -y
安装完成后设置密码,注意该密码是连接时需要输入的密码!
x11vnc -storepasswd
执行后会提示输入两遍密码,按照提示输入即可
上面密码设置后,保存在这个位置/home/jon/.vnc/passwd(具体以自己显示路径为准),需要把这个密码文件复制一份到/etc/x11vnc.pass这个路径,执行下面命令复制
sudo cp /home/jon/.vnc/passwd /etc/x11vnc.pass
复制完成后,设置x11vnc开机启动,创建系统服务文件
sudo vim /lib/systemd/system/x11vnc.service
把下面内容复制到里面,复制完成后记得保存
[Unit] Description=Start x11vnc at startup. After=multi-user.target [Service] Type=simple ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared [Install] WantedBy=multi-user.target
设置好后, 通过下面系列命令设置启动和开机自启
#设置开机自启 sudo systemctl enable x11vnc #启动x11vnc sudo systemctl start x11vnc #查看状态 sudo systemctl status x11vnc
执行上面启动和设置开机自启后,再执行查看状态命令,可以看到x11vnc运行正常,x11vnc安装完毕,下面进行本地测试连接
2. 本地远程连接测试
Windows 需要下载vnc客户端,进入官网下载https://www.realvnc.com/en/connect/download/viewer/
下载后直接安装即可,安装完成打开软件,输入局域网IP,然后回车
出现提示框,选择勾选不再提示,点击continue
然后输入安装时候设置的密码,可以选择保存密码,点击OK
这样就可以看到了Deepin精美的桌面,本地安装测试就算完成了,下面进行远程访问连接设置,首先安装cpolar内网穿透工具
3. Deepin安装Cpolar
Deepin 是基于Linux 的系统,可以使用cpolar Linux 安装方式一键快捷安装,在Deepin的命令终端界面,我们输入下面指令,如首次使用,可以在下方官网链接中注册账号!
cpolar官网地址: https://www.cpolar.com
- 使用一键脚本安装命令(执行命令后如果卡住表示需要输入Deepin sudo的密码)
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
- 向系统添加服务
sudo systemctl enable cpolar
- 启动cpolar服务
sudo systemctl start cpolar
cpolar安装和成功启动服务后,浏览器上访问9200端口即:【http://127.0.0.1:9200】,使用cpolar官网注销的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可
4. 配置公网远程地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
- 隧道名称:可自定义,注意不要与已有的隧道名称重复
- 协议:tcp
- 本地地址:5900 (x11vnc默认端口)
- 域名类型:临时随机TCP端口
- 地区:选择China
点击创建
然后打开左侧在线隧道列表,查看刚刚创建隧道后生成的 远程 tcp连接的地址,这个地址就是公网连接地址,我们可以在任意设备上使用该地址在VNC客户端进行远程桌面连接
5. 公网远程连接Deepin桌面
上面在Cpolar中创建了远程Deepin 桌面的VNC公网地址,现在再次打开VNC客户端,输入Cpolar中的公网地址,然后回车
出现提示框,勾选不再提示,然后点击continue
输入登录的密码
我们可以看到远程连接成功,看到了我们精美的Deepin 桌面,这样我们一个远程Deepin桌面的公网地址就设置好了
小结
上面为了更好地演示,我们在前述过程中使用了Cpolar生成的隧道,其公网地址是随机生成的。
这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。
我一般会使用固定TCP域名,原因是我希望将地址发送给同事或客户时,它是一个固定、易记的公网地址,这样更显正式,便于流交协作。
6. 固定连接公网地址
要注意的是,以上步骤使用的是随机临时tcp端口地址,所生成的公网地址为随机临时地址,该公网地址24小时内会随机变化。我们接下来为其配置固定的TCP端口地址,该地址不会变化,设置后将无需每天重复修改地址。
配置固定tcp端口地址需要将Cpolar升级到专业版套餐或以上。
保留一个固定tcp地址
登录Cpolar官网,点击左侧的预留,找到保留的tcp地址,为VNC隧道保留一个固定tcp地址:
- 地区:选择China vip
- 描述:即备注,可自定义
点击保留
地址保留成功后,系统会生成相应的固定公网地址,将其复制下来
打开Cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到我们上面创建的TCP隧道,点击右侧的编辑
修改隧道信息,将保留成功的固定tcp地址配置到隧道中
- 端口类型:修改为固定tcp端口
- 预留的tcp地址:填写官网保留成功的地址,
点击更新
隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到公网地址已经更新成为了固定TCP地址。
7. 固定公网地址连接测试
固定好了地址后,使用我们固定的TCP地址进行连接,打开VNC客户端,输入Cpolar中的固定公网地址,然后回车
同样勾选不再提示,然后点击continue
输入vnc密码,这次可以选择记住密码,然后点击OK
可以看到,固定地址远程桌面成功,这样一个固定的远程Deepin桌面公网地址就设置好了,所有的设置都已经配置完成,接下来就可以使用公网地址在随时随地任意设备远程精美的Deepin桌面了