飞牛开启EUI64功能,实现主路由IPv6防火墙单设备放行
本文最后更新于2 天前,其中的信息可能已经过时,如有错误请发送邮件到123@1day.vip

前言

我家里的网络是开启主路由的防火墙,关闭下级设备防火墙的策略,好处是结构简单易操作,同时可以有效控制一些智能设备暴露到公网。于是会衍生出一个问题,远程访问家里飞牛上的服务,由于没有公网IPv4,所以常用IPv6通过ddns访问内网,但IPv6会变,主路由的防火墙怎么设置就成为了困难,其实很好解决,只需开启EUI64功能,就可以固定IPv6地址后缀。

如何设置

  1. 开启飞牛的EUI-64功能,开启后IPv6地址的后四段会被固定
    dd0b492c54401b0b.png
  2. 设置DDNS服务,实现外网访问
    这里服务不限,可以用飞牛自己的,也可安装ddns-go等工具实现,我自己习惯用lucky。
    6db4f114e3f036e0.png
  3. 主路由开启IPv6防火墙,路由器型号不限,OpenWrt软路由或品牌硬路由只要有防火墙功能就可以。
    我的主路由是华硕,开启IPv6防火墙后,外网无法访问,说明防火墙已生效。
    e735f4c74c7c94f3.png
  4. 添加放行规则,本地IP填写::飞牛IPv6后四段/::ffff:ffff:ffff:ffff::飞牛IPv6后四段/-64,通信端口写外网映射端口,我的是6677
    {31FD5985-339B-412F-8F38-119CA6CF336F}.png

各系统设备通过 EUI-64 固定 IPv6 后缀

飞牛设置仅需勾选是最简单的,当然其他设备也有相同的需求,比如异地组网、远程操控电脑、串流游戏等,只是要麻烦一点需要通过命令行的形式开启EUI-64功能。

Windows 11

用管理员权限打开 PowerShell,输入 Get-NetIPv6Protocol。

PS C:\Users\sukipai> Get-NetIPv6Protocol

DefaultHopLimit               : 128
......
RandomizeIdentifiers          : Enabled
AddressMaskReply              : Disabled
UseTemporaryAddresses         : Enabled
......

注意到以下两个参数
RandomizeIdentifiers:网络配置参数,用于控制 Windows 操作系统在生成接口标识符(Interface Identifier,IID)时是否使用随机值。
UseTemporaryAddresses:设置使用临时地址。
输入以下命令使用 EUI-64 固定 IPv6 后缀

Set-NetIPv6Protocol -RandomizeIdentifiers Disabled
Set-NetIPv6Protocol -UseTemporaryAddresses Disabled

执行后,IP 可能会瞬间发生变化导致断连,建议做好充分准备再操作。
变化后的 IPv6 后缀会包含你的网卡 MAC 地址。

Linux

在 Linux 系统中,可以通过 sysctl 配置来禁用随机化标识符:

# 查看当前配置
sysctl net.ipv6.conf.all.use_tempaddr
sysctl net.ipv6.conf.default.use_tempaddr
sysctl net.ipv6.conf.eth0.use_tempaddr

# 禁用临时地址和随机化标识符
sudo sysctl -w net.ipv6.conf.all.use_tempaddr=0
sudo sysctl -w net.ipv6.conf.default.use_tempaddr=0
sudo sysctl -w net.ipv6.conf.eth0.use_tempaddr=0

# 永久生效(以Ubuntu/Debian为例)
echo "net.ipv6.conf.all.use_tempaddr = 0" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.default.use_tempaddr = 0" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.eth0.use_tempaddr = 0" | sudo tee -a /etc/sysctl.conf

# 应用配置
sudo sysctl -p

重启网络服务或重新连接网络后,系统将使用基于 MAC 地址的 EUI-64 标识符。

macOS

在 macOS 中,可以通过以下命令配置:

# 查看当前网络接口配置
networksetup -listallnetworkservices

# 对于每个网络接口(如Wi-Fi、Ethernet),禁用隐私扩展
sudo networksetup -setv6privacy Wi-Fi off

# 验证配置
networksetup -getv6privacy Wi-Fi
或者使用 sysctl 方法:
# 临时禁用
sudo sysctl -w net.inet6.ip6.use_tempaddr=0

# 永久生效
echo "net.inet6.ip6.use_tempaddr=0" | sudo tee -a /etc/sysctl.conf

验证配置

配置完成后,可以通过以下命令验证 IPv6 地址是否使用 EUI-64 格式:

# Windows
ipconfig /all

# Linux
ip -6 addr show

# macOS
ifconfig en0 | grep inet6

查找包含网卡 MAC 地址信息的 IPv6 地址(通常以fe80::开头的链路本地地址和全局单播地址)。

作者:无辣
感谢大家的支持
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