Ubuntu使用vnc远程桌面远程内网穿透

Posted 桃花键神

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu使用vnc远程桌面远程内网穿透相关的知识,希望对你有一定的参考价值。

文章目录

1.前言

记得笔者刚刚开始接触电脑时,还是win95/98的时代,那时的电脑桌面刚迈入图形化不久,还存在很多问题,比如被无数次调侃的蓝屏白字和惊心动魄的音效,但也确实深深吸引了笔者(尽管那时候都在玩游戏),算是打开了笔者的兴趣之门。接下来的时间里,各种不同的操作系统都迈进了图形化时代,以黑屏白字显示的操作系统越来越少。恰逢乔帮主的苹果电脑风靡全球,为了体验不同的图形界面风格,笔者还下载安装过苹果风格的桌面模拟包(彼时的苹果不兼容intelCPU,更重要的原因是买不起那时的苹果电脑…),但带来的后果就是Windows系统的各种不稳定和崩溃。

现在各种操作系统的图形化界面日臻成熟,风格也逐渐趋于类似。笔者将淘汰的电脑装上了不同的操作系统,时不时的开机感受下不同风格的操作界面,也会在不同操作系统上安装一些特色软件玩一玩。直到桌面连接软件的出现,笔者就开始使用桌面连接软件,在Windows系统上打开其他操作系统的桌面进行操作。可以说桌面连接软件的出现,给笔者省了不少麻烦。而随着软件技术的发展,已经出现了能远程连接局域网内不同操作系统桌面的软件组合,更是大大拓展了可玩性。今天,笔者就为大家介绍很有特色的一种:使用Cpolar+VNC的组合,实现远程连接其他系统的桌面。

2.两台互联电脑的设置

为便于说明两台不同操作系统之间使用VNC互联的操作步骤,笔者使用了安装Ubuntu系统的电脑,以及安装了Windows系统的电脑。如果打算在其他操作系统的电脑进行互联,也可以参照这些步骤进行。

2.1 Windows安装VNC

