树莓派3b内网穿透Frp实战连接VNC(超简单)

在家用树莓派做了个小东西,想穿透内网,查了很久的资料,最终用frp来实现。

1、准备材料

  • 树莓派
  • 公网IP服务器(我这里使用了公司的Ubuntu)

2、服务器安装Frp

下载一键部署脚本
$sudo wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh -O ./install-frps.sh
分配权限
$sudo chmod 700 ./install-frps.sh
安装 FRP 服务端
$sudo ./install-frps.sh install

安装过程如下:

$ ./install-frps.sh install

Please select frps download url:
[1].aliyun (default)
[2].github
Enter your choice (1, 2 or exit. default [aliyun]):
---------------------------------------
Your select: aliyun
---------------------------------------
Loading network version for frps, please wait...
frps Latest release file frp_0.15.1_linux_amd64.tar.gz
Loading You Server IP, please wait...
You Server IP:12.34.56.78
Please input your server setting:

Please input frps bind_port [1-65535](Default Server Port: 5443):7000
frps bind_port: 7000

Please input frps vhost_http_port [1-65535](Default vhost_http_port: 80):8080
frps vhost_http_port: 8080

Please input frps vhost_https_port [1-65535](Default vhost_https_port: 443):
frps vhost_https_port: 443

Please input frps dashboard_port [1-65535](Default dashboard_port: 6443):7500
frps dashboard_port: 7500

Please input dashboard_user (Default: admin):
frps dashboard_user: admin

Please input dashboard_pwd (Default: IY0p1bOg):admin
frps dashboard_pwd: admin

Please input privilege_token (Default: 9BqswPpd1R0TfGR5):mike
frps privilege_token: mike

Please input frps max_pool_count [1-200]
(Default max_pool_count: 50):
frps max_pool_count: 50

##### Please select log_level #####
1: info (default)
2: warn
3: error
4: debug
#####################################################
Enter your choice (1, 2, 3, 4 or exit. default [1]):
log_level: info

Please input frps log_max_days [1-30]
(Default log_max_days: 3 day):
frps log_max_days: 3

##### Please select log_file #####
1: enable (default)
2: disable
#####################################################
Enter your choice (1, 2 or exit. default [1]):
log_file: enable

##### Please select tcp_mux #####
1: enable (default)
2: disable
#####################################################
Enter your choice (1, 2 or exit. default [1]):
tcp_mux: true

##### Please select kcp support #####
1: enable (default)
2: disable
#####################################################
Enter your choice (1, 2 or exit. default [1]):
kcp support: true

============== Check your input ==============
You Server IP : 12.34.56.78
Bind port : 7000
kcp support : true
vhost http port : 8080
vhost https port : 443
Dashboard port : 7500
Dashboard user : admin
Dashboard password : admin
Privilege token : mike
tcp_mux : true
Max Pool count : 50
Log level : info
Log max days : 3
Log file : enable
==============================================

Press any key to start...or Press Ctrl+c to cancel

frps install path:/usr/local/frps
config file for frps ... done
download frps ... done
download /etc/init.d/frps... done
setting frps boot... done

+--------------------------------------------------+
| Manager for Frps, Written by Clang |
+--------------------------------------------------+
| Intro: http://koolshare.cn/thread-65379-1-1.html |
+--------------------------------------------------+

Starting Frps(0.15.1)... done
Frps (pid 3325)is running.

+---------------------------------------------------------+
| frps for Linux Server, Written by Clang |
+---------------------------------------------------------+
| A tool to auto-compile & install frps on Linux |
+---------------------------------------------------------+
| Intro: http://koolshare.cn/thread-65379-1-1.html |
+---------------------------------------------------------+

Congratulations, frps install completed!
==============================================
You Server IP : 12.34.56.78
Bind port : 7000
KCP support : true
vhost http port : 8080
vhost https port : 443
Dashboard port : 7500
Privilege token : mike
tcp_mux : true
Max Pool count : 50
Log level : info
Log max days : 3
Log file : enable
==============================================
frps Dashboard : http://12.34.56.78:7500/
Dashboard user : admin
Dashboard password : admin
 
3、Frp服务端相关操作命令
$sudo ./install-frps.sh config 更新 FRP 服务端
$sudo ./install-frps.sh update 更新 FRP 服务端
$sudo ./install-frps.sh uninstall 卸载FRP 服务端
FRP 服务端安装完成后,一键部署脚本还提供了一个日常管理 FRP 服务端的管理脚本来进行日常的启动、重启、停止等操作,非常的方便。
$sudo /etc/init.d/frps  { start | stop | restart | status | config | version }
安装完成后可以打开控制面板查看连接状态,frps 面板 : http://12.34.56.78:7500(ip改为自己的服务器ip)
 
4、frp客户端安装(树莓派3b)
选择适合树莓派使用的版本:https://github.com/fatedier/frp/releases
我这里选择0.20.0版本(一定要选arm版本,上面的脚本只适合centos、ubuntu安装)
#下载
$sudo wget https://github.com/fatedier/frp/releases/download/v0.20.0/frp_0.20.0_linux_arm.tar.gz
#解压
$sudo tar -zxvf frp_0.20.0_linux_arm.tar.gz
$cd frp_0.20.0_linux_arm
$sudo nano frpc.ini

#写入如下配置信息(记得删掉我注释的文字)
[common]
server_addr = 填写你的服务器ip
server_port = 7000 #服务器绑定的端口号 (Bind port)
token = mike #服务器填写的token,一定要与服务器一致,否则会连接失败

[VNC]
type = tcp
local_ip = 127.0.0.1
local_port = 5900 #vnc端口号
remote_port = 5900 #远程端口(vnc远程的端口,如有多个设备,可以用不同的端口号区分)

#ctrl+o保存,ctrl+x退出
#使用命令测试是否正常启动
$sudo ./frpc -c ./frpc.ini

#成功你会看到类似如下信息
 [I] [proxy_manager.go:300] proxy removed: []
 [I] [proxy_manager.go:310] proxy added: [VNC]
 [I] [proxy_manager.go:333] visitor removed: []
 [I] [proxy_manager.go:342] visitor added: []
 [I] [control.go:246] [32842bb84c4f06bb] login to server success, get run id [32842bb84c4f06bb], se
 [I] [control.go:169] [32842bb84c4f06bb] [VNC] start proxy success
 
刷新你的frps面板,你会发现Tcp菜单中有一台主机上线了,这样我们就成功穿透内网啦!!!
 
5、树莓派开机启动Frpc
$sudo nano /lib/systemd/system/frpc.service

#写入一下配置(记得删掉我注释的文字)
[Unit]
Description=frapc service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/home/pi/frp_0.20.0_linux_arm/frpc -c /home/pi/frp_0.20.0_linux_arm/frpc.ini 

#安装目录中frpc和frps,我们客户端使用frpc就可以了,frpc.ini配置文件也一样 [Install] WantedBy=multi-user.target #ctrl+o保存,ctrl+x退出

 

6、然后启动Frp

$sudo systemctl start frpc

打开自启动(不推荐使用,因为会遇到网络还没连接,服务启动失败的情况,我们使用启动文件延迟启动)

$sudo systemctl enable frpc

关闭自启动

$sudo systemctl disable frpc

打开启动文件添加启动脚本,在exit 0前加入启动命令

$sudo nano /etc/rc.local

#加入以下代码
sleep 60 #延迟60秒执行
sudo systemctl start frpc #启动frpc服务
#(如果有多个脚本执行时一定要在后面加“&”符号)

重启,刷新Frp控制面板,查看主机状态。

7、客户端相关操作命令

重启服务:sudo systemctl restart frpc

停止服务:sudo systemctl stop frpc

查看日志:sudo systemctl status frpc

8、打开VNC客户端,测试连接!例如:12.34.56.78:9500

9、Windows 系统内网穿透实例

下载适用windows程序(最好跟自己使用的服务端对应):https://github.com/fatedier/frp/releases

frp_0.20.0_windows_386.zip 为 32 位版本

frp_0.20.0_windows_amd64.zip 为 64 位版本

解压后打开 frpc.ini,将其中的内容替换为以下代码,设置完成后保存文件(记得删掉我注释的文字)。

[common]
server_addr = 12.34.56.78 #服务器地址
server_port = 7000 #服务器绑定的端口号
token = mike #必须跟服务端一致

[VNC]
type = tcp
local_ip = 127.0.0.1
local_port = 5900
remote_port = 5902 #远程端口号,有多个设备的话不能相同

10、开机启动

在解压根目录新建脚本文件frpc.vbs,输入以下代码:

Set ws = CreateObject("Wscript.Shell")
   ws.run "cmd /c frpc.exe -c frpc.ini",vbhide

保存后创建快捷方式,拖动到windows开机启动。

双击快捷方式,查看Frp控制面板,Windows主机上线啦!!!(因为脚本加了隐藏命令,所有双击不会有任何提示或界面出现!)  

 

posted @ 2019-04-29 20:00  我是一只咩  阅读(1978)  评论(0编辑  收藏  举报