目录
安装条件
服务器端安装步骤
客户端安装步骤
说在最后
重要提醒
最近自己搭建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
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
运行结果如果与下图一致则表示服务已成功启动
至此,服务器端安装成功。
可以通过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
看看我的效果
切记切记!公网云服务器记得放行配置文件中涉及到的所有端口,否则无法访问。