本帖最后由 thomashooo 于 2021-1-31 12:43 编辑
frp的原理是,云服务器运行服务端frps,树莓派运行客户端frpc。当我们想从外面访问homassistant时,直接访问云服务器的ip地址加端口号即可(绑定域名的话,可以用域名访问),云服务器会把访问转发给家里的homeasistant。
1,放homeassistant配置文件的目录/config,重启是不会消失的。
2,homeassistant有一个组件叫shell_command,利用它可以执行一些命令。
3,frp是免安装的。
操作流程:
1,下载frp。下载地址是https://github.com/fatedier/frp/releases 请自行打开这个链接的时候,可能版本更新了,用最新的版本。
客户端是树莓派,cpu架构是arm的,所以选择frp_0.35.1_linux_arm.tar.gz
服务器是centos的是linux系统,通过uname -a命令可以看出,系统版本是64位的,所以选择frp_0.35.1_linux_amd64.tar.gz 或直接脚本安装
cd /tmp
wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh -O ./install-frps.sh
chmod 777 install-frps.sh
./install-frps.sh install
手动编辑frps.ini 或者根据脚本提示配置如下:
- [common]
- bind_port = 7000
- #authentication_method = token
- token = password #这里的密码和客户端的一致。
- #下面的也可以不用设。设置上是可以web登录到frp,查看frp的运行状况。
- dashboard_port = 7500
- # dashboard's username and password are both optional,if not set, default is admin.
- dashboard_user = admin
- dashboard_pwd = 123456
2,在树莓派上操作把下载好的frp_0.35.1_linux_arm.tar.gz上传到/config这个目录。因为是hassos系统,可以使用Terminal&SSH插件打开命令行界面依次执行下面的命令 或者直接通过smb或ftp进入手动解压修改等
cd /config # 切换到config目录 tar xvf frp_0.34.3_linux_arm.tar.gz #把软件解压出来 mv frp_0.34.3_linux_arm waiwang #把刚刚解压的目录重新命名为waiwang,容易记住。 cd waiwang #切换到waiwang这个目录中。 ls #查看当前目录下的文件。
在树莓派上我们运行客户端,所以用到的软件是frpc, frpc.ini是运行frpc所需要的配置文件。只用到这个两个文件,其他的可以删除,以免受到影响。 在frpc.ini配置文件,改动添加如下内容。vi frpc.ini
[common]
server_addr = 1.1.1.1 #改成你的云服务器的地址
server_port = 7000
token = password #为了安全这里设个密码,和云服务上的一致。
[web8123] #这里这个名字随便设,设个一看自己便明白的
type = tcp
local_ip = 192.168.2.15 #这里改成你树莓派的ip地址
local_port = 8123
remote_port = 8123 #这里可以改成别的端口号,到时访问的时候,用这个端口号访问。
编辑homeassistant的配置文件configation.yaml 添加如下内容:shell_command:
frpc: nohup ./waiwang/frpc -c ./waiwang/frpc.ini &
上面的frpc是执行这个命令的名字,可以改成自己一看就明白的名字。 然后做一个自动化,让homeassistant启动后,执行这条命令。 依次点“配置”,“自动化”,右下角“+ 添加自动化” 触发条件是home assistant启动,动作是调用服务, 服务就是在configation.yaml中添加的shell_command.frpc
保存,然后点下“触发”,frp客户端便运行了。下次开机会自动运行的。也可以把它放到概览里面,方便使用。
这时候从浏览器输入你的云服务器ip地址加端口号便能访问homeassistant了。比如 1.1.1.1:8123 。
|