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

 找回密码
 立即注册
查看: 11655|回复: 5

[基础教程] hass 通过 nginx+frp 进行远程访问

[复制链接]

1

主题

8

帖子

98

积分

注册会员

Rank: 2

积分
98
金钱
90
HASS币
0
发表于 2021-6-10 00:08:38 | 显示全部楼层 |阅读模式
本帖最后由 raoul1996 于 2021-6-10 00:18 编辑

通过 FRP 可以将没有公网地址的设备暴露在公网上。前提是需要有一台带有公网 IP 的云主机或者轻量应用服务器(目前我使用的就是腾讯云,大概一年不到 100 块钱,相当划算)+ 一个域名(一年30块钱左右)。
服务器镜像推荐使用 Debian 10 64bit,不熟悉的同学使用 ubuntu 64bit 也可,大差不差。
PS:在将 hass 暴露在公网上之前,务必要考虑好数据安全(设置高强度密码,开启 OTP)。目前使用的方式有一定瑕疵,localhost 到主机走的是 http 协议,安全性不太好。后续还可以在这点上继续进行优化,实现全链路 HTTPS。
略过的部分
  • 域名证书签发可以使用 let’s encrypt 获取免费的泛域名证书。
  • 具体 FRP 相关配置略过。

Nginx Configration
carbon (1).png

论坛的编辑器对markdown 支持不太好,具体的配置详情回复在下面
回复

使用道具 举报

1

主题

8

帖子

98

积分

注册会员

Rank: 2

积分
98
金钱
90
HASS币
0
 楼主| 发表于 2021-6-10 00:18:41 | 显示全部楼层
```nginx
server {
  listen 80;
  server_name hass.xxxx.com;
  proxy_set_header    Host              $host;
  proxy_set_header    X-Real-IP         $remote_addr;
  proxy_set_header    X-Forwarded-For   $proxy_add_x_forwarded_for;
  proxy_set_header    X-Forwarded-SSL on;
  proxy_set_header    X-Forwarded-Proto $scheme;
  # disable http scheme
  return 301 https://$host$request_uri$is_args$args;
}
server {
    # enable HTTP2
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name hass.xxxx.com;

        # Note: You should disable gzip for SSL traffic.
        # See: https://bugs.debian.org/773332
        #
        # Read up on ssl_ciphers to ensure a secure configuration.
        # See: https://bugs.debian.org/765782
        #
        # Self signed certs generated by the ssl-cert package
        # Don't use them in a production server!
        #
        # include snippets/snakeoil.conf;


        location / {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    # must set these header below , don't ask me why...
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection upgrade;
   
    # reverse proxy to the FRP listen addr.
    proxy_pass http://127.0.0.1:58123;
        }


```
回复

使用道具 举报

33

主题

2196

帖子

5838

积分

论坛元老

Rank: 8Rank: 8

积分
5838
金钱
3642
HASS币
60
QQ
发表于 2021-6-10 01:07:56 | 显示全部楼层
火线留名,谢谢分享
我不生产技术,我只是技术的搬运工。
回复

使用道具 举报

1

主题

79

帖子

1006

积分

金牌会员

Rank: 6Rank: 6

积分
1006
金钱
927
HASS币
0
发表于 2021-6-10 09:03:09 | 显示全部楼层
为什么要用代理?frp直接映射ha不就行了?
回复

使用道具 举报

1

主题

8

帖子

98

积分

注册会员

Rank: 2

积分
98
金钱
90
HASS币
0
 楼主| 发表于 2021-6-11 10:00:43 | 显示全部楼层
sdfd 发表于 2021-6-10 09:03
为什么要用代理?frp直接映射ha不就行了?

服务器上跑的不只有 hass,本身就已经运行了很多服务,所以 80 和 443 这种小于 1024 的端口没有分配给 frp 用。

nginx 这一层只做了一个域名到 IP 到 PORT的映射。
回复

使用道具 举报

0

主题

37

帖子

477

积分

中级会员

Rank: 3Rank: 3

积分
477
金钱
440
HASS币
0
发表于 2021-6-11 10:09:02 | 显示全部楼层
自己搭frp确实不错,就是这些XX云都是老用户和狗不得入内,过几年续费就不划算了
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-27 06:20 , Processed in 0.398336 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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