osnosn

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  24 随笔 :: 0 文章 :: 8 评论 :: 0 引用

设置openwrt路由器的防火墙_允许从外网访问内网的ipv6服务

转载注明来源: 本文链接 来自osnosn的博客,写于 2019-11-02.

参考文章:

现在家庭宽带的运营商,都已经提供 ipv6 了。
当你拨号上网后,运营商给你的路由器分配一个 ipv6 的同时,还会给你分配一个 ipv6 的前缀。
这样,你路由器后面的所有设备都会得到一个公网的 ipv6 地址。
但是,你会发现,内网的设备,虽然有公网ipv6地址,但无法从外网访问它们。仅能从外网ping通它们。
这是因为路由器的缺省设置。为了保护内网设备,缺省没有把内网设备暴露到公网上,仅仅允许从公网ping它们。

如果你内网有一台机器,提供了https或别的什么的服务,需要允许从公网访问它。
就需要修改路由器防火墙的设置,允许从公网访问这台机器的指定端口。

OpenWRT 的防火墙设置:

添加一个规则:

返回后,可以看到有一个"未命名的规则",编辑它:

按需设置:

  • 内网设备的ipv6地址,
    前半部分是ipv6前缀,是运营商分配的。重拨后会变化。
    后半部分,如果不是eui64,就是随机生成的,也会变。如果是eui64,则与mac地址相关,不会变化,除非换网卡。
  • 如果整个ipv6都会变,防火墙规则就没办法写了。除非全网放行(内网目标地址掩码填::/0any)。
  • 所以配置内网设备的ipv6地址为eui64,防火墙的内网目标地址掩码填 ::xxxx:xxxx:xxxx:xxxx/::FFFF:FFFF:FFFF:FFFF, 这样就比较安全了。
    (ipv6地址掩码比v4灵活,v6可以掩前面,也可以掩后面。v4就只能掩前面)

    比如: 你的ipv6地址为,2408:ebcd:ebcd:ebcd:5678:5678:5678:5678
    则目标地址掩码填, 0:0:0:0:5678:5678:5678:5678/0:0:0:0:FFFF:FFFF:FFFF:FFFF
    连续的 0 简写为两个冒号,即,::5678:5678:5678:5678/::FFFF:FFFF:FFFF:FFFF

  • 设置Linux的ipv6为eui64模式,请参考:(Linux ipv6 无状态 设置为 eui64)
  • 获取本机ipv4/ipv6,更新ddns,请参考:(Linux中获取本机的最新IPv6地址_更新ddns的脚本)

---end---

转载注明来源: 本文链接 来自osnosn的博客

posted on 2019-11-02 14:00  osnosn  阅读(...)  评论(...编辑  收藏