启用 IPv6 #

SSH 登录服务器,Debian 还没有自动获取 IPv6

ip add
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc fq state UP group default qlen 1000
    link/ether 98:76:54:32:10:ab brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    altname ens3
    inet 10.0.0.212/24 brd 10.0.0.255 scope global dynamic eth0
       valid_lft 85570sec preferred_lft 85570sec
    inet6 fe80::6543:5678:aabb/64 scope link
       valid_lft forever preferred_lft forever
有些步骤似乎没啥用,管它呢,要怪就怪 ChatGPT

更改配置

sudo vim /etc/sysctl.conf

添加两行

net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0

更新配置

sudo sysctl -p
//输出
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0

添加 IPv6 前缀(Oracle 服务器这步可跳过)

$ sudo ip -6 addr add <IPv6_address>/<prefix_length> dev <interface_name>

使用 DHCP 获取 IPv6 地址

这时候服务器上 IPv6 已经可以使用了

PING dejavu.moe(2606:4700:3031::6815:1f31 (2606:4700:3031::6815:1f31)) 56 data bytes
64 bytes from 2606:4700:3031::6815:1f31 (2606:4700:3031::6815:1f31): icmp_seq=1 ttl=59 time=4.56 ms
64 bytes from 2606:4700:3031::6815:1f31 (2606:4700:3031::6815:1f31): icmp_seq=2 ttl=59 time=1.27 ms
64 bytes from 2606:4700:3031::6815:1f31 (2606:4700:3031::6815:1f31): icmp_seq=3 ttl=59 time=1.31 ms
64 bytes from 2606:4700:3031::6815:1f31 (2606:4700:3031::6815:1f31): icmp_seq=4 ttl=59 time=1.30 ms
64 bytes from 2606:4700:3031::6815:1f31 (2606:4700:3031::6815:1f31): icmp_seq=5 ttl=59 time=1.25 ms
64 bytes from 2606:4700:3031::6815:1f31 (2606:4700:3031::6815:1f31): icmp_seq=6 ttl=59 time=1.26 ms
64 bytes from 2606:4700:3031::6815:1f31 (2606:4700:3031::6815:1f31): icmp_seq=7 ttl=59 time=2.73 ms

服务器每次重启后都需要手动执行一次 DHCP IPv6,可以设置自动获取

sudo vim /etc/default/grub

包含下面字段的,添加一个 ipv6.disable=0,和其他参数使用空格隔开

GRUB_CMDLINE_LINUX_DEFAULT="quiet ipv6.disable=0"

更新 GRUB

编辑网络服务配置文件

sudo vim /etc/network/interfaces

原来的配置文件

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet dhcp

在下面添加一行

然后重启网络服务

sudo systemctl restart networking

当前会话自动断开,您似乎再也连不上 SSH 了。不要担心,VPS 并没有失联

ssh [email protected]
ex_exchange_identification: Connection closed by remote host
Connection closed by 140.238.15.230 port 41965

回到 Oracle 控制台,强制关机,然后重新启动就 OK 了

使用 SSH 重新登录服务器后,可以查看

ip add
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc fq state UP group default qlen 1000
    link/ether 98:76:54:32:10:ab brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    altname ens3
    inet 10.0.0.212/24 brd 10.0.0.255 scope global dynamic eth0
       valid_lft 85226sec preferred_lft 85226sec
    inet6 2600:ccdd:7788:90ab:cdef:ffee:1314:1314/128 scope global  # 完成
       valid_lft forever preferred_lft forever
    inet6 fe80::6543:5678:aabb/64 scope link
       valid_lft forever preferred_lft forever