『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 7050|回复: 9

利用frp让hassos系统外网访问

[复制链接]

5

主题

23

帖子

267

积分

论坛分享达人

积分
267
金钱
244
HASS币
10
发表于 2021-1-30 17:05:30 | 显示全部楼层 |阅读模式
本帖最后由 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。

然后做一个自动化,让homeassistant启动后,执行这条命令。

依次点“配置”,“自动化”,右下角“+ 添加自动化”

触发条件是home assistant启动,动作是调用服务, 服务就是在configation.yaml中添加的shell_command.frpc
保存,然后点下“触发”,frp客户端便运行了。下次开机会自动运行的。也可以把它放到概览里面,方便使用。

这时候从浏览器输入你的云服务器ip地址加端口号便能访问homeassistant了。比如

1.1.1.1:8123 。







评分

参与人数 1金钱 +20 收起 理由
+ 20 感谢楼主分享!

查看全部评分

回复

使用道具 举报

8

主题

121

帖子

2351

积分

金牌会员

Rank: 6Rank: 6

积分
2351
金钱
2230
HASS币
0
发表于 2021-1-30 17:18:27 | 显示全部楼层
有公网IP的话会方便很多,DDNS,路由器做一下NAT就可以了。
回复

使用道具 举报

21

主题

427

帖子

2415

积分

金牌会员

Rank: 6Rank: 6

积分
2415
金钱
1983
HASS币
20
发表于 2021-1-30 17:33:16 来自手机 | 显示全部楼层
同运营商,frp还是很好用的
回复

使用道具 举报

0

主题

38

帖子

428

积分

中级会员

Rank: 3Rank: 3

积分
428
金钱
390
HASS币
0
发表于 2021-1-30 18:41:38 | 显示全部楼层
zslibra 发表于 2021-1-30 17:18
有公网IP的话会方便很多,DDNS,路由器做一下NAT就可以了。

DDNS不稳定
回复

使用道具 举报

8

主题

121

帖子

2351

积分

金牌会员

Rank: 6Rank: 6

积分
2351
金钱
2230
HASS币
0
发表于 2021-1-30 22:22:24 | 显示全部楼层

电信公网IP,DDNS使用超过一年,没有发现不稳定的情况。
回复

使用道具 举报

0

主题

38

帖子

428

积分

中级会员

Rank: 3Rank: 3

积分
428
金钱
390
HASS币
0
发表于 2021-1-31 08:36:28 | 显示全部楼层
zslibra 发表于 2021-1-30 22:22
电信公网IP,DDNS使用超过一年,没有发现不稳定的情况。

IP变动的一瞬间,DNS解析会有缓存,关键时刻就会掉链子
回复

使用道具 举报

8

主题

121

帖子

2351

积分

金牌会员

Rank: 6Rank: 6

积分
2351
金钱
2230
HASS币
0
发表于 2021-1-31 13:24:48 | 显示全部楼层
aiancandle 发表于 2021-1-31 08:36
IP变动的一瞬间,DNS解析会有缓存,关键时刻就会掉链子

电信拨号宽带每48小时会强制断网一次,重新分配到的IP就会变,这个不论用什么方法做DNS解析都一样不能避免的。
回复

使用道具 举报

2

主题

91

帖子

1187

积分

金牌会员

Rank: 6Rank: 6

积分
1187
金钱
1096
HASS币
0
发表于 2021-2-3 21:38:46 | 显示全部楼层
感谢楼主!
回复

使用道具 举报

0

主题

61

帖子

140

积分

注册会员

Rank: 2

积分
140
金钱
79
HASS币
0
发表于 2021-2-4 11:20:06 | 显示全部楼层
学习。。。。。。
回复

使用道具 举报

3

主题

74

帖子

996

积分

高级会员

Rank: 4

积分
996
金钱
922
HASS币
0
发表于 2021-12-29 08:54:42 来自手机 | 显示全部楼层
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-29 15:37 , Processed in 0.055880 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表