惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Cloudflare Blog
Microsoft Security Blog
Microsoft Security Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
LangChain Blog
W
WeLiveSecurity
P
Proofpoint News Feed
月光博客
月光博客
NISL@THU
NISL@THU
L
LINUX DO - 最新话题
Webroot Blog
Webroot Blog
T
Threatpost
Y
Y Combinator Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Threat Research - Cisco Blogs
Vercel News
Vercel News
Jina AI
Jina AI
阮一峰的网络日志
阮一峰的网络日志
S
Schneier on Security
J
Java Code Geeks
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
小众软件
小众软件
MyScale Blog
MyScale Blog
N
News and Events Feed by Topic
Stack Overflow Blog
Stack Overflow Blog
有赞技术团队
有赞技术团队
The Hacker News
The Hacker News
Schneier on Security
Schneier on Security
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Help Net Security
Help Net Security
Recent Announcements
Recent Announcements
S
Security @ Cisco Blogs
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
Securelist
T
The Exploit Database - CXSecurity.com
云风的 BLOG
云风的 BLOG
C
Cisco Blogs
雷峰网
雷峰网
量子位
Google DeepMind News
Google DeepMind News
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Spread Privacy
Spread Privacy
L
Lohrmann on Cybersecurity
I
Intezer
T
The Blog of Author Tim Ferriss
G
GRAHAM CLULEY
D
DataBreaches.Net
V
Vulnerabilities – Threatpost
P
Privacy & Cybersecurity Law Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
罗磊的独立博客

泠泫凝的异次元空间