由于笔者平时使用的电脑都是Windows操作系统,因此需要以Windows连接其他操作系统桌面。首先要在Windows上安装VNC,只要访问VNC官网(https://www.realvnc.com/en/connect/download/viewer/),下载适用Windows系统的VNC版本。

Windows版的VNC下载完成后,双击.exe文件,并一路next即可完成安装。安装期间可能出现选择软件安装位置的提示框,只要选择local hard drive位置即可。

2.2 Ubuntu安装VNC

接着在打算连入的操作系统上安装VNC,这里打算连入的是Ubuntu系统,因此是在Ubuntu系统上安装VNC(其他操作系统以此类推)。

需要注意的是,想要远程连接Ubuntu的图形化桌面,可能需要先执行图形化桌面的安装命令

sudo apt install ubuntu-desktop 
sudo apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal

再输入命令重启Ubuntu,就能启用图形化桌面

sudo reboot

为了能更好的获得Ubuntu的图形化界面,还可以选择安装lightDM,输入命令

sudo apt-get install lightdm

就能安装lightDM,安装期间出现的询问,我们按键盘上的Tab选择light即可。

接着在Ubuntu的命令行界面输入命令

sudo apt-get install x11vnc

就能自动安装VNC

完成VNC的安装后,最好再将VNC设置为开机启动(毕竟谁也不想每次重启Ubuntu后都要重新启动VNC软件)。输入命令

sudo vim /lib/systemd/system/x11vnc.service

新建一个x11vnc.service文件,其中vim可以输入命令sudo apt install vim进行安装,如果没有安装vim就无法建立x11vnc.service文件,接着按i键进入该文件的编辑模式,并输入如下命令:

[Unit]
Description=Start x11vnc at startup.
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/<USERNAME>/.vnc/passwd -rfbport 5900 -shared

[Install]
WantedBy=multi-user.target

需要注意的是,蓝色显示的<USERNAME>需要替换为Ubuntu的实际用户名。

在指令添加完毕后,就可以输入:wq保存并退出。

最后,将其设置为开机启动

sudo systemctl enable x11vnc.service

启动服务

sudo systemctl start x11vnc.service

完成Ubuntu的VNC设置后,就可以接着安装Cpolar为我们远程通过VNC连接Ubuntu桌面进行准备

2.3.Ubuntu安装cpolar

相较来说,在Ubuntu上安装cpolar就要简单得多,只要输入命令:

curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

就可以自动安装cpolar。如果是国外用户,还可以使用短链接进行安装:

curl -sL https://git.io/cpolar | sudo bash

安装程序完成后,可以输入命令cpolar version查看版本号,只要能显示出版本号,就说明cpolar已经成功安装。

接着,就可以通过浏览器访问cpolar的官网(www.cpolar.com)注册属于自己的账号并在cpolar官网登录,获取cpolar客户端的token码激活cpolar的客户端。当然,首先就是注册成为cpolar的用户(cpolar以注册名为划分,为每个客户生成单独的数据通道,并且生成用户唯一的token码,以此保证数据安全),并且新用户注册也非常简单。

在完成用户注册,并以注册用户登录cpolar官网后,就可以在cpolar网站主页面看到一串十分复杂的token码。

我们将这串token码复制下来,粘贴到Ubuntu的命令行界面并输入,具体的命令为:

cpolar authtoken (此处粘贴那串复杂的token码)

Token码输入后,就会被自动写入cpolar的配置文件中。此时我们就可以在Ubuntu的浏览器中,输入localhost:9200,打开cpolar的Web-UI界面。

在登陆界面输入已注册的用户名和密码后,就能进入cpolar客户端主界面。在这里我们能对已建立的隧道进行操作,也可以从这里建立一条临时隧道短暂使用。

不过正如前文所述,笔者并不想每天都重设一次VNC的连接地址,并且远程桌面连接所需的带宽也不小,因此直接升级Cpolar到专业套餐,而多出来的几个固定TCP、HTTP隧道,正好可以拿来发布网页或其他用途。

3.Cpolar设置

想要使用cpolar生成一天能够长期持续稳定存在的数据隧道,需要从cpolar云端和cpolar客户端两方面进行设置。其中,cpolar云端主要负责生成内网穿透数据隧道的入口,也就是公共互联网的地址(也可以看做一条空白的数据隧道);而cpolar客户端则是将数据隧道的入口与本地软件输出端口连接起来。因此,我们需要先登录cpolar云端,设置一条空白数据隧道。

3.1 Cpolar云端设置

在cpolar官网主界面左侧,找到并点击“预留”按钮,进入预留数据隧道设置页面,这里就是创建个人专属的空白数据隧道(TCP\\HTTP\\FTP等)的设置页面,这条数据隧道能生成一个公共互联网地址(即隧道的公共互联网地址)。

为了方便数据隧道的创建,自然需要输入一些简单信息,这些信息主要为:

  • 地区 – 只要在下拉菜单中,就近选择即可(离得近能降低延迟);
  • 描述 – 该栏可以看做数据隧道的备注,方便分辨即可;

信息设置完成后,点击右侧的保留按钮,将这条数据隧道保留下来,并生成一个公共互联网地址。

在这里,我们需要复制地址栏位的内容,以便在cpolar客户端设置时填入。

3.2.Cpolar本地设置

完成了cpolar云端的设置后,我们回到cpolar客户端,在cpolar客户端点击软件界面左侧隧道管理项下的创建隧道按钮,进入cpolar本地的数据隧道创建页面。在这里同样需要对几项信息进行设置,才能让云端生成的空白数据隧道与本地输出端口连结起来(免费版cpolar想要创建数据隧道,也是这样操作),这些内容主要为:

  • 隧道名称 —— 可看做数据隧道的备注,用来区分不同隧道的应用场景;
  • 协议 —— 即数据隧道的传输协议,如网页、数据传输、设备互联等,这里选择TCP协议;
  • 本地地址 —— 这里需要填入软件(或内网设备)的端口号,而VNC的端口号为5900,因此在至此填入5900;
  • 端口类型 —— 也就是内网穿透数据隧道类型,在cpolar云端设置了保留隧道的,就可以选择“固定TCP端口”;若只是> - 临时测试,就可以选择“随机临时TCP端口”(需要注意,固定TCP端口要将cpolar升级至专业版及以上);
  • 预留的TCP地址 —— 在选择了“固定TCP端口”后就会出现该栏位,这里就要将cpolar云端生成的地址粘贴进来(若勾选 “随机临时TCP端口”,则不会出现该栏位);

各项设置都填入后,点击下方的创建按钮,就能将云端空白数据隧道与本地Ubuntu的VNC软件连接起来,从而让其他系统内的VNC软件能够连接到Ubuntu系统桌面。

隧道创建成功后,就能够生成拥有公共互联网地址,连接本地Ubuntu系统的VNC软件隧道。这条隧道可以在隧道管理项下的隧道列表页面看到,并可以在这个页面对隧道进行操作,如开启、关闭、删除等,如果要修改这条数据隧道的信息,也可以在这个页面中找到修改入口。

而这条隧道的公共互联网地址,则可以在状态项下的在线隧道列表中看到。

4.公网访问测试

现在,我们在Windows和Ubuntu都安装了VNC,并且cpolar的数据隧道也已经成功建立,接下来,我们就可以尝试使用VNC,在Windows上操作Ubuntu的桌面。

只要在Windows上打开VNC软件,在左上角的“File”菜单点击“New connection”选项,就能打开连接页面。

New connection页面,需要将Ubuntu上cpolar生成的公共互联网地址,填入VNC Server栏位中,指导VNC找到Ubuntu系统。

最后点击页面下方的“OK”并输入密码,就能成功从Windows系统,连入Ubuntu系统的桌面,并进行所需的操作。

5.结语

至此,我们使用VNC+cpolar的软件组合,从Windows桌面连接Ubuntu系统桌面的尝试就算成功了。在这次操作中,VNC软件可以替换为其他的桌面互连软件,以适应不同用户的操作习惯。需要注意的是,远程桌面操作消耗带宽较大,为获得更好的操作体验,最好使用付费版的cpolar数据隧道。

使用VNC远程连接Ubuntu - 内网穿透实现公网远程办公

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎大家通过各种方式提供素材。

  • 对于文章中出现的任何错误请大家批评指出,一定及时修改。
  • 有任何想要讨论和学习的问题可联系我:zhuyc@vip.163.com。
  • 发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。

使用VNC远程连接Ubuntu - 内网穿透实现公网远程办公

本文关键字:cpolar、Ubuntu、VNC、内网穿透、远程连接

文章目录


一、VNC配置

实现ubuntu系统桌面级别的远程连接,需要在ubuntu 系统中安装VNC。既然是桌面,前提是需要ubuntu 带有图形化界面,如果没有,可以执行以下命令安装图形化界面:

sudo apt install ubuntu-desktop 

sudo apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal 

sudo reboot #重启即可看到图形界面

1. Ubuntu安装VNC

在ubuntu中安装VNC:

sudo apt-get install x11vnc

安装LightDM【LightDM从设计上就是支持本地图形界面以获得最好的兼容性】:

sudo apt-get install lightdm

安装过程中会出现以下选项,选择lightdm然后回车即可

设置密码,设置密码后,会问你是否需要将密码保存在:/home/root1/.vnc/passwd,输入y确认即可

x11vnc -storepasswd

2. 设置VNC开机启动

  • 创建一个x11vnc.service文件
sudo vim /lib/systemd/system/x11vnc.service

i键进入编辑模式,添加如下信息,!!注意: <USERNAME>替换为自己ubuntu用户名,添加完成后按Esc键退出编辑,然后输入冒号:wq保存

[Unit]
Description=Start x11vnc at startup.
After=multi-user.target
 
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/<USERNAME>/.vnc/passwd -rfbport 5900 -shared
 
[Install]
WantedBy=multi-user.target

  • 设置开机启动
sudo systemctl enable x11vnc.service
  • 启动服务
sudo systemctl start x11vnc.service

二、客户端连接

1. VNC Viewer

以Windows系统为例,安装VNC Viewer连接工具,进入VNC官网,下载Windows版VNC连接工具

https://www.realvnc.com/en/connect/download/viewer/

2. 远程连接测试

  • 下载好后打开使用局域网ip进行连接,端口是5900

  • 出现密码界面,输入上面设置的密码即可

  • 出现ubuntu桌面表示成功

三、内网穿透

本地测试远程连接没问题后,接下来实现在公网环境下连接远程桌面,这里使用cpolar内网穿透工具实现程访问。支持http/https/tcp协议,不限制流量,无需公网ip,也无需设置路由器。

cpolar官网:https://www.cpolar.com/

1. 安装cpolar【支持脚本一键安装】

在Ubuntu系统中继续执行操作:

  • cpolar 安装(国内使用)
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 或 cpolar短链接安装方式:(国外使用)
curl -sL https://git.io/cpolar | sudo bash
  • 查看版本号,有正常显示版本号即为安装成功
cpolar version
  • token认证

登录cpolar官网后台,点击左侧的验证,查看自己的认证token,之后将token贴在命令行里

cpolar authtoken xxxxxxx

  • 简单穿透测试,有正常生成相应的公网地址即为穿透成功
cpolar http 8080

按ctrl+c退出

  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar
  • 查看服务状态
sudo systemctl status cpolar

2. 创建隧道映射

cpolar安装成功后,在浏览器上访问本地9200端口,【127.0.0.1:9200],使用cpolar邮箱账号登录 web UI管理界面。

