T O P
Image

Linux

Frp + VNC 远程控制树莓派桌面系

在具有公网IP的服务器上安装frps,树莓派上安装frpc,通过端口转发TCP协议,实现非局域网内远程控制。

  • By - C灵C

  • 2020年6月2日 23:20




服务器(server)端:


本文使用的是阿里云一台Centos7系统的服务器,所以要下载的frp为 amd64 格式的。

在这里可以找到frp的发布版本:

https://github.com/fatedier/frp/releases


frp 的服务器端,一般名字是 frps,对应的配置文件即为 frps.ini

# 在项目发布页面获得最新版本的下载地址
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
# 解压.
tar -zxvf frp_0.33.0_linux_amd64.tar.gz
# cd 到 frp 目录.
cd frp_0.33.0_linux_amd64
# 编辑配置文件
vim frps.ini

 

在 frps.ini 中输入:

[common]
bind_port = 7000
dashboard_port = 18001  # 管理面板使用的端口,自定义
dashboard_user = coc  # 管理面板的用户名,自定义
dashboard_pwd = cocpy.com  # 管理面板的用户密码,自定义
privilege_token =  cocpy@.com  # 身份验证,须于客户端相同,自定义


然后,开启 frps 即可:

nohup ./frps -c ./frps.ini &




客户(customer)端:


本文使用的是一台Raspbian系统的树莓派,版本代号为Buster,所以应该下载arm(32位)格式的frp

frp 的客户端,一般名字是 frpc,对应的配置文件即为 frpc.ini

# 客户端下载frp
wget 
# 解压
tar -zxvf frp_0.33.0_linux_arm.tar.gz
# cd 到 frp 目录.
cd frp_0.33.0_linux_arm
# 编辑客户端配置文件
vim frpc.ini


在frpc.ini中输入:

[common]
server_addr = 122.178.236.234  # 公网服务器IP地址
server_port = 7000  # 公网服务器绑定的端口
privilege_token = cocpy@.com  # 服务端使用的token
login_fail_exit = false  # 登陆失败是否退出

[ssh]  # SSH服务名称
type = tcp  # 使用的协议类型
local_ip = 127.0.0.1  # 本机IP地址
local_port = 22  # 本地使用SSH的端口号
remote_port = 16000  # 公网服务器上转发的端口

[ssh-vnc]  # VNC服务名称
type = tcp
local_ip = 127.0.0.1
local_port = 5900  # 本地使用VNC的端口
remote_port = 15900


然后,开启 frpsc即可:

nohup ./frpc -c ./frpc.ini &




第三方访问:


配置好SSH服务后,需要在具有公网IP的服务器上开启7000、18001、15900和16000端口,如果树莓派设置了ufw还需要开启22和5900端口。

然后使用SSH软件,输入主机地址和端口号即可访问,如下图所示,在登录用户是使用的是客户端(即树莓派)上的用户名和密码。


或者,也可以使用VNC软件进行登录,这里要特别注意在 VNC Server处要输入公网IP地址和VNC转发的端口号,例:“122.178.236.234:15900”,如下图所示。

frppissh-new.png

也可以使用SSH命令直接登录

ssh -oPort=转发的端口 客户端用户名称@服务端公网IP地址
ssh -oPort=16000 pi@122.178.236.234




开机自启:


服务端和客户端开启方法相同

# 编辑etc下rc.local文件

vim /etc/rc.local


在exit 0前加一行命令:

nohup frpc或frps的绝对路径 -c frpc或frps的ini配置文件的绝对路径 &

nohup  /home/pi/App/Frp/frp_0.33.0_linux_arm/frpc -c  /home/pi/App/Frp/frp_0.33.0_linux_arm/frpc.ini &