目录
最近自己搭建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、frps@.service 放到/lib/systemd/system目录
sudo cp /systemd/{frps.service,frps@.service} /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、frpc@.service 放到/lib/systemd/system目录
sudo cp /systemd/{frpc.service,frpc@.service} /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
看看我的效果
重要提醒
切记切记!公网云服务器记得放行配置文件中涉及到的所有端口,否则无法访问。
原文链接:https://blog.csdn.net/lhjjjj/article/details/120792040?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168449620216800213022817%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=168449620216800213022817&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-10-120792040-null-null.blog_rank_default&utm_term=NAS%E3%80%81%E7%BE%A4%E6%99%96%E3%80%81%E9%98%BF%E9%87%8C%E4%BA%91%E3%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90%E3%80%81%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F%E3%80%81ipv6%E3%80%81ddns%E3%80%81%E8%BD%BB%E9%87%8F%E7%BA%A7%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%81%E9%93%81%E5%A8%81%E9%A9%AC%E3%80%81%E5%A8%81%E8%81%94%E9%80%9A%E3%80%81DSM%E3%80%81DSM6.0%E3%80%81%E7%BE%A4%E6%99%96nas%E3%80%81%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%81%E8%9C%97%E7%89%9B%E6%98%9F%E9%99%85%E3%80%81%E9%BB%91%E7%BE%A4%E6%99%96%E3%80%81docker%E3%80%81%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E3%80%81%E5%9F%9F%E5%90%8D%E6%B3%A8%E5%86%8C%E3%80%81%E5%AE%9D%E5%A1%94%E3%80%81%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E3%80%81nginx%E3%80%81frp%E3%80%81%E5%8A%A8%E6%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90