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

 找回密码
 立即注册
查看: 15020|回复: 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

主题

704

帖子

4024

积分

元老级技术达人

积分
4024
金钱
3310
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。

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

使用道具 举报

73

主题

1165

帖子

6645

积分

论坛元老

Rank: 8Rank: 8

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

使用道具 举报

16

主题

381

帖子

2630

积分

金牌会员

Rank: 6Rank: 6

积分
2630
金钱
2249
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也要配置证书吧。
回复

使用道具 举报

73

主题

1165

帖子

6645

积分

论坛元老

Rank: 8Rank: 8

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

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

使用道具 举报

16

主题

168

帖子

1409

积分

金牌会员

Rank: 6Rank: 6

积分
1409
金钱
1241
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-11-26 18:50 , Processed in 0.162292 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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