树莓派3B+安装frp内网穿透,公网访问树莓派

硬件准备

  • 树莓派
  • 域名+有公网IP的服务器(网上有免费的frp服务器提供)
  • 电脑+路由器

1、更改密码

把树莓派连接路由器,用IPscanner找到树莓派的ip地址,使用putty通过SSH连接。
默认用户名为:pi
密码为:raspberry

更改登陆密码

1
passwd

设置root账户的密码

1
sudo passwd root

2、安装 Systemd(树莓派和服务器都要执行一遍)

1
2
3
4
5
6
7
8
9
apt-get update

su     #登陆为root账户

apt-get install nano

apt-get install systemd

apt-get install systemd-sysv

3、搭建frp 服务端 – frps(服务器篇)

frp最新版本releases,这里我用Ubuntu16.04 64位服务器演示。

1
2
3
4
5
6
7
8
9
wget https://github.com/fatedier/frp/releases/download/v0.29.0/frp_0.29.0_linux_amd64.tar.gz

tar -zxvf frp_0.29.0_linux_amd64.tar.gz

sudo rm -rf frp_0.29.0_linux_amd64.tar.gz

cd frp_0.29.0_linux_amd64

nano frps.ini     #替换为以下内容,并自行修改相关参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[common]
bind_addr = 0.0.0.0
bind_port = 7000
bind_udp_port = 7001
kcp_bind_port = 7000
dashboard_port = dashboard_port_number
dashboard_user = dashboard_user_name
dashboard_pwd = dashboard_pwd_value
privilege_token = privilege_token_value
vhost_http_port = 88  #建议不要用80端口
vhost_https_port = 448  #建议不要用443端口
log_file = ./frps.log
log_level = info
log_max_days = 3
max_pool_count = 20
tcp_mux = true
max_ports_per_client = 0
authentication_timeout = 900

按下Ctrl+X,输入Y并回车保存

配置开机自启

1
2
3
4
5
6
7
8
9
10
11
cp frps /usr/local/bin/frps

mkdir /etc/frp

cp frps.ini /etc/frp/frps.ini

cd ..

sudo rm -rf frp_0.29.0_linux_amd64

nano /usr/lib/systemd/system/frps.service      #将下面代码复制粘贴进去
1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=frps
After=network.target

[Service]
TimeoutStartSec=30
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.ini
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

按下Ctrl+X,输入Y并回车保存

设置开机自启

1
2
3
systemctl enable frps
systemctl start frps
systemctl status frps

部分服务器上,可能需要加 .service 后缀来操作,即:

1
2
3
systemctl enable frps.service
systemctl start frps.service
systemctl status frps.service

搭建完成之后重启

1
sudo reboot

访问控制台

在浏览器输入以下网址,即可访问frp的控制台

1
http://服务器IP:dashboard_port_number

4、搭建 frp 客户端 – frpc(树莓派篇)

frp最新版本releases,这里我用树莓派3B+ raspbian 32位演示。

1
2
3
4
5
6
7
8
9
10
11
su     #输入root账户密码切换为root用户

wget https://github.com/fatedier/frp/releases/download/v0.29.0/frp_0.29.0_linux_arm.tar.gz

tar -zxvf frp_0.29.0_linux_arm.tar.gz

sudo rm -rf frp_0.29.0_linux_arm.tar.gz

cd frp_0.29.0_linux_arm

nano frpc.ini       #替换为以下内容,并自行修改相关参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[common]
server_addr = your_server_ip
server_port = 7000
privilege_token = privilege_token_value
protocol = tcp
use_encryption = true
use_compression = true
log_file = ./frpc.log
log_level = info
log_max_days = 3
tcp_mux = true
login_fail_exit = false

[raspberrypi]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = your_domain

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 222

按下Ctrl+X,输入Y并回车保存

配置开机自启

1
2
3
4
5
6
7
8
9
10
11
cp frpc /usr/local/bin/frpc

mkdir /etc/frp

cp frpc.ini /etc/frp/frpc.ini

cd ..

sudo rm -rf frp_0.29.0_linux_arm

nano /usr/lib/systemd/system/frpc.service      #将下面代码复制粘贴进去
1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=frpc
After=network.target

[Service]
TimeoutStartSec=30
ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.ini
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

按下Ctrl+X,输入Y并回车保存

设置开机自启

1
2
3
systemctl enable frpc
systemctl start frpc
systemctl status frpc

部分服务器上,可以需要加 .service 后缀来操作,即:

1
2
3
systemctl enable frpc.service
systemctl start frpc.service
systemctl status frpc.service

搭建完成之后重启

1
sudo reboot
36