现状:已实现家庭局域网访问home assistant控制设备
需求:实现外网访问home assistant,可在公司闲暇时配置home assistant
环境:home assistant(部署参考往期教程)、办公笔记本电脑
本期内网穿透需要公网IP服务器,没有的可以随便看一看哦(PS:现在双十一活动,各大云服务器厂商优惠还可以,有需求的可以去瞄一眼)
后面会出无公网IP内网穿透的教程
注:以下home assistant服务器简称客户端,公网IP服务器简称服务端
一、所需物料
1、frp物料包
(官网下载地址:https://github.com/fatedier/frp/releases)
本期演示的版本为frp_0.52.3
进入网址,有许多版本,我们该下载哪一个呢?
![](https://blog.ebancom.com/wp-content/uploads/2023/11/image.png)
windows的就不介绍了,amd的显卡下载amd64的就可以了
这里主要介绍linux版, 如何判断下载什么版本?
uname -a
lscpu
客户端:
![](https://blog.ebancom.com/wp-content/uploads/2023/11/image-1.png)
服务端:
![](https://blog.ebancom.com/wp-content/uploads/2023/11/image-2.png)
注意:客户端和服务端都需要下载frp物料包,若两者系统系统不同需要下载不同的安装包
以我的为例:
客户端下载frp_0.52.3_linux_arm.tar.gz
服务端下载frp_0.52.3_linux_amd64.tar.gz
客户端和服务端若访问GitHub速度很快,可直接在服务器里下载,如:
wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz
可能部分同学官网下载很慢很慢,友情提供官方frp_0.52.3各版本的物料包,大家自行下载需要的版本(可回复:frp,获取链接及提取码)
![](https://blog.ebancom.com/wp-content/uploads/2023/11/image-3.png)
2、公网IP服务器
3、域名(可有可无)
有域名的话,做一下域名解析到公网IP服务器。
有无域名,有何区别?有域名可域名+端口号访问业务,无域名用公网IP+端口号访问业务。
二、服务端配置frp
1、上传文件至服务端
可传至服务端任意位置,无需按照我的路径
cd /home
rz
2、解压文件
tar -zxvf frp_0.52.3_linux_amd64.tar.gz
cd frp_0.52.3_linux_amd64/
#这里是服务端,可删除frpc相关文件,以免混淆
rm frpc* -rf
3、配置frps.toml
可参考官方教程(https://github.com/fatedier/frp)
vim frps.toml
#粘贴以下内容,只需填上user和password
bindPort = 7000
#以下代码是配置dashboard,不需要的可全部删除
vhostHTTPPort = 8080
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = ""
webServer.password = ""
![](https://blog.ebancom.com/wp-content/uploads/2023/11/image-4.png)
记得开放端口7000、8080、7500
先测试运行下
./frps -c ./frps.toml
浏览器访问公网IP:7500(或域名:7500)
![](https://blog.ebancom.com/wp-content/uploads/2023/11/image-5.png)
网页可正常访问,便配置成功。
该网页可直观查看连接情况
![](https://blog.ebancom.com/wp-content/uploads/2023/11/image-6.png)
三、客户端配置
1、上传文件至客户端
可传至服务端任意位置,无需按照我的路径
cd /mnt/data/home
rz
2、解压文件
tar -xvf frp_0.52.3_linux_arm.tar.gz
cd frp_0.52.3_linux_arm/
#这里是客户端,可删除frps相关文件,以免混淆
rm frps* -rf
3、配置frpc.toml
vi frpc.toml
#粘贴以下代码
serverAddr = "" #填入公网IP
serverPort = 7000
#以下代码是配置dashboard,不需要的可全部删除
webServer.addr = "127.0.0.1"
webServer.port = 7400
webServer.user = ""
webServer.password = ""
#homeassistant页面代理
[[proxies]]
name = "haweb" #可自定义,name不要重复
type = "tcp"
localIP = "127.0.0.1"
localPort = 8123
remotePort = 8123
#frp 客户端dashboard代理
[[proxies]]
name = "webadmin" #可自定义,name不要重复
type = "tcp"
localIP = "127.0.0.1"
localPort = 7400
remotePort = 7400
记得开放端口8123、7400
测试运行
./frpc -c ./frpc.toml
浏览器访问公网IP:8123(或域名:8123)
![](https://blog.ebancom.com/wp-content/uploads/2023/11/image-7.png)
浏览器访问公网IP:7400(或域名:7400)
![](https://blog.ebancom.com/wp-content/uploads/2023/11/image-11.png)
配置成功!
四、设置frp服务自启动
1、编辑frps.service文件
vi /lib/systemd/system/frps.service
![](https://blog.ebancom.com/wp-content/uploads/2023/11/image-12.png)
2、启动服务
systemctl start frps
3、设置服务自启
systemctl enable frps
客户端frpc同样配置即可,文件路径别搞错
五、其他操作
可配置ssh端口映射,便可在外ssh登录客户端,方便修改操作
登录浏览器访问公网IP:7400(或域名:7400)
在线进行内网穿透配置
![](https://blog.ebancom.com/wp-content/uploads/2023/11/image-13.png)
配置完成后,ssh 公网IP 6000
![](https://blog.ebancom.com/wp-content/uploads/2023/11/image-14.png)
其余的内网穿透同理配置即可
本期教程到此结束,有疑问评论区留言讨论