一直用TeamViewer远程访问电脑,这款软件感觉非常好用方便,但是但是突然出现了一条消息:
整个人都不好了
虽然后面说是误报,但还是把TeamViewer卸载了,准备利用VNC+frp自己搭建一个远程访问。我们可以有两种搭建方式:一种是有公网服务器搭建,另一种是无公网服务器搭建。
首先了解一下frp是什么?
frp是一个可用于内部网穿透的高级反向代理应用程序,支持tcp,udp协议,为http和https应用协议提供了额外的能力,并且尝试性支持了点对点穿透。
登录公网服务器下载frp,frp下载地址:https://github.com/fatedier/frp/releases
找到对应版本下载
(注:可以输入arch,查看cpu架构,云服务和Ubuntu16.0.4都是x86_64处理器架构,所以下载amd64的包)
这里下载的是当前更新的最新版frp_0.29.0_linux_amd64.tar.gz
wget https://github.com/fatedier/frp/releases/download/v0.29.0/frp_0.29.0_linux_amd64.tar.gz
下载完之后进行解压:
tar -xzvf frp_0.29.0_linux_amd64.tar.gz
cd frp_0.29.0_linux_amd64
sudo nano frps.ini
参考frps_full.ini,添加一下内容:
[common]
bind_port = 7000
token = 12345678
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
max_pool_count = 5
log_file = ./frps.log
log_level = info
log_max_days = 3
保存,退出。
把云服务器的7000,7500等相应的端口放行。我这里的后台管理端口是7600,不是上面的 7500。
在当前目录下运行frps:
nohup ./frps -c ./frps.ini &
查看7600端口是否在监听
netstat -ap | grep 7600
#云服务器公网ip + 7600
http://x.x.x.x:7600
记得x.x.x.x替换为自己公网ip地址,提示输入账户密码,默认admin
界面是这样的:
至此,服务端frp部署成功了
这里操作的Ubuntu系统版本是16.0.4
搜索出桌面共享,输入sharing
点击打开“Desktop Sharing”,勾选如下配置:
下载frp_0.29.0_linux_amd64.tar.gz,解压后打开frpc.ini
tar -xzvf frp_0.29.0_linux_amd64.tar.gz
cd frp_0.29.0_linux_amd64
sudo nano frpc.ini
添加一下内容:
[common]
server_addr = x.x.x.x
server_port = 7000
token = 12345678
[ubuntu-ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 8085
[ubuntu-vnc]
type = tcp
local_ip = 127.0.0.1
local_port = 5900
remote_port = 5910
x.x.x.x要替换为自己的公网ip
在当前目录下运行frpc.ini文件:
nohup ./frpc -c ./frpc.ini &
打开Ubuntu的/etc/rc.local开机启动文件:
sudo nano /etc/rc.local
添加自己的文件启动路径:
nohup x/x/frpc -c x/x/frpc.ini &
x/x/需要替换掉,如果不知道frpc路径,可以
pwd
这里用的是树莓派3b+
下载的是arm文件:
下载后解压,同样是打开frpc.ini文件:
sudo nano frpc.ini
和上面Ubuntu配置frpc一样,只是改了端口和名称,箭头所示:
记得云服务器上开放相应端口段,如:5900-6000,22, 80等。
加入开机启动:
刚开始尝试了直接在 rc.local里启动frpc失败。
参考这篇博文:https://blog.csdn.net/zmy12007/article/details/84642081,树莓派开机后让frpc.ini延迟启动即可
sudo nano startfrpc.sh
添加一下内容:
#/bin/bash
cd /home/pi/frp_0.29.0_linux_arm
echo "start frpc from shell" >> ./log.txt
sleep 15s
nohup ./frpc -c ./frpc.ini &
sudo chmod +x startfrpc.sh
接着打开rc.local文件
sudo nano /etc/rc.local
添加如下内容:
echo "start rc.local" > /home/pi/rc.log
nohup /bin/bash /home/pi/startfrpc.sh &
sudo reboot
这里用win10系统连接Ubuntu和树莓派
5.1 远程连接Ubuntu
vnc连接:
到官网下载vnc:https://www.realvnc.com/en/connect/download/viewer/相对应版本的vnc viewer
下载后安装,打开VNC Viewer软件
输入 公网ip + 端口号
这个密码是Ubuntu桌面共享时配置的密码,输入密码后确定,这样就完成了远程了连接
ssh连接:
ssh -oPort=8085 [email protected]
端口8085,ubuntu 为用户名 ,x.x.x.x为公网ip
此时,出现了错误:
ssh_exchange_identification: Connection closed by remote host
查看ssh是否安装:
sudo ps -e |grep ssh
sudo apt-get update
sudo apt-get install openssh-server
再次查看sudo ps -e |grep ssh是否安装
出现了sshd,说明安装成功了。
再次尝试ssh:
出现了错误“ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
”,打开C:\Users\Administrator\.ssh
下文件,用记事本打开known_hosts,删除选中的部分
再试一下,输入ubuntu登录密码成功:
5.2 远程连接树莓派
reboot
重启后右上角会出现vnc图标,单击图标打开,选择Option选项
安全项,进行访问密码配置,记住密码
在win10上,打来VNC Viewer软件,输入公网ip+端口
,再输入访问密码
远程访问成功
ssh连接:
ssh -oPort=8086 [email protected]
端口8086,pi为用户名 ,x.x.x.x为公网ip
ssh连接成功!
推荐这种搭建,方便快捷。注意:这里通过win10远程访问Ubuntu和树莓派,win10安装VNC Viewer ,而Ubuntu和树莓派安装的是VNC Server。当然Ubuntu和树莓派也可以安装VNC Viewer来远程访问其它设备,根据自己需求来。
首先在ubuntu 上安装VNC Server。
可以到官网下载:https://www.realvnc.com/en/connect/download/vnc/linux/
找到相对应的版本。
或者通过命令下载安装:
wget https://www.realvnc.com/download/file/vnc.files/VNC-Server-6.4.1-Linux-x64.deb
安装:
sudo dpkg -i VNC-Server-6.4.1-Linux-x64.deb
ps aux|grep vnc
sudo apt-get purge realvnc-vnc-server
卸载vnc viewer:
sudo apt-get purge realvnc-vnc-viewer
在图形界面搜索VNC Server,输入Ubuntu管理员密码并打开
右上角会有个图标,右击选择Licensing...
打开
弹出一个注册界面,没有VNC账号先注册一个
输入账号密码,点击sign in
,出现如下界面:
上图中填写的密码是你远程连接时候用到的密码,即远程连接密码
,不能和vnc账户密码相同,填写一下,点击下一步,选择家庭订阅非商业用途(Home subscription
),接着点击next,起个名字,我这里是ubuntu
,接着点击完成即可。
接下来我们用win10远程连接乌班图,打开win10上的VNC Viewer
登录VNC账号,在地址栏中直接输入ubuntu
,输入远程连接的密码
这样就连接上了,随时随地的访问远程电脑了。
和ubuntu基本类似步骤,树莓派好的一点是已经预装的有vnc server了。
可以参考上面搭建方式一中的步骤打开树莓派的VNC
选择第一项,下一步
设置访问名字,可以看到已经有一个存在了。
点击Apply。完成退出
在win10中的VNC Viewer 中登录账号就看到了要访问的树莓派。
如果不想那么费事,或者没有云服务器的,还是推荐第二种搭建方式,整体体验上比第一种要流畅一些。
Reference:
https://help.realvnc.com/hc/en-us/categories/360000301637-Documentation