通过串口安装Linux | 泠泫凝的异次元空间 curl自编译 | 泠泫凝的异次元空间 Minecraft 认证服务器代理 | 泠泫凝的异次元空间 飞塔分流配置实战 | 泠泫凝的异次元空间 Windows 安全启动证书检查 | 泠泫凝的异次元空间 Lxn-OneDriveCLI | 泠泫凝的异次元空间 华三交换机配置 ERPS 环网 | 泠泫凝的异次元空间 PVE 配置 VLAN 感知 | 泠泫凝的异次元空间 MT7922 无线网卡安装 | 泠泫凝的异次元空间 无显示输出 Linux 主机配置桌面显示 | 泠泫凝的异次元空间 Wireguard 部署 SOP 手册(自用) | 泠泫凝的异次元空间 Zabbix 7.4 通过钉钉发送告警提醒 | 泠泫凝的异次元空间 Debian with xfce 通过 VNC 共享屏幕 华三S6860 IRF堆叠 | 泠泫凝的异次元空间 iPad 应用侧载 | 泠泫凝的异次元空间 Smart DNS 分区解析 | 泠泫凝的异次元空间 建立 NFS 服务器并挂载到客户端 | 泠泫凝的异次元空间 将 Android 以 MTP 方式连接至 Debian PVE 虚拟机迁移至 vCenter | 泠泫凝的异次元空间 vCenter 虚拟机迁移至 PVE | 泠泫凝的异次元空间 PVE迁移时提示密钥验证失败 | 泠泫凝的异次元空间 修改Windows设备设置区域 | 泠泫凝的异次元空间 恢复 SecureCRT 7.x 保存的密码 | 泠泫凝的异次元空间 PVE 超融合下电与上电流程 | 泠泫凝的异次元空间 记一次Zabbix异常处理 | 泠泫凝的异次元空间 苹果设备保存SHSH2 | 泠泫凝的异次元空间 PVE超融合部署 | 泠泫凝的异次元空间 树莓派启用zram | 泠泫凝的异次元空间 在 Hyper-V 上安装 EVE-NG | 泠泫凝的异次元空间 Zabbix 部署与 Windows 硬件信息收集 | 泠泫凝的异次元空间 在WSL2中安装CUDA支持 | 泠泫凝的异次元空间 MinIO 集群部署 | 泠泫凝的异次元空间 vmware 虚拟化平台备份工具 Veeam 12 安装及配置 ubuntu 24.04 安装 nVidia 驱动后网卡消失 XMRig 自编译 | 泠泫凝的异次元空间 云桌面通过组策略统一体验配置 | 泠泫凝的异次元空间 Fortigate SSLVPN 无法连接内网 VNC 服务器 CentOS 7 使用镜像作为本地源并将自身作为YUM源服务器 | 泠泫凝的异次元空间 CentOS 7 离线更新 OpenSSH 服务 使用KubeKey离线部署Kubernetes | 泠泫凝的异次元空间 使用PGP对消息进行签名 | 泠泫凝的异次元空间 禁止MinIO展示桶内文件列表 | 泠泫凝的异次元空间 华为 Fusion Access 云桌面部署 | 泠泫凝的异次元空间 vmware Horizon 模板机部署 | 泠泫凝的异次元空间 vmware Horizon 云桌面与云应用部署 | 泠泫凝的异次元空间 Citrix XenApp 云应用交付 | 泠泫凝的异次元空间 Citrix XenDesktop 云桌面部署 | 泠泫凝的异次元空间 PVE LVM 扩容 | 泠泫凝的异次元空间 Linux 网络聚合(bond方式) | 泠泫凝的异次元空间 Citrix XenServer 7.2 部署教程 | 泠泫凝的异次元空间 在 Windows Server 2019 上安装 AMD 显卡驱动 openEuler 安装并使用 EPEL 源 | 泠泫凝的异次元空间 从已有Linux系统创建带桌面环境的Docker镜像 | 泠泫凝的异次元空间 下载联想原厂镜像及解密 | 泠泫凝的异次元空间 在基于 arm 架构的服务器上安装 PVE | 泠泫凝的异次元空间 自制 EVE-NG 镜像 | 泠泫凝的异次元空间 不使用 Snap 在 ubuntu 上安装 Chromium 浏览器 Fortigate 6.2 固件从 PPPoE 获得 IPv6 地址 Fortigate 手记 | 泠泫凝的异次元空间 Fortigate 通过命令行自定义 NTP 服务器 | 泠泫凝的异次元空间 arm 架构 CentOS 7 安装 MySQL 5.7 版本 ubuntu 20 安装计算卡驱动和 CUDA Toolkit 锐捷诺客云添加设备后一直显示“等待同步” | 泠泫凝的异次元空间 Windows 10 自动登录 | 泠泫凝的异次元空间 k8s 部署踩坑合集 | 泠泫凝的异次元空间 改变 Ubuntu TTY 终端字体 | 泠泫凝的异次元空间 Parted 无损扩容磁盘分区 | 泠泫凝的异次元空间 NTP服务器测试 | 泠泫凝的异次元空间 【相亲相爱】2024祝大家!新年快乐!!! ESXi中重新挂载数据盘 | 泠泫凝的异次元空间 使用 MediaMTX + RTSP 搭建低延迟直播服务器 Firewalld 手记 | 泠泫凝的异次元空间 Ubuntu 上不使用 snapd 安装 Firefox 在 armbian 上安装 xfce 和 VNC 做远程桌面 在 ubuntu 20 上使用 TigerVNC 做远程桌面 在 openEuler 上部署安装 openGauss | 泠泫凝的异次元空间 Wireguard 组网笔记 | 泠泫凝的异次元空间 让特定IP(段)走VPN连接 | 泠泫凝的异次元空间 在Wireguard中排除部分IP(段) | 泠泫凝的异次元空间 CentOS 7 上升级 OpenSSL | 泠泫凝的异次元空间 将黑群晖部署到ESXi(笔记) | 泠泫凝的异次元空间 apk 代码反编译笔记 | 泠泫凝的异次元空间 Windows 搭建 iSCSI 服务器全攻略 | 泠泫凝的异次元空间 CentOS 7 编译安装 Python 3 开源语音识别工具 Whisper | 泠泫凝的异次元空间 Ubuntu 下 Python 编译安装及关联问题解决 | 泠泫凝的异次元空间 Ansible Tower 安装 | 泠泫凝的异次元空间 提高 PowerPoint 导出到图片时的分辨率 | 泠泫凝的异次元空间 利用亚马逊云服务器和VPC 构建安全可靠的虚拟网络 | 泠泫凝的异次元空间 Windows Server 多网卡链路聚合 | 泠泫凝的异次元空间 MT3000路由+移远EC20模块体验 | 泠泫凝的异次元空间 Python安装依赖时出现ctype问题 | 泠泫凝的异次元空间 GL-MT3000日用设置 | 泠泫凝的异次元空间 解除 vCenter 的最低内存限制 | 泠泫凝的异次元空间 跳过Windows 11的强制联网和账户登录 | 泠泫凝的异次元空间 Cloudflare Trace API 信息详解 | 泠泫凝的异次元空间 在CentOS中搭建由nginx反代和Apache2作为后端的Wordpress | 泠泫凝的异次元空间 通过nginx进行文件共享 | 泠泫凝的异次元空间 禁用 sudo 时密码认证 | 泠泫凝的异次元空间 在docker中一键搭建IPSec/IKEv2 VPN | 泠泫凝的异次元空间
OpenWRT IPv6 防火墙设置 | 泠泫凝的异次元空间
Lxn's Area · 2024-03-01 · via 泠泫凝的异次元空间

默认情况下 OpenWRT 是不允许 IPv6 出流量的,本文将通过防火墙设置放通 IPv6 出流量。

测试

首先你得确保你的运营商没有屏蔽你的IPv6流量,测试的方法也很简单,一般来说OpenWRT不会屏蔽ICMP流量,可以先获得以下本机IPv6然后从外部具备IPv6的环境Ping一下,如果能通则说明至少ISP层面没有强封锁;如果干脆Ping不通的话考虑光猫或者运营商层面上是否存在限制。

如果你在本机上直接使用诸如ifconfig等命令查看IPv6地址的话可能会比较困惑无法分辨哪个是有效IPv6:

1
2
3
4
5
6
7
8
9
10
11
root@armbian:~# ifconfig eth0
eth0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 1500
inet 192.168.8.3 netmask 255.255.255.0 broadcast 192.168.8.255
inet6 2409:56db:9b06:47f3:2173:5b3f:89d2:a20e prefixlen 64 scopeid 0x0<global>
inet6 fe80::b379:19a4:99c4:48fe prefixlen 64 scopeid 0x20<link>
ether F4:FC:03:DF:25:05 txqueuelen 1000 (Ethernet)
RX packets 149754056 bytes 129274231243 (120.3 GiB)
RX errors 0 dropped 4004 overruns 0 frame 0
TX packets 145761725 bytes 105393512031 (98.1 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 65

所以不如直接使用外部API获得当前IPv6地址:

1
2
root@armbian:~# curl -6 ip.sb
2409:56db:9b06:47f3:2173:5b3f:89d2:a20e

环境

  • OpenWRT:OpenWrt 21.02-SNAPSHOT r15812+879-46b6ee7ffc / LuCI openwrt-21.02 branch git-22.245.77575-63bfee6
  • 路由器:GL-MT3000

能Ping通吗?

首先从ip.sb获得你的IPv6地址之后可以从外部具备IPv6通信能力的环境Ping一下,如果能够Ping通,则进行下一步。一般来说OpenWRT不会屏蔽ICMP流量,可以先Ping一下,如果到这里都不通一般也没必要下一步了。

能通信吗?

创建一个临时规则看一下能不能通信:打开OpenWRT-网络-防火墙-通信规则,拉到下面,新增:

  • 名称随便写,但要记住
  • 协议选TCPUDPICMP
  • 源区域选WAN口所在Zone
  • 源地址源端口留空
  • 目标区域:
    如果是以路由器本机作为测试,则选择“设备(输入)”
    如果是以下面挂接设备作为测试,则选择LAN口所在Zone(推荐)
  • 目标地址目标端口留空
  • 操作选接受

其他未提到的选项全部留空。

这个时候在你对应的目标区域下面的设备上开个http服务,我这里用的是caddy测试,比较方便主要是。别的文章提到测试80、443啥的,我倒觉得没必要,大概率不会通(53、80、443、8080)。

  1. 下载caddy
  2. 写个caddyfile
    1
    2
    3
    4
    5
    6
    7
    :6666 {
    respond "Port-6666-Respond"
    }

    :7788 {
    respond "Port-7788-Respond"
    }
  3. 把caddyfile和caddy主程序放在一起,然后启动caddy:
    1
    ./caddy run --watch
  4. 根据测试的端口动态调整caddyfile的内容,然后在外面curl一下,有正确的回应就可以了。

这个时候测试完了,到OpenWRT防火墙里面删掉刚才新建的防火墙规则不要动别的

设置防火墙

打开OpenWRT-网络-防火墙-通信规则,拉到下面,新增:

  • 常规设置
    • 名称随便写
    • 协议选TCPUDPICMP(或者根据实际情况写,不需要的可以不选)
    • 源区域选WAN口所在Zone
    • 源地址指定的是访问者的地址,如果需要就指定,不需要则留空
    • 源端口指定的是访问者访问目标地址的端口,如果需要就指定,不需要则留空
    • 目标区域:
      如果是以路由器本机作为暴露对象,则选择“设备(输入)”
      如果是以下面挂接设备作为暴露对象,则选择LAN口所在Zone(推荐)
    • 目标地址看下面解释
    • 目标端口根据实际情况写,就是要暴露出去的端口
    • 操作选接受
  • 高级设置
    • 限制地址类型:IPv6
  • 时间限制
    • 有需要可以填写,控制哪些时间内规则生效

其他未提到的选项均留空或保持默认,不要乱动其他的

目标相关

首先先简单介绍一下IPv6地址的类型:

  1. 本地地址(链路本地地址):
    只出现在一条链路上,每个网络接口都有一个这样的IPv6地址。此地址只能出现在二层链路上,不能通过三层设备。地址范围是fe80::/10,地址组成规则:fe80+10bit的0+mac地址扩展成64bit地址。
  2. 唯一本地地址(ULA):
    ULA在概念上更接近IPv4概念下的“局域网”的概念。指在一个组织内部可达的ipv6地址,这类地址不能出现在internet上。地址范围:fc00::/7
  3. 全球单播地址(公网IP):
    等同于IPv4公网地址。用于可以聚合的链路,最后提供给网络服务提供商。这种地址类型的结构允许路由前缀的聚合,从而满足全球路由表项的数量限制。地址包括运营商管理的48位路由前缀和本地站点管理的16位子网ID,以及64位接口ID。
    其中2002::/16被称为6to4地址,就是IPv4地址转成IPv6地址;此外还有3ffe::/16用于测试目的。

其中只有第三种适用本文的防火墙开放端口设置。并根据IPv6的获取方式分为如下几种:

  1. EUI-64(最推荐)
    EUI-64 地址有着我们需要的优点:后缀固定不变、前缀实时更新。一般情况下,我们应该使用它。如果获得的子网大小不是 /64,可能不按预期工作。
    想了解EUI-64的可以查看这篇文章(英文)
    如果不确定自己的地址是不是EUI-64地址,可以在EUI-64 Calculator用自己的MAC地址计算一下并对比从ip.sb等API获得的IPv6的后缀。
  2. 临时DHCPv6地址(不推荐)
    这种情况下所有地址部分都不确定,不推荐
  3. 固定后缀的DHCPv6地址(推荐)
    在OpenWRT中可以指定客户端的DHCPv6后缀,需要对需要开放端口的设备固定DHCPv6后缀
    打开网络-DHCP/DNS-静态地址分配-新增,然后指定MAC地址和IPv6后缀即可,IPv6后缀是可以随意指定的。
    注意租期需要设置的比较短,否则当DHCPv6更新时客户端可能不会收到更新。

如果你的地址是EUI64地址或者指定了后缀的DHCPv6地址,那么在上面“目标地址”中可以按如下规则填写,如果路由器被分配到的子网不是/64则根据实际情况调整:

1
::<需要暴露的主机的后缀>/::ffff:ffff:ffff:ffff

例如:

1
2
::E6E8:D2FF:FE94:541B/::ffff:ffff:ffff:ffff
::6699/::ffff:ffff:ffff:ffff

其中/::ffff:ffff:ffff:ffff部分是掩码,写在目标地址的时候需要一并写入

这部分内容也适用于来源地址,指定访问设备。

Windows 启用 EUI64 地址

参考文章:Windows11配置基于EUI-64的SLAAC IPv6地址

以管理员权限打开PowerShell,然后输入Get-NetIPv6Protocol即可获得当前Windows的IPv6配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
PS C:\Windows\system32> Get-NetIPv6Protocol

DefaultHopLimit : 128
NeighborCacheLimit(Entries) : 256
RouteCacheLimit(Entries) : 4096
ReassemblyLimit(Bytes) : 66057504
IcmpRedirects : Enabled
SourceRoutingBehavior : DontForward
DhcpMediaSense : Enabled
MediaSenseEventLog : Disabled
MldLevel : All
MldVersion : Version2
MulticastForwarding : Disabled
GroupForwardedFragments : Disabled
RandomizeIdentifiers : Enabled
AddressMaskReply : Disabled
UseTemporaryAddresses : Enabled
MaxTemporaryDadAttempts : 3
MaxTemporaryValidLifetime : 7.00:00:00
MaxTemporaryPreferredLifetime : 1.00:00:00
TemporaryRegenerateTime : 00:00:05
MaxTemporaryDesyncTime : 00:10:00
DeadGatewayDetection : Enabled

可以看到RandomizeIdentifiersUseTemporaryAddresses默认为启用状态,也就是生成随机地址与使用临时地址,需要禁用掉这两个选项才能使用基于EUI-64的IPv6地址。

1
2
Set-NetIPv6Protocol -UseTemporaryAddresses Disabled
Set-NetIPv6Protocol -RandomizeIdentifiers Disabled

设置好后重连网络或重启即可。

 上一篇

Windows