登录成功后,点击左侧仪表盘的隧道管理——创建隧道,创建一个tcp协议的隧道指向本地5900端口:

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复
  • 协议:tcp
  • 本地地址:5900
  • 域名类型:免费选择随机域名
  • 地区:默认China top即可

点击创建


隧道创建成功后,点击左侧的状态——在线隧道列表,可以看到,刚刚创建的隧道已经有生成了相应的公网地址+公网端口号,将其复制下来

3. 测试公网远程访问

打开Windows VNC Viewer,使用刚刚所获取的公网地址+公网端口号进行连接。本例为2.tcp.vip.cpolar.cn:13001

  • 输入密码
  • 公网远程连接成功

四、配置固定TCP【可选】

由于以上创建的隧道是随机地址隧道,该地址会在24小时内变化,为了使连接更加稳定,可以将其配置为固定的TCP地址。

注:配置固定TCP端口地址需要将cpolar升级到专业版套餐或以上。

1. 保留公网TCP端口地址

登录cpolar官网后台,点击左侧的预留,选择保留的TCP地址。

  • 地区:选择China VIP
  • 描述:即备注,可自定义填写

点击保留

地址保留成功后,系统会生成相应的固定公网地址,将其复制下来

2. 配置固定公网TCP端口地址

在浏览器上登录cpolar web UI管理界面,http://127.0.0.1:9200/,点击左侧仪表盘的隧道管理——隧道列表,找到前面创建的VNC远程隧道,点击右侧的编辑:

修改隧道信息,将新保留的固定TCP地址配置到隧道中

  • 端口类型:修改为固定tcp端口
  • 预留的tcp地址:填写保留成功的地址

点击更新

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,找到VNC远程桌面隧道,可以看到公网地址已经更新成为了固定TCP地址。

3. 测试固定公网地址远程连接

接下来测试使用固定TCP端口地址远程Ubuntu桌面,在Windows上打开VNC Viewer,使用固定TCP地址连接,出现密码界面,输入密码:

  • 远程连接成功:

五、小结

至此,可以成功实现使用VNC远程连接Ubuntu:通过cpolar穿透VNC服务5900端口,使用所生成的公网地址,实现在外随时随地远程控制内网的Ubuntu,不需要公网IP,也不需要配置路由器。并且,这个公网地址是固定的,不会随机变化,连接稳定。
除了穿透VNC之外,cpolar也可以应用在其他众多场景下,比如公网SSH远程、远程群晖NAS、我的世界联机、微信公众号支付宝调试、公开一个本地Web…【PS:cpolar目前还支持21天退款保证】

扫描下方二维码,加入CSDN官方粉丝微信群,可以与我直接交流,还有更多福利哦~

以上是关于Ubuntu使用vnc远程桌面远程内网穿透的主要内容,如果未能解决你的问题,请参考以下文章

使用VNC远程连接Ubuntu - 内网穿透实现公网远程办公

Windows通过RDP异地远程桌面Ubuntu内网穿透

ubuntu VNC远程连接

用FRP做内网穿透使用远程桌面连接家里的windows电脑

5 分钟,使用内网穿透快速实现远程桌面

使用 FastTunnel 做内网穿透远程计算机桌面服务器