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

 找回密码
 立即注册
查看: 10940|回复: 13

[技术探讨] 怎么用在外网访问ha的内嵌node-red

[复制链接]

10

主题

154

帖子

583

积分

高级会员

Rank: 4

积分
583
金钱
429
HASS币
0
发表于 2019-1-30 10:21:19 | 显示全部楼层 |阅读模式
问个小白问题。我是群晖用docker的方式安装的HA和node-red。做了端口映射后都可以直接访问。我现在ha中用panel_iframe。的方法在边栏内嵌了node-red。url地址填外网域名加端口,在外网访问的时候点击边栏node-red是正常的。url地址填内网ip加端口,在外网访问的时候点击边栏node-red是无法显示的。我现在想把nodered的端口映射关闭。在外网访问ha的时候也能通过边栏访问node-red。配置文件中的url地址应该怎么填写?





回复

使用道具 举报

10

主题

685

帖子

5750

积分

论坛元老

Rank: 8Rank: 8

积分
5750
金钱
5060
HASS币
50
发表于 2019-1-30 11:10:17 | 显示全部楼层
配置文件写域名,然后用nginx转发?
回复

使用道具 举报

0

主题

168

帖子

1049

积分

金牌会员

Rank: 6Rank: 6

积分
1049
金钱
881
HASS币
0
发表于 2019-1-30 11:26:05 | 显示全部楼层
VPN拨号就行
回复

使用道具 举报

23

主题

659

帖子

4665

积分

元老级技术达人

积分
4665
金钱
3991
HASS币
30

教程狂人

QQ
发表于 2019-1-30 11:42:54 | 显示全部楼层
看你用的什么路由器,如果是merlin、openwrt、ROS这类的路由,它们支持域名重定向功能。该功能可以在内网中将本机或者指定的域名重定向至内网IP地址。这样话,无论是内网还是外网,都可以直接通过域名访问Nodered、HA等WEB服务。
回复

使用道具 举报

10

主题

154

帖子

583

积分

高级会员

Rank: 4

积分
583
金钱
429
HASS币
0
 楼主| 发表于 2019-1-30 12:01:32 | 显示全部楼层
alei643 发表于 2019-1-30 11:42
看你用的什么路由器,如果是merlin、openwrt、ROS这类的路由,它们支持域名重定向功能。该功能可以在内网中 ...

抱歉,是我没表达清楚,我想实现的功能是把nodered的端口映射关闭,从外网没法直接访问nodered。但是我的外网可以访问HA。我可以打开HA后在边栏里面点击nodered访问。
回复

使用道具 举报

75

主题

1976

帖子

8213

积分

元老级技术达人

积分
8213
金钱
6187
HASS币
430

活跃会员教程狂人

发表于 2019-1-30 12:03:54 | 显示全部楼层
pizixiaotian 发表于 2019-1-30 12:01
抱歉,是我没表达清楚,我想实现的功能是把nodered的端口映射关闭,从外网没法直接访问nodered。但是我的 ...

感觉够呛,顶顶,我也想知道。
所有过往,皆为序章。
回复

使用道具 举报

23

主题

659

帖子

4665

积分

元老级技术达人

积分
4665
金钱
3991
HASS币
30

教程狂人

QQ
发表于 2019-1-30 12:48:32 | 显示全部楼层
pizixiaotian 发表于 2019-1-30 12:01
抱歉,是我没表达清楚,我想实现的功能是把nodered的端口映射关闭,从外网没法直接访问nodered。但是我的 ...

不可能,HA的panel_iframe组件只是将WEB服务集成到导航菜单里,仅仅是给你做了一个超级链接而已。如果处于安全考虑,可以开启NodeRed的用户名密码验证功能
回复

使用道具 举报

34

主题

335

帖子

1848

积分

金牌会员

Rank: 6Rank: 6

积分
1848
金钱
1513
HASS币
0
发表于 2019-1-30 15:00:06 | 显示全部楼层
草图.png
这样吗
回复

使用道具 举报

9

主题

787

帖子

3870

积分

论坛元老

Rank: 8Rank: 8

积分
3870
金钱
3083
HASS币
87
发表于 2019-1-30 17:05:46 | 显示全部楼层
本帖最后由 令狐鸣 于 2019-1-30 17:11 编辑

这两个是独立的,HA的侧栏只是一个快捷链接.
如果想内外网都访问必须开外网端口.

倒是可以写一个判断ip的页面进行转发,这样可以做到内外网都用侧栏打开,只是连接不同
可以做个参考

panel_iframe 指向内部页面,根目录/www/xxxx.html

node-red:
   title: 'node-red'
   url: '/local/xxxx.html'
   icon: mdi:node

xxxx.html页面内容

<!DOCTYPE html>
<html lang="en">
<head>
        <meta charset="UTF-8">
        <title>Node-Red</title>
        <!-- 搜狐接口查看IP -->
        <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
    <script type="text/javascript">
            var addr = returnCitySN["cip"] ;        // 打印访问IP
        console.log(returnCitySN["cip"] + ',' + returnCitySN["cname"])
        // 自己家里路由外网ip地址大体范围
        if (addr.indexOf('118.139.') != -1 ) {
                window.location.href="http://10.0.0.10:1880";  //内网访问地址+端口
                }else{
                window.location.href="http://xx.xxx.com:888"; //外网访问地址+端口
                }
    </script>   
</head>
<body>
<h1>等待跳转中...</h1>
</body>
</html>


回复

使用道具 举报

23

主题

1338

帖子

6777

积分

超级版主

Rank: 8Rank: 8

积分
6777
金钱
5414
HASS币
100

教程狂人

发表于 2019-1-30 17:40:01 | 显示全部楼层
配一个反向代理就可以了
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-1-18 11:57 , Processed in 0.061715 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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