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

 找回密码
 立即注册
查看: 6304|回复: 35

[经验分享] 别折腾内网穿透了,ipv6足够了

[复制链接]

19

主题

270

帖子

1892

积分

金牌会员

Rank: 6Rank: 6

积分
1892
金钱
1622
HASS币
50
发表于 2022-6-13 00:49:12 | 显示全部楼层 |阅读模式
北京移动只要交200元初装费,然后就可以免费使用网络了。网速虽然不太快,但也有100M了,我准备把它单独拉出来,作智能家居用。这网络看着便宜,但没有公网IP,我又要内网穿透,想想还是启用ipv6吧。折腾了一天,参考很多老大们的经验,总算搞定了。之所以写下来,是因为这东西不难,很简单,特别适合喜欢网络便宜,又没有公网ip的同学。
先说一个背景,我之前一直使用公网ip做内网穿透,通过阿里云申请证书和域名解析,通过nginx作反代,通过端口转发给不同的应用。比如homeassistant,node-red,docker,微信,智能音箱。我现在希望沿用这个套路,只是不要公网ip了,使用ipv6直接访问nginx。
1、检查运营商光猫是否启用ipv6
帐号: CMCCAdmin
默认密码: aDm8H%MdA


image-20220613001129794.png
运营商已经默认启用了ipv6,我不需要做任何设置

2、查询nginx所在的树莓派ipv6
登录树莓派
# 在树莓派执行:
curl http://ipv6.whatismyip.akamai.com/
树莓派会返回其ipv6,记录下来。这个地址就是外网访问时的地址
3、阿里云重新申请一个证书,和一个访问域名解析
3.1 申请证书
image-20220613002530711.png

3.2 申请成功之后,下载下来备用
image-20220613003336081.png

3.3 域名解析
image-20220613003022992.png

4、将刚刚下载的证书,改个名字,上传到nginx相关文件夹

5、配置nginx反代
# 与原配置方式一样,只需改动3点:
# 1、访问域名:刚刚解析的名字
# 2、证书文件:刚刚上传的证书文件
# 3、监听,ipv6监听格式为   listen [::]:端口号
示例
server {
     listen [::]:3352 ssl;
     ssl_certificate /etc/nginx/cert/cert_nginx_1.pem;
     ssl_certificate_key /etc/nginx/cert/cert_nginx_1.key; 
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
     ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
     ssl_prefer_server_ciphers on;
     ssl_session_timeout 10m;
     ssl_session_cache builtin:1000 shared:SSL:10m;
     ssl_buffer_size 1400;
     add_header Strict-Transport-Security max-age=15768000;
     ssl_stapling on;
     ssl_stapling_verify on;
     server_name hass.abc.top;
     access_log /var/log/nginx/hass.abc.top_nginx.log combined;
     error_log /var/log/nginx/hass.abc.top_nginx.error.log debug;
     index index.html index.htm index.php;
     if ($ssl_protocol = "") {
         return 301 https://$host$request_uri; 
     }
  
     #error_page 404 /404.html;
     #error_page 502 /502.html;
     charset utf-8; #默认编码方式
     client_max_body_size 75M;

     # 其他的请求全部交给Python的uWSGI来处理
     location / {
      proxy_pass http://192.168.1.4:8123;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection $connection_upgrade;
     }
   }
重启nginx
sudo nginx -s reload


6、完成,浏览器访问
https://hass.abc.top:3352


搞定。
不申请公网ip,一样做到内网穿透

评分

参与人数 1金钱 +20 HASS币 +10 收起 理由
+ 20 + 10 感谢楼主分享!

查看全部评分

回复

使用道具 举报

19

主题

290

帖子

1508

积分

论坛技术达人

积分
1508
金钱
1203
HASS币
130
发表于 2022-6-13 06:39:57 | 显示全部楼层
公网ipv6也是公网ip。只不过ipv4属于淘汰过程中-很多路由老设备还在用。ipv6的问题是如果路由器不启用ipv6,你就访问不了目前新的只支持ipv6的网站,ipv6的防火墙网段设置也是麻烦。
回复

使用道具 举报

0

主题

97

帖子

1591

积分

金牌会员

Rank: 6Rank: 6

积分
1591
金钱
1494
HASS币
0
发表于 2022-6-13 08:32:28 | 显示全部楼层
我最近也在折腾ipv6,一直没成功。非得要反向代理吗?
回复

使用道具 举报

19

主题

270

帖子

1892

积分

金牌会员

Rank: 6Rank: 6

积分
1892
金钱
1622
HASS币
50
 楼主| 发表于 2022-6-13 08:34:04 | 显示全部楼层
riceball 发表于 2022-6-13 06:39
公网ipv6也是公网ip。只不过ipv4属于淘汰过程中-很多路由老设备还在用。ipv6的问题是如果路由器不启用ipv6, ...

没错呢。其实我要说的就是,现在的光猫,可能已经默认打开了ipv6,防火墙也是默认支持了。我一个是移动网络,光猫直接支持了;一个是联通网络,光猫桥接,R6400拨号,我只是把ipv6启用了,其他设置都是默认。
所以,没有遇到运营商ipv6启用问题,没有遇到防火墙问题。由于原先我就是用nginx做转发,原内网应用方式不变,所以也没有遇到各应用适应ipv6问题。
回复

使用道具 举报

19

主题

270

帖子

1892

积分

金牌会员

Rank: 6Rank: 6

积分
1892
金钱
1622
HASS币
50
 楼主| 发表于 2022-6-13 08:39:28 | 显示全部楼层
skasoka 发表于 2022-6-13 08:32
我最近也在折腾ipv6,一直没成功。非得要反向代理吗?

不是必须反代。我体验到的是,每台设备都有一个ipv6地址,如果应用全在一个设备上,不需要反代,外网直连的。我的是有3个设备要外网链进来,又只想用一个访问域名一个证书,所以就继续沿用nginx反代了
回复

使用道具 举报

40

主题

3057

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11135
金钱
8028
HASS币
182
发表于 2022-6-13 08:40:59 | 显示全部楼层
姚远 发表于 2022-6-13 08:34
没错呢。其实我要说的就是,现在的光猫,可能已经默认打开了ipv6,防火墙也是默认支持了。我一个是移动网 ...

温馨提示,开启 ipv6 后,局域网所有设备都会获得 ipv6 公网地址,如果路由的防火墙没限制,相当于整个局域网都暴露在公网内。
建议还是对 iptables 的 forward 表进行限制,仅开放必要的应用端口能从wan 连入,其余一律 drop。
当然你也可以说 ipv6 地址池庞大,没人能通过扫描轻易的刚好扫中你家中带漏洞的设备。
那我只想说,参考三体黑森林法则。如果你做到不和外界通信,那么就没问题。
Nero
回复

使用道具 举报

19

主题

270

帖子

1892

积分

金牌会员

Rank: 6Rank: 6

积分
1892
金钱
1622
HASS币
50
 楼主| 发表于 2022-6-13 08:46:02 | 显示全部楼层
neroxps 发表于 2022-6-13 08:40
温馨提示,开启 ipv6 后,局域网所有设备都会获得 ipv6 公网地址,如果路由的防火墙没限制,相当于整个局 ...

说的太对了,这就是我接下来要折腾的,防火墙。还有一个要折腾的,这个ipv6地址不知道会不会变,如果它会变,我还要折腾域名解析
回复

使用道具 举报

5

主题

357

帖子

2046

积分

金牌会员

Rank: 6Rank: 6

积分
2046
金钱
1674
HASS币
60
发表于 2022-6-13 10:00:58 | 显示全部楼层
姚远 发表于 2022-6-13 08:46
说的太对了,这就是我接下来要折腾的,防火墙。还有一个要折腾的,这个ipv6地址不知道会不会变 ...

地址会变,弄个ddns脚本自动解析即可
回复

使用道具 举报

2

主题

65

帖子

1075

积分

金牌会员

Rank: 6Rank: 6

积分
1075
金钱
1010
HASS币
0
发表于 2022-6-13 10:46:09 来自手机 | 显示全部楼层
我是ipv6+Nginxwebui,自动申请、续签证书比较方便
回复

使用道具 举报

10

主题

183

帖子

1771

积分

论坛技术达人

积分
1771
金钱
1583
HASS币
20
发表于 2022-6-13 10:52:28 | 显示全部楼层
公网ip挂ddns,被联通工作人员上门敲门整改两次,再有第三次直接断网。目前只有内网穿透可以稳定用。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-2 05:59 , Processed in 0.060229 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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