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

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

[进阶教程] 无需公网IP,实现通过IPv6远程外网访问node-red的方法

[复制链接]

11

主题

266

帖子

2574

积分

金牌会员

Rank: 6Rank: 6

积分
2574
金钱
2298
HASS币
50
发表于 2021-10-11 11:08:18 | 显示全部楼层 |阅读模式
看标题就知道比较冷门,有需求的可以往下看,看不懂的基本也就是没有这个需求了。
最近刚从联通宽带换成移动宽带了(为了省钱,跟手机套餐融合),移动宽带没有公网IP,就想着用IPv6实现远程访问家里的各种服务(虽然北京移动可以每月20元办理叠加包开通公网IP,但为了省钱,先折腾一波IPv6),HA和NR的主机在群晖,群晖已经获得了IPv6的地址(IPv6不分内外网,全球唯一地址),内网或外网下通过 [IPv6地址]:5000 可以访问群晖,通过 [IPv6地址]:8123 可以访问HA,但通过 [IPv6地址]:1880 无法访问NR,这就奇怪了。遂试了试内网下通过 IPv4地址:5000 可以访问群晖,通过 IPv4地址:8123 可以访问HA,通过IPv4地址:1880 可以访问NR。这就说明了问题所在——NR不能用IPv6进行访问,NR程序没有监听IPv6。

解决办法很简单,我只是把github上的内容搬过来,给那些不愿意去github上找答案的玩家朋友们提供个方便。其实就是修改下NR的设置,使其能够同时监听IPv4和IPv6,NR的设置需要修改settings.js文件。
文件在node-red的根目录下,无论用putty或者winSCP打开都行,可以发现文件里有这么一段说明

    // By default, the Node-RED UI accepts connections on all IPv4 interfaces.
    // To listen on all IPv6 addresses, set uiHost to "::",
    // The following property can be used to listen on a specific interface. For
    // example, the following would only allow connections from the local machine.
    // uiHost: "127.0.0.1",
默认情况下,NR只监听IPv4,要想监听IPv6,需要把这行// uiHost: "127.0.0.1"取消掉注释并改成这样uiHost: "::",修改后的代码是这样的
    // By default, the Node-RED UI accepts connections on all IPv4 interfaces.
    // To listen on all IPv6 addresses, set uiHost to "::",
    // The following property can be used to listen on a specific interface. For
    // example, the following would only allow connections from the local machine.
    uiHost: "::",
保存文件,重启NR,之后就可以通过 [IPv6地址]:1880 顺利访问NR了。
回复

使用道具 举报

10

主题

101

帖子

1519

积分

金牌会员

Rank: 6Rank: 6

积分
1519
金钱
1418
HASS币
0
发表于 2021-10-11 14:01:11 | 显示全部楼层
实测成都电信是没有公网的ipv6的,ipv6也是要分内网外的
回复

使用道具 举报

11

主题

266

帖子

2574

积分

金牌会员

Rank: 6Rank: 6

积分
2574
金钱
2298
HASS币
50
 楼主| 发表于 2021-10-11 14:58:43 来自手机 | 显示全部楼层
aexyun 发表于 2021-10-11 14:01
实测成都电信是没有公网的ipv6的,ipv6也是要分内网外的

IPv6如果还分内网和外网的话,就没有用v6替代v4的意义了。
另外三大运营商应该都早已支持IPv6了,你先确定你的路由器开通没开通IPv6功能。
回复

使用道具 举报

7

主题

314

帖子

2757

积分

金牌会员

Rank: 6Rank: 6

积分
2757
金钱
2443
HASS币
0
发表于 2021-10-11 15:13:45 | 显示全部楼层
秋雨轩 发表于 2021-10-11 14:58
IPv6如果还分内网和外网的话,就没有用v6替代v4的意义了。
另外三大运营商应该都早已支持IPv6了,你先确 ...

支持楼主教程。。
然后替代是为了解决ipv4不够用,,但ipv6还是有分私用地址的。。
回复

使用道具 举报

10

主题

101

帖子

1519

积分

金牌会员

Rank: 6Rank: 6

积分
1519
金钱
1418
HASS币
0
发表于 2021-10-11 15:21:14 | 显示全部楼层
秋雨轩 发表于 2021-10-11 14:58
IPv6如果还分内网和外网的话,就没有用v6替代v4的意义了。
另外三大运营商应该都早已支持IPv6了,你先确 ...

WechatIMG225.png fe80的一般就是内网的ipv6

回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
11445
金钱
8514
HASS币
460

教程狂人突出贡献

发表于 2021-10-11 16:04:50 | 显示全部楼层
楼上几位说的不错,ipv6也有内网地址,也有ipv6的NAT。楼主帖子是好帖,就是不够严谨。

另外,楼主有一点说的也很对:如果设备拿不到公网ipv6,很可能是路由器的问题,现在三大运营商应该不是问题了。
回复

使用道具 举报

11

主题

266

帖子

2574

积分

金牌会员

Rank: 6Rank: 6

积分
2574
金钱
2298
HASS币
50
 楼主| 发表于 2021-10-11 20:56:04 来自手机 | 显示全部楼层
yuyuye 发表于 2021-10-11 15:13
支持楼主教程。。
然后替代是为了解决ipv4不够用,,但ipv6还是有分私用地址的。。
...

本地链路地址。
回复

使用道具 举报

11

主题

266

帖子

2574

积分

金牌会员

Rank: 6Rank: 6

积分
2574
金钱
2298
HASS币
50
 楼主| 发表于 2021-10-11 20:58:43 来自手机 | 显示全部楼层
aexyun 发表于 2021-10-11 15:21
fe80的一般就是内网的ipv6

那是本地链路地址,和ipv4的内网地址不是一回事。

评分

参与人数 1金钱 -1 收起 理由
XCray -1 争论这个干啥?建议还是修改下标题.

查看全部评分

回复

使用道具 举报

11

主题

266

帖子

2574

积分

金牌会员

Rank: 6Rank: 6

积分
2574
金钱
2298
HASS币
50
 楼主| 发表于 2021-10-11 21:13:42 来自手机 | 显示全部楼层
XCray 发表于 2021-10-11 16:04
楼上几位说的不错,ipv6也有内网地址,也有ipv6的NAT。楼主帖子是好帖,就是不够严谨。

另外,楼主有一点 ...

感谢X大神认可
回复

使用道具 举报

3

主题

280

帖子

2148

积分

金牌会员

Rank: 6Rank: 6

积分
2148
金钱
1868
HASS币
0
发表于 2021-10-11 21:15:08 | 显示全部楼层
根据各大运营商的尿性,ipv6也是内部ipv6
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-29 05:45 , Processed in 0.334876 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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