2024年11月24日星期日 上午4:01:50

Home Assistant Remote access Solution

2 年 前
#38 引用
如何手机远程访问家里的home assistant

Accessing Home Assistant server from the internet


http docs

https://www.home-assistant.io/integrations/http#use_x_forwarded_for

Access Home Assistant from outside your local network.

网络这部分留到最后,也是最重要的,Home Assistant如果仅仅只能在家里访问也就没有多大意义了,我们需要的是在世界任何一个角落,只要有互联网,就能方便的访问Home Assistant。

Your only option is to use a reverse proxy such as NGINX, this way you get http local and https remotely.

case

Home assistant运行在内网,处于NAT之后,内网的ip是无法从外网直接访问的,所以如果想要实现远程控制,就需要进行内网穿透。

有的用户没有公网IP,或者有的用户没有技术,所以无法把Home Assistant的网页界面映射到公网上用来远程访问。

光纤改造后,现在有的宽带都没有外网IP了,都是内网IP。

port forward

port forward + Dynamic public IP addresses
port forward + Dynamic public IP addresses + Dynamic DNS



Case 1: 有公网ip

way 1:路由器设置端口映射(port mapping); 映射后在公网通过ip:port直接访问
way 2:申请阿里云域名;路由器设置端口转发;映射后在公网通过域名:port直接访问
way 3:需要一个ddns服务来把wan ip和动态域名绑定
Note:这种方式,运行在8123的ha不需要做任何另外的配置。

Case 2:没有公网ip地址
            或有公网IP地址但port 443 host and 80 disabled


内网穿透类

frp
花生壳内网穿透

cloudflare隧道 = cloudflare Tunnel

Way 3:router ddn


Way 4:vpn
需要 home-assistant 但是并没有公网IP 为了能够通过IP访问树莓派 考虑已有阿里云服务器,计划通过VPN技术将树莓派地址通过VPN 连接到阿里云服务器,再依赖端口映射连接到树莓派实现从阿里云服务器连接至树莓派。

CloudFlare DNS Updater Service c#

https://github.com/zingz0r/CloudFlare.Client

way 5:
cloudflare access

Note:

家里不一定有公网IP地址啊,电信还好说,会给,联通移动你试试,移动我投诉到工信部也没给我公网IP,大Nat网了解一下 .

1.阿里云DDNS插件【HA】【Hassio】
https://bbs.hassbian.com/thread-2980-1-1.html


2.利用frp让homeassistant(hassos系统)外网访问
https://blog.csdn.net/zuobianfy/article/details/111712872

3. DuckDNS-Android Companion App + Nabu Casa
create a DuckDNS sub-domain. Go to duckdns.org, sign in with one of the available methods, and create a new sub-domain. Your new DuckDNS URL would be:

Your_Domain.duckdns.org

duckdns一分钱不用花!

daymatic ip is resolved by DuckDNS to my external IP

教程

https://zhuanlan.zhihu.com/p/30704722

https://bbs.hassbian.com/thread-2660-1-1.html

4.HOME ASSISTANT CLOUD

https://account.nabucasa.com/
Control your Home Assistant from anywhere. Fully encrypted

a free 31 day trial
                  

5.域名 、https、反代

https://bbs.hassbian.com/thread-9309-1-1.html


domain+Port forwarding on your home router+nginx+https+ Home Assistant run on 8123

https://community.home-assistant.io/t/reverse-proxy-using-nginx/196954
0
2 年 前
#2330 引用
checklist

connect successfully on the local network

verify requests from domain to nginx are OK

websocket is proxied on nginx are  ok


nginx  proxy settings

https://www.msly.cn/boards/topic/34/home-assistant-remote-access-solution/page/2#3641

ha  proxy  setting

https://www.msly.cn/boards/topic/34/home-assistant-remote-access-solution/page/3#3783


有公网IP


Without the Nginx Proxy, Home Assistant itself is responsible for serving your SSL/TLS certificates via the http component. Currently the http component can't serve both HTTP and HTTPS at the same time, so if this is enabled, all API traffic to Home Assistant must be over HTTPS


Using the Nginx proxy we can avoid all this by offloading HTTPS termination to Nginx, leaving Home Assistant open to serve local requests from Konnected over fast unencrypted HTTP.

公网IP的话,HA的出海工作就很简单了。像笔者家中就是将光猫改为了桥接模式,有主路由进行拨号,所以也能过通过路由器自带DDNS服务和端口映射完成出海需求。以Linksys路由器为例,需要在「Security安全」-「App and Gaming应用与游戏」中的「DDNS服务」和「Single Port Forwarding单端口转发」中进行对应设置。

8. Port forwarding

Port forwarding redirects data meant for a computer's IP/port to an other IP and/or port.

On your router, setup port forwarding (look up the documentation for your router if you haven’t done this before).
Forward port 443 (external) to your Home Assistant local IP port 443 in order to access via https.
0
2 年 前
#2331 引用
一是基本都需要借助单独配置的中转服务器,才能够完成链路的穿透,自建或者使用厂商已有服务都需要再花一笔;第二个是穿透能达到的性能有限,带宽远远低于家用的上传速度。只要能保证服务稳定,大家都能接受付费服务。但大部分能够提供稳定穿透服务的厂商,一般都是按月按年按客户端付费,动辄几十上百的价格确实没必要。
0
2 年 前
#2364 引用
基于安全方面的考虑, 该组件需要经过Google, GitHub或微信小程序的授权才能正常使用.
0
2 年 前
#2447 引用
有公网IP

我全用的免费工具:
申请的freenom域名,每年点击一下续期就行
办的联通宽带,自带动态公网IP
用的腾讯DNSPOD免费解析,同时申请免费的SSL证书
最后路由用的免费高恪系统,设置好域名解析+端口转发
外网访问嗖嗖的


CloudFlare API 动态更新域名ip address

DNS只是提供域名转换为IP的服务
如果你是指DDNS(动态域名, 类似于花生壳等的服务), CloudFlare因为DNS解释更新快, 又提供非常好的API, 可以写脚本或者程序来实现.
基本思路是, 定时访问一些网站, 比如http://ipv4.icanhazip.com/ 获取当前环境的外网IP,;
然后调用CloudFlare的API把域名更新指向这个IP.
你的网关需要设置好NAT,把对应的端口映射到你的内网某台机器上.



公网ip

怎么知道我家公网ip开通?
怎么才算是ipv4公网ip
拨号出来的 IP 和 ipw.cn 查出来的 IP 一致就是了


怎么知道我家公网ip开通?
看看你家的ip,然后直接网站打开.
路由器看wan口ip,然后百度ip,如果两个一样,那么就是公网了.


Ipv6一般默认公网,貌似开头是240e的电信,2408联通,2409移动,应该是这样的,



0
2 年 前
#3557 引用
Cloudflare

https://hodgkins.io/securing-home-assitant-with-cloudflare


Cloudflare IP Ranges

https://www.cloudflare.com/ips/



Cloudflare 推出的 Argo Tunnel
https://zhuanlan.zhihu.com/p/482666652



工作方式类似于 frp,可以将本地服务发布到公网。只不过 frp 所需的服务器 IP 在 Argo Tunnel 中变成了 Cloudflare 提供的节点。相比运营商公网 IP,Argo Tunnel 省去了跟运营商扯皮的时间,相比于 frp 则省去了服务器的成本。

缺点:
慢,不能用
0
2 年 前
#3558 引用
Router端口映射 + pi

端口映射是将内部主机的内网IP地址映射成一个公网IP地址,当用户访问提供映射端口主机的某个端口时,服务器将请求转移到本地局域网内部提供这种特定服务的主机;利用端口映射功能可以将一台外网IP地址机器的多个端口映射到内网不同内网主机上的不同端口。理论上可以提供65535(总端口数)-1024(保留端口数)=64511个端口的映射。


router

0
2 年 前
#3559 引用
2
0
2 年 前
#3560 引用
3
0
2 年 前
#3561 引用
DMZ设置方法

DMZ主机可将内网某台设备(只能设置1台设备)的所有端口都自动映射到公网上

0