frp轻松内网穿透,玩转树莓派HomeAssistant

目录

安装条件

服务器端安装步骤

客户端安装步骤

说在最后

 重要提醒


​​​​​​​

最近自己搭建HomeAssistant智能家居平台,在家里的内网访问HomeAssistant没有问题,但因为使用的是电信的宽带没有分配公网IP,造成无法通过公网访问HomeAssistant,这也就意味着不能在外访问和控制家里的智能设备。考虑到花生壳等内网穿透工具不但限制链接数量,而且超过限定的流量就开始收钱,本着自己动手丰衣足食的创客精神,毅然决定使用方便好用的开源穿透工具frp。

安装条件

服务器端:公网云服务器1台并安装ubuntu20.04。

客户端:树莓派1台并安装ubuntu20.04。我的HomeAssistant运行在安装ubuntu的树莓派上,作为智能家居的控制中心。

软件:目前最新版本为v0.37.1,服务器端和客户端必须下载同一版本,避免不可预知的麻烦(这个在安装过程中踩过坑)。Releases · fatedier/frp · GitHubA fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. - Releases · fatedier/frphttps://github.com/fatedier/frp/releases

服务器端安装步骤

1.下载frp

wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz

根据需要选择相应的版本,我这里下载的是linux64位的版本。

2.解压缩

tar -xvf frp_0.37.1_linux_amd64.tar.gz

进入解压之后的文件夹

cd frp_0.37.1_linux_amd64/
ls -l

frp轻松内网穿透,玩转树莓派HomeAssistant_第1张图片

frpc、frpc_full.ini|、frpc.ini分别为客户端程序、全配置文件、自定义配置文件

frp3、frp3_full.ini|、frp3.ini分别为服务器端程序、全配置文件、自定义配置文件

进入systemd文件夹

cd systend
ls -l

4个文件为分别为客户端和服务器端的系统服务配置

 3.文件归位

一般情况下,在解压后的当前目录使用命令模式就可以使用。但考虑到管理方便,强烈建议将所有文件放到相应的目录中。

将服务器端可执行文件frps放到/usr/bin目录

sudo cp frps /usr/bin

将配置文件frps.ini放到/etc/frp/目录

sudo mkdir /etc/frp
sudo cp frps.ini /etc/frp

将系统服务配置frps.service、[email protected] 放到/lib/systemd/system目录

sudo cp /systemd/{frps.service,[email protected]} /lib/systemd/system

4、配置

打开/etc/frp/frps.ini配置文件,输入如下内容并保存退出

[common]
bind_port = 7000
bind_udp_port = 7001
kcp_bind_port = 7000
vhost_http_port = 80
vhost_https_port = 443
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = XXXXX(自定义)
authentication_method = token
token = XXXXXXXX(自定义)

5、启动服务器端

设置为开机启动

sudo systemctl enable frps

启动服务器端

sudo systemctl start frps

没有报错则基本安装成功,可以通过查看系统服务状态确定是否运行成功

sudo systemctl status frps

运行结果如果与下图一致则表示服务已成功启动

frp轻松内网穿透,玩转树莓派HomeAssistant_第2张图片

至此,服务器端安装成功。

可以通过http://你的IP:7500查看运行状态

客户端安装步骤

1.下载frp

wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_arm64.tar.gz

因为树莓派是arm的CPU,因此我下载的是arm64位的客户端,大家可以根据客户端的情况现在相应的版本

2.解压缩

tar -xvf frp_0.37.1_linux_arm64.tar.gz

解压后的文件夹中各文件的作用与服务器端的一致。客户端文件名都包含frpc

3.文件归位

 将客户端可执行文件frpc放到/usr/bin目录

sudo cp frpc /usr/bin

将配置文件frpc.ini放到/etc/frp/目录

sudo mkdir /etc/frp
sudo cp frpc.ini /etc/frp

将系统服务配置frpc.service、[email protected] 放到/lib/systemd/system目录

sudo cp /systemd/{frpc.service,[email protected]} /lib/systemd/system

4、配置

打开/etc/frp/frpc.ini配置文件,输入如下内容并保存退出

[common]
server_addr = X.X.X.X(安装frp服务气短的公网服务器地址)
token = XXXXX(与服务器端配置文件一致)
server_port = 7000
# vhost_http_port = 80

[http]
type = tcp
local_port = 8123
remote_port= 8123
custom_domains =XXX.XXX.com(需要域名访问的设置,不需要的可不设置)

5、启动服务器端

设置为开机启动

sudo systemctl enable frpc

启动服务器端

sudo systemctl start frpc

没有报错则基本安装成功,可以通过查看系统服务状态确定是否运行成功

sudo systemctl status frpc

运行结果如果与下图一致则表示客户端已启动并成功连接服务器端

说在最后

至此就可以通过http://你的IP:8123访问局域网内的HomeAssistant了

也可以设置你的域名解析到你的IP,而后通过http://你的域名:8123访问局域网内的HomeAssistant

看看我的效果

frp轻松内网穿透,玩转树莓派HomeAssistant_第3张图片

 重要提醒

切记切记!公网云服务器记得放行配置文件中涉及到的所有端口,否则无法访问。

你可能感兴趣的:(智能家居,智能传感器,ubuntu,linux,计算机网络)