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

推荐订阅源

N
Netflix TechBlog - Medium
I
Intezer
人人都是产品经理
人人都是产品经理
F
Full Disclosure
A
About on SuperTechFans
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
Google DeepMind News
Google DeepMind News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
J
Java Code Geeks
博客园 - 三生石上(FineUI控件)
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Blog — PlanetScale
Blog — PlanetScale
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
博客园 - 司徒正美
P
Proofpoint News Feed
宝玉的分享
宝玉的分享
Engineering at Meta
Engineering at Meta
F
Fortinet All Blogs
The GitHub Blog
The GitHub Blog
L
LangChain Blog
Last Week in AI
Last Week in AI
B
Blog
Project Zero
Project Zero
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
Schneier on Security
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
U
Unit 42
B
Blog RSS Feed
Y
Y Combinator Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
P
Privacy International News Feed
N
News and Events Feed by Topic
W
WeLiveSecurity
Cloudbric
Cloudbric
G
GRAHAM CLULEY
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
Check Point Blog
G
Google Developers Blog
The Last Watchdog
The Last Watchdog
Latest news
Latest news
S
Secure Thoughts
Simon Willison's Weblog
Simon Willison's Weblog
Scott Helme
Scott Helme
H
Heimdal Security Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog

涛叔

自用 Claude Code 拼车中转服务 欢迎使用 @ZZ.AC 邮箱服务 我在用的 VPS 云主机 实现备份3-2-1原则 Go语言接口的空指针问题 玩转 ZZ.AC 域名 ZZ.NIC 公益 Linux 主机空间 使用 Nginx 构建计费 DoH 代理服务 通过 Let’s Encrypt 为 IP 地址签发免费 SSL 证书
DMIT 主机自定义 IPv6 地址
2026-07-18 · via 涛叔

DMIT 是少数提供中国大陆优化的 IPv6 网络的服务商,这是我选它家的一个很重要的因素。而且 DMIT 默认为每台 VPS 分配一整段 /64 IPv6 地址。Linux 内核又会通过 SLAAC 自动生成一个类似2001:0db8:1:2:b4c2:e9a5:f123:c842这样的地址,太长了,看着眼花。本文分享如何给主机指定靓号 IPv6 地址🤩

假如你分配的地址为2001:0db8:1:2:b4c2:e9a5:f123:c842,那么整个2001:0db8:1:2::/64 都是你的😎你可以选用以下地址:

  • 2001:0db8:1:2::/64
  • 2001:0db8:1:2::1/64
  • 2001:0db8:1:2::a/64

我最喜欢第一个,因为它最短。在 IPv4 网络中,主机部分全为零表示网络地址,比如 192.168.1.0,不能用作主机 IP 地址。但 IPv6 不一样,允许主机部分全为零。所以就有了最短的地址。

虽然 IPv6 允许,但有些服务商,如 Oracle,会自己占用 2001:0db8:1:2::/64 这类地址,甚至连 2001:0db8:1:2::1/64 都可能被用作默认网关。大家要搞清楚自己的情况。而 DMIT 则是将整个 /64 段都分配给云主机,大家随便用。

选好地址我们开始修改系统配置。

首先是 netplan 配置。DMIT 的主机使用 netplay 设置网络地址,配置文件在 /etc/netplan/50-cloud-init.yaml, 内容类似:

network:
  version: 2
  ethernets:
    eth0:
      match:
        macaddress: "1a:2b:3c:4d:5f:6e"
      addresses:
      - "192.168.1.2/32"
      - "2001:db8:1:2::/64"
      nameservers:
        addresses:
        - 1.1.1.1
        - 1.0.0.1
        search: []
      set-name: "eth0"
      routes:
      - on-link: true
        to: "default"
        via: "192.168.1.1"

注意,其中 address 项的 IPv6 地址是我们自己加上去的,最初只有一个 IPv4 地址。

改完之后执行netplan apply命令就会生效。

查看当前 IP 地址:

ip -6 addr show dev eth0

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet6 2001:db8:1:2:abcd:abcd:abcd:abcd/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 86396sec preferred_lft 14396sec
    inet6 2001:db8:1:2::/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::abcd:abcd:abcd:abcd/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever

第一个是内核通过 SLAAC 自动生成的地址,第二个是我们定制的地址,第三个是 link-local 地址。

到这一步,我们就可以通过靓号地址2001:db8:1:2::访问服务器了。如果你有域名,可以设一个 AAAA 记录指向这个地址。

虽然从外部可以通过新 IPv6 地址访问,但如果从我们的服务器访问外部的 IPv6 服务,内核还是会使用那个长地址。具体细节涉及到复杂的 IPv6 地址选择逻辑,这里不展开。

如果相关服务需要设置 IPv6 来源地址白名单,比如我自己的搭建的 DNS 权威服务器就需要在备用节点对主节点 IPv6 地址加白,那么就得要求 Linux 在访问外部网络时优先使用我们设置的靓号地址!

大家可以先执行curl ip.network验证一下自己的默认 IPv6 地址。

我查了很多内容,都不管用。可能也是因为我还运行了 systemd-networkd 的缘故,情况比较复杂。但实验发现,最稳定的办法还是禁用 SLAAC 功能,也就是不让内核生成临时地址。

如果你没有启用 systemd-networkd 应该只要创建/etc/sysctl.d/ipv6.conf内容如下:

net.ipv6.conf.eth0.autoconf = 0

意思是针对 eth0 网卡禁用自动生成 IPv6 地址功能,如果你的网卡不是 eth0 请按需修改。

如果你像我一样开启了 systemd-networkd,就需要创建 /etc/systemd/network/10-netplan-eth0.network.d/override.conf 文件:

[IPv6AcceptRA]
UseAutonomousPrefix=no

意思跟前面的 sysctl 是一样的。重启服务器再看 eth0 的 IPv6 地址:

ip -6 addr show dev eth0

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet6 2001:db8:1:2::/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::abcd:abcd:abcd:abcd/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever

是不是就清真了🎉

再执行curl ip.network就看到返回靓号地址了🥂