回到顶部

Contents

树莓派 + frp + 公网服务器,实现自定义域名内网穿透,暴露内网服务在公网

认识 FRP

FRP 是 Fast Reverse Proxy 的缩写,一款支持 TCP/UDP 快速反向代理的开源软件,可以很方便的内网穿透。和花生壳、Ngrok 等不同,FRP 客户端和服务端的控制权都在自己手中,这也意味着你需要准备一台有公网IP 的 VPS 运行服务端程序。

参考文档

FRP 公网服务器配置

Linux VM_2_29_centos 3.10.0-514.26.2.el7.x86_64

下载对应版本:https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz

解压:

tar -zxvf rp_0.33.0_linux_amd64.tar.gz

移动到 /usr/local/frp:

mv rp_0.33.0_linux_arm64 /usr/local/frp

cd 到 /usr/local/frp:

cd /usr/local/frp

修改 frps.ini(云服务器要开放对应的端口,如我这使用的:7000 和 9000)

[common]
# 监听 frpc 的端口
bind_port = 7000
# 外网访问的端口
vhost_http_port = 9000

对于域名访问:

只要将域名解析到公网服务的 IP 即可。

启动 frps.ini:

./frps -c ./frps.ini

加入开机启动:

sudo vi /etc/systemd/system/frps.service
# /etc/systemd/system/frps.service
[Unit]
Description=frps
After=network.target
[Service]
TimeoutStartSec=30
WorkingDirectory=/usr/local/frp
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
Restart=on-failure
[Install]
WantedBy=multi-user.target
# 刷新服务
sudo systemctl daemon-reload
# 允许开机启动
sudo systemctl enable frps.service
# 运行服务
sudo systemctl start frps.service
# 查看状态
sudo systemctl status frps.service

FRP 树莓派端配置

Linux raspberrypi 4.19.118-v7l+ #1311 SMP Mon Apr 27 14:26:42 BST 2020 armv7l GNU/Linux

下载对应版本:https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_arm.tar.gz

修改 frpc.ini

[common]
# 公网服务器的 IP
server_addr = x.x.x.x
# 公网服务器监听的端口
server_port = 7000

[web]
# http 类型
type = http
# 本地 web 服务端口
local_port = 80
# 公网服务器的域名
custom_domains = zhuoqun.info

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

启动 frpc.ini:

./frpc -c frpc.ini 

启动日志:

root@raspberrypi:/usr/local/frp# ./frpc -c frpc.ini 
2020/06/07 01:00:06 [I] [service.go:282] [cebc77f32bea36db] login to server success, get run id [cebc77f32bea36db], server udp port [0]
2020/06/07 01:00:06 [I] [proxy_manager.go:144] [cebc77f32bea36db] proxy added: [web ssh]
2020/06/07 01:00:06 [I] [control.go:179] [cebc77f32bea36db] [web] start proxy success
2020/06/07 01:00:06 [I] [control.go:179] [cebc77f32bea36db] [ssh] start proxy success

加入开机启动:

sudo vi /etc/systemd/system/frpc.service
# /etc/systemd/system/frpc.service
[Unit]
Description=frpc
After=network.target
[Service]
TimeoutStartSec=30
WorkingDirectory=/usr/local/frp
ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini
Restart=on-failure
[Install]
WantedBy=multi-user.target
# 刷新服务
sudo systemctl daemon-reload
# 允许开机启动
sudo systemctl enable frpc.service
# 运行服务
sudo systemctl start frpc.service
# 查看状态
sudo systemctl status frpc.service

注意

如果提示:-bash: ./frpc:无法执行二进制文件: 可执行文件格式错误

那可能是:下载的 tar 跟系统不匹配,如:使用了 arm64 位的包

 


^_^
请喝咖啡 ×

前一篇: 树莓派安装 git, nginx, redis, supervisor, mariadb
下一篇: 树莓派启动 root 账户登录
captcha