树莓派内网穿透实践
设备:
1、树莓派4
2、云主机一台,有公网ip的那种;(本人是企鹅家的云主机,搞活动买的),系统为CentOS 7.5
frp github地址:https://github.com/fatedier/frp/releases
frp github中文文档地址:https://github.com/fatedier/frp/blob/master/README_zh.md
树莓派安装包:https://github.com/fatedier/frp/releases/download/v0.32.1/frp_0.32.1_linux_arm.tar.gz
CentOS安装包:https://github.com/fatedier/frp/releases/download/v0.32.1/frp_0.32.1_linux_amd64.tar.gz
一、Server端配置
1、创建frp程序目录:
mkdir -pv /usr/local/frp
2、解压frp_0.32.1_linux_amd64.tar.gz到frp目录:
tar -xvf frp_0.32.1_linux_amd64.tar.gz -C /usr/local/frp
3、编辑/usr/local/frp/frps.ini:
[common]
#frps监听的frp服务端口和web端口
bind_port = 200
vhost_http_port = 90
#授权码,建议加上
token = hao123
#frp管理后台配置
dashboard_port = 81 #管理端口自定义
dashboard_user = zhang
dashboard_pwd = 123456
enable_prometheus = true
#frp日志配置
log_file = /var/log/frp/frps.log
log_level = info
log_max_days = 3
4、启动server端程序:
临时启动: ./frps -c ./frps.ini
配置启动文件:
在/usr/lib/systemd/system/目录或者/etc/systemd/system/目录下创建frps.service
[Unit]
Description=frpc
After=syslog.target network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
Restart= always
RestartSec=1min
[Install]
WantedBy=multi-user.target
启动命令
systemctl start frps.service 启动frps服务
systemctl reload frps.service 重载frps服务
systemctl restart frps.service 重启frps服务
systemctl stop frps.service 停止frps服务
加入开机启动项:systemctl enable frps.service
查看进程
frp server端web控制台展示
二、Client端配置
1、创建frp程序目录:
mkdir -pv /usr/local/frp
2、解压frp_0.32.1_linux_arm.tar.gz到frp目录:
tar -xvf frp_0.32.1_linux_arm.tar.gz -C /usr/local/frp
3、编辑配置文件/usr/local/frp/frpc.ini
[common]
server_addr = 117.xx.xxx.33 #公网服务器地址
server_port = 200 #远程server端端口
token = hao123 #跟server端保持一致
#frp日志配置
log_file = /var/log/frp/frpc.log
log_level = info
log_max_days = 3
[ssh]
type = tcp
local_ip = 192.168.0.52
local_port = 22
remote_port = 222
[web-gitlab]
type = http
custom_domains = www.zhidegitlab.cn
local_ip = 192.168.0.52
local_port = 80
[web-jenkins]
type = http
custom_domains = www.zhidejenkins.cn
local_ip = 192.168.0.52
local_port = 8080
4、启动client端程序:
临时启动: ./frpc -c ./frpc.ini
配置启动文件:
在/usr/lib/systemd/system/目录或者/etc/systemd/system/目录下创建frpc.service
[Unit]
Description=frpc
After=syslog.target network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini
Restart= always
RestartSec=1min
[Install]
WantedBy=multi-user.target
启动命令:
systemctl start frpc.service 启动frpc服务
systemctl reload frpc.service 重载frpc服务
systemctl restart frpc.service 重启frpc服务
systemctl stop frpc.service 停止frpc服务
加入开机启动项:systemctl enable frpc.service
测试:
ssh连接:ssh root@公网ip -p 222
web-gitlab访问:http://www.zhidegitlab.cn:90
web-jenkins访问:http://www.zhidejenkins.cn:90
如果自己的域名可以在公网上解析,则直接域名加端口访问就好,如果仅仅是自己玩,则在自己的电脑上hosts绑定访问即可;
最后,到这步,其实已经就实现了,内网穿透的功能,可以用ssh连接公网地址的222端口就能直接连接到树莓派了,通过90端口就可以访问树莓派的web服务,通过81端口可以访问frp server端的web控制台;frp还有其他功能,其他功能还是去开头的github中文文档学习;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!