Ubuntu18.04.2LTS配置vnc+frp内网穿透实现桌面远程访问
条评论之前使用Teamviewer来远程电脑,更新之后老是提示被商用,无奈,寻求其他方案如anyDesk、向日葵远程控制、splashtop、VNC。
frp项目地址:https://github.com/fatedier/frp
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp,http 和 https协议。
VNC,全称为Virtual Network Computing,它是一个桌面共享系统。功能,类似于windows中的远程桌面功能。VNC与Windows远程桌面一样是使用RFB(Remote FrameBuffer,远程帧缓冲)协议来实现远程控制另外一台计算机。
目的
本文介绍的是在Ubuntu 18.04.2LTS Bionic Beaver上开启VNC服务端并frp穿透内网实现远程桌面共享。
环境
- 操作系统 Ubuntu 18.04.2LTS Bionic Beaver(x86_64)
- 云服务器(公网ip地址)
注意事项
#
-要求使用root权限直接以root用户使用命令或对执行的命令使用linuxsudo
$
-要求给定的linux命令作为常规非特权用户执行
Step 1 启用远程桌面共享
首先查看下Ubuntu系统上是否安装远程桌面共享,没有的话就执行安装:
1 | sudo apt update && sudo apt install -y vino |
使用Activities
菜单搜索Sharing
可以在Settings
部分看到选项,直接打开它,或者以命令行的方式打开
1 | gnome-control-center sharing |
单击Screen Sharing以开始远程桌面配置
将开关打开为ON
,可以选择设置密码并记住你设置的密码,后面连接的时候要用密码。
Allow connections to control the screen
选项使远程用户能够主动与远程桌面交互。如果未选中此选项,则远程桌面会话将设置为只读。
启用Ubuntu的远程桌面功能后,可以看到系统正在侦听端口5900
如果您启用了UFW防火墙,请打开5900
端口
类似于:
1 | sudo ufw allow from any to any port 5900 proto tcp |
Step 2 建立远程桌面连接
我们将在Ubuntu 18.04系统上使用Remmina远程桌面客户端,如果没有先安装一个,打开Ubuntu Software
搜索remmina
安装或者命令行方式安装:
1 | sudo apt install remmina |
使用Activities
菜单搜索并启动Remmina远程桌面客户端或运行命令行
1 | remmina |
从下拉菜单中选择协议VNC
,然后输入Ubuntu远程桌面系统的主机名或IP地址,按下Enter
键即可连接.
输入前面设置的密码确认连接。
连接成功,是这个样子。
远程桌面共享连接成功。你也可以使用Remmina面板进一步调整远程桌面连接设置。
好了,到了这一步已经确认我们Ubuntu18.04系统的桌面共享服务已经安装好了。这意味着你将可以与你局域网内的机器实现桌面共享,接下来,使用frp实现内网穿透,对外网提供服务,随时随地可以使用网络远程桌面到Ubuntu 18.04。
Step 3 配置frp实现内网穿透
首先下载frp二进制文件 https://github.com/fatedier/frp/releases
根据处理器架构选择对应压缩包
- Windows 64位 :frp_版本号_windows_amd64.zip
- Windows 32位:frp_版本号_windows_386.zip
- Linux 64位:frp_版本号_linux_amd64.tar.gz
- Linux 32位:frp_版本号_linux_386.tar.gz
注意:从0.18.0版本开始,新版与旧版不兼容,并且部分配置字段不同。请确保服务端和客户端使用同一版本。
下载程序
我这里云服务器和Ubuntu18.04都是x86_64
架构的,所以我下载linux_amd64
的压缩包
下面以x84_64
处理器架构举例, 此时frp 最新版是v0.27.0
1 | 查看cpu架构 |
如果有报错
-bash: ./frps: cannot execute binary file: Exec format error
就说明你下错版本
配置程序
服务端配置参考frps_full.ini
客户端配置参考frpc_full.ini
服务端 -frps.ini
1 | 下面这句开头必须要有,表示配置的开始 |
这是我的服务端-frps.ini的配置
1 | [common] |
客户端 -frpc.ini
1 | ########################################### |
这是我的客户端-frpc.ini的配置
1 | [common] |
服务器端运行启动
1 | nohup /root/frp/frps -c /root/frp/frps.ini & |
客户端(Ubuntu18.04)启动
1 | nohup /home/xmaihh/frp/frpc -c /home/xmaihh/frp/frpc.ini & |
停止
1 | pkill frps 或者 pkill frpc |
云服务器注意放行相关端口.
开机启动
自启动可以修改/etc/rc.local
文件,加入启动命令
或者其他系统自行设置。
1 | !/bin/sh -e |
建立远程连
请注意remote_port = 5900
我把Ubuntu18.04的VNC Sharing端口5900
映射到云服务器的5900
端口,建立连接时,连接你的服务器+服务器端口号
。
这里我使用手机开数据网络,关闭WIFi,下载VNC Viewer
客户端来一下远程连接。
打开手机VNC Viewer
,点击+
,在Address
处填入 ip+端口形式 xxx.xxx.xxx.xxx::5900
或者 域名+端口形式 example.com::5900
。
点击进行下一步输入密码以看到画面了。
Issues
No matching security types
VNC客户端不支持加密。任何连接到远程桌面共享服务器的尝试都将导致No matching security types
错误
如果遇到这个错误,请按照以下步骤解决:
- 安装
dconf
工具
1 | sudo apt-get install dconf-tools |
- 打开
dconf-editor
1 | dconf-editor |
依次切换到org->gnome->desktop->remote-access
并将require-encryption
项目关闭。
- 执行
1 | gsettings set org.gnome.Vino require-encryption false |
如果输出警告:
GLib-GIO-Message: 10:19:43.137: Using the 'memory' GSettings backend. Your settings will not be saved or shared with other applications.
可以先执行export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules/
然后再执行3。
- 确认已禁用远程服务器上的加密
1 | gsettings list-recursively org.gnome.Vino | grep encrypt |
Reference
How To Enable Desktop Sharing In Ubuntu and Linux Mint
内网穿透神器搭建 萌新也看得懂的教程系列
本文标题:Ubuntu18.04.2LTS配置vnc+frp内网穿透实现桌面远程访问
文章作者:xmaihh
发布时间:2019-07-10
最后更新:2019-07-10
版权声明:采用[CC BY-NC-SA 4.0许可协议]进行许可
分享