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

推荐订阅源

F
Fortinet All Blogs
aimingoo的专栏
aimingoo的专栏
V
Visual Studio Blog
罗磊的独立博客
爱范儿
爱范儿
J
Java Code Geeks
博客园 - 司徒正美
N
Netflix TechBlog - Medium
Microsoft Security Blog
Microsoft Security Blog
美团技术团队
小众软件
小众软件
Google DeepMind News
Google DeepMind News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
V2EX
博客园 - 聂微东
云风的 BLOG
云风的 BLOG
WordPress大学
WordPress大学
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Jina AI
Jina AI
Y
Y Combinator Blog
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Martin Fowler
Martin Fowler
Vercel News
Vercel News

林中阴影

林中阴影 | 关于蓝光刻录的一些调查 林中阴影 | 半年前的NAS升级 林中阴影 | “智能” 家居笔记:一→两年后的回顾 林中阴影 | 旧手机做RDP客户端的一些尝试 林中阴影 | 一些矿渣的耗电量 林中阴影 | 穷人的IP-KVM远程访问 林中阴影 | 内网访问第三季:在运营商的CGNAT网络下 林中阴影 | “智能”家居笔记,其之二 林中阴影 | “智能”家居笔记,其之一 林中阴影 | 仅IPv6家庭内网服务实现v6+v4双栈访问 林中阴影 | 下载装小蜜监理拍摄的图片 林中阴影 | 几物互联 林中阴影 | 整了个“新”平板 林中阴影 | 获取招商信用卡账单的另一种方法 林中阴影 | 我在GitHub的⭐ 林中阴影 | Python与光学计算,2021 林中阴影 | 你可能并不需要内网穿透 林中阴影 | 2020 林中阴影 | 和(基本上)什么也不能连的电脑传递信息 林中阴影 | 我将贻笑于大方之家 林中阴影 | 一个新主题 林中阴影 | 2019过去了,我…… 林中阴影 | Beancount试用,半年后 林中阴影 | 自动输入剪贴板中的内容 林中阴影 | Unicode与数学公式 林中阴影 | Python中光学计算相关的库/Awesome Python for Optics 林中阴影 | 一本厕纸小说 林中阴影 | 震惊!为了在Windows上访问EXT4分区,他竟然做出了这样的事! 林中阴影 | 我的2018 林中阴影 | 笔记软件踩雷
林中阴影 | 与IPv6地址战斗
2025-06-04 · via 林中阴影

捣腾家里服务器的另一些副产品。

配置ULA前缀

当你需要设置IPv6网关时,常常需要一个不随着运营商前缀变化的内网地址,这时候设置ULA很好用。

OpenWrt设置ULA前缀

OpenWrt设置ULA前缀

这样,在需要临时修改网关时,可以直接

sudo ip -6 route del default && sudo ip -6 route add default via fd22:9:30::88:88 metric 100

其中,fd22:9:30::88:88是网关地址。

自定义后缀

相比于60d1:24e0:fe4a:5c66这样的后缀,还是::88更帅一些。回字自定义后缀有4种写法,我们Linux真是太厉害辣。

如果是原生Debian,用ifupdown的话:

# /etc/network/interfaces
iface <你的ensXX> inet6 auto
        post-up /sbin/ip token set ::88 dev $IFACE

如果是Ubuntu(或者Ubuntu味道的Armbian),一般使用networkmanager:

sudo nmcli connection modify "Wired connection 1" ipv6.addr-gen-mode eui64
sudo nmcli connection modify "Wired connection 1" ipv6.ip6-privacy 0
sudo nmcli connection modify "Wired connection 1" ipv6.token "::88"

如果是(直接安装的)OpenMediaVault,它使用netplan:

# touch /etc/netplan/30-fix-token.yaml
network:
  ethernets:
    ens18:
      ipv6-address-token: "::123:123"
# sudo netplan apply

应该还会有人用systemd-networkd配置网络,自己读manpage去吧,祝你成功。

更快地推送IPv6地址

之前的DDNS更新脚本,或者ddns-go,都是使用cron来轮询的。而ip monitor命令不需要轮询,在IP地址变更的第一时间就会发送消息。配合靠谱的推送服务,可以比别人提前……呃……大概五分钟。

所以没什么用处,建议直接ddns-go。

#cat /etc/systemd/system/dns-updater.service
[Unit]
Description=Dynamic DNS updater
DefaultDependencies=no
Wants=local-fs.target
After=local-fs.target
Wants=network-pre.target
Before=network-pre.target

[Service]
Type=exec
ExecStart=/opt/ddns-updater

[Install]
WantedBy=sysinit.target
#cat /opt/ddns-updater
#!/bin/sh -e

ip -o -6 monitor address |
    while read index iface proto addr dummy scope temporary dummy; do
        case "$iface:$proto:$scope:$temporary" in
            ens18:inet6:global:dynamic)
                addr="${addr%/*}"
                case "$addr" in
                        f*) continue ;;   # 跳过以 f 开头的地址
                esac
                if [ "$addr" != "$current" ]; then
                    NEW_IP="$addr"
                    # 我这里发送到了企业微信机器人,也可以用bark、nfty.sh之类
                    curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxx' \
                        -H 'Content-Type: application/json' \
                        -d "{
                            \"msgtype\": \"text\",
                            \"text\": {
                                \"content\": \"IPv6地址已更新:$NEW_IP\"
                            }
                        }"
                    echo "已通知企业微信,新地址:$NEW_IP"
                    current="$addr"
                fi;;
        esac
    done