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

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

[进阶教程] HomeAssistant 内网穿透+外网https访问配置

[复制链接]

1

主题

28

帖子

147

积分

注册会员

Rank: 2

积分
147
金钱
119
HASS币
0
发表于 2020-10-25 00:20:37 | 显示全部楼层 |阅读模式
适合宽带没有外网地址,要做内网穿透才能访问的朋友。

外网https,内网http,走的是frp内网穿透方案。
看到坛子里有说是websocket转发有问题,还有说是https有相关的问题,其实就是外网负责转换的nginx处理一下就好了。
我使用的效果见下图【内外网能同时访问】:
外网https使用.jpg

我之前搜索了一下,发现没有直接的答案,所以把我的配置贴出来吧,方便有需要的朋友。
外网服务器nginx配置:
server {
   listen 443 ssl;
   server_name console.xxx.cn;

    #默认启动文件
    index index.html index.htm;

    ssl_certificate xxx.pem;
    ssl_certificate_key xxx.key;

   location / {
         proxy_set_header HOST console.xxx.cn;
        proxy_pass http://localhost:180/;
   }
#把websocket单独映射出来,https下也转发到http下

   location /api/websocket {
         proxy_http_version    1.1;
            proxy_set_header      Upgrade "websocket";
            proxy_set_header      Connection "Upgrade";
            proxy_read_timeout    86400;
         proxy_set_header HOST console.xxx.cn;
        proxy_pass http://localhost:180/api/websocket;
   }



}
server {
      listen 80;
      server_name console.xxx.cn;

      index index.html index.htm;

      location /{
          proxy_set_header HOST console.xxx.cn;
        proxy_pass http://localhost:180/;
        }
   location /api/websocket {
         proxy_http_version    1.1;
            proxy_set_header      Upgrade "websocket";
            proxy_set_header      Connection "Upgrade";
            proxy_read_timeout    86400;
         proxy_set_header HOST console.xxx.cn;
        proxy_pass http://localhost:180/api/websocket;

   }

}

外网服务器frps配置:

[common]
bind_port = 17000
vhost_http_port=180

token=xxxxxxxxxxxxxx
其它安全配置项自己根据文档加啊。这里面只列关键相关参数,便于解决问题。

内网frpc配置:
[common]
server_addr = 外网服务器IP
server_port = 17000
token = xxxxxxxxxxxxxx
[web3]
type = http
local_ip = 127.0.0.1
local_port = 8123
custom_domains = console.xxx.cn




回复

使用道具 举报

18

主题

689

帖子

3770

积分

元老级技术达人

积分
3770
金钱
3071
HASS币
60
发表于 2020-10-25 11:06:53 | 显示全部楼层
我是直接用群晖的反向代理服务,走群晖的ddns。
回复

使用道具 举报

1

主题

28

帖子

147

积分

注册会员

Rank: 2

积分
147
金钱
119
HASS币
0
 楼主| 发表于 2020-10-26 08:31:06 | 显示全部楼层
houhd 发表于 2020-10-25 11:06
我是直接用群晖的反向代理服务,走群晖的ddns。

哦,他那个不能绑定自己的域名吧?
回复

使用道具 举报

71

主题

1146

帖子

6323

积分

论坛元老

Rank: 8Rank: 8

积分
6323
金钱
5172
HASS币
30
发表于 2020-10-28 04:37:51 | 显示全部楼层
我的配置中没有用:外网服务器nginx
ssl_certificate xxx.pem这些配置也只用在内网ha服务器上。
回复

使用道具 举报

15

主题

370

帖子

2470

积分

金牌会员

Rank: 6Rank: 6

积分
2470
金钱
2100
HASS币
10
发表于 2020-10-28 10:29:15 | 显示全部楼层
不会呀,没整明白
回复

使用道具 举报

1

主题

28

帖子

147

积分

注册会员

Rank: 2

积分
147
金钱
119
HASS币
0
 楼主| 发表于 2020-11-3 09:20:00 | 显示全部楼层

百度一下frp的介绍。还是很简单的。
回复

使用道具 举报

1

主题

28

帖子

147

积分

注册会员

Rank: 2

积分
147
金钱
119
HASS币
0
 楼主| 发表于 2020-11-3 09:23:59 | 显示全部楼层
xuyang 发表于 2020-10-28 04:37
我的配置中没有用:外网服务器nginx
ssl_certificate xxx.pem这些配置也只用在内网ha服务器上。 ...

你内外网都是同样的域名吗?那外网nginx也要配置证书吧。
回复

使用道具 举报

71

主题

1146

帖子

6323

积分

论坛元老

Rank: 8Rank: 8

积分
6323
金钱
5172
HASS币
30
发表于 2020-11-3 10:08:16 | 显示全部楼层
howelljiang 发表于 2020-11-3 09:23
你内外网都是同样的域名吗?那外网nginx也要配置证书吧。

内外网使用相同的域名
回复

使用道具 举报

16

主题

167

帖子

1367

积分

金牌会员

Rank: 6Rank: 6

积分
1367
金钱
1200
HASS币
0
发表于 2020-11-3 17:18:18 | 显示全部楼层
你这个略麻烦了,frp + nginx proxy manager不香吗?
回复

使用道具 举报

1

主题

11

帖子

67

积分

论坛技术达人

积分
67
金钱
56
HASS币
0
发表于 2021-1-10 21:51:03 | 显示全部楼层

有个免费的内网穿透服务,大家可以试试。www.igniteiot.com
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-27 02:48 , Processed in 0.060392 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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