跳到主要内容
  1. 所有文章/

甲骨文服务器分配并启用 IPv6 地址

·1001 字·约 2 分钟

重装系统 #

创建实例的时候选择 Ubuntu 22.04(不要 Minmal),使用脚本 bohanyang/debi,联网一键重装最好的 Debian 11。下面这段命令是 ARM 服务器,不可直接复制使用,后面有我的 SSH 公钥

curl -fLO https://raw.githubusercontent.com/bohanyang/debi/master/debi.sh
chmod a+rx debi.sh

sudo ./debi.sh --cdn --version 11 --network-console --architecture arm64 --ethx --bbr --https --user dejavu --password 7824782348 --authorized-keys-url https://pgp.dejavu.moe/ssh.keys

sudo shutdown -r now

40 秒后使用用户名 installer 进行 SSH 登录,组合键 Ctrl + A,再按 4 就可以查看重装日志了,很快就装好了。

分配 IPv6 #

登录 Oracle 控制台,进入「虚拟云网络」管理

选择需要附加 IPv6 的云网络

点击添加 CIDR 块/IPv6 前缀菜单

直接让 Oracle 自动分配即可

现在我们就获得一个 /56 的 IPv6 段了

回到云虚拟网络管理,进入子网编辑

附加 IPv6 前缀

还是让 Oracle 分配

回到云虚拟网络管理,编辑安全列表

按照自己的需求,放行入站/出站规则

回到云虚拟网络,进入路由表编辑

添加 IPv6 路由规则

按照下面编辑路由规则

进入需要附加 IPv6 的计算实例(VPS)控制台,选择资源下面的 VNIC 菜单

点击分配 IPv6 地址

选择自动从 IPv6 前缀中分配(当然您也可以手动分配 🙄)

当然也可以多分配几个,单个实例似乎最多能分配 3 个(个人感觉意义不大)

接下来我们需要去服务器上配置一下,Oracle 控制台先别关掉,等下还要用……

启用 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 地址

sudo dhclient -6 eth0

这时候服务器上 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 update-grub

编辑网络服务配置文件

sudo vim /etc/network/interfaces

原来的配置文件

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet dhcp

在下面添加一行

iface eth0 inet6 dhcp

然后重启网络服务

sudo systemctl restart networking

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

ssh xvo@128.23.45.6
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

文中信息已脱敏

参考信息

Dejavu Moe
作者
Dejavu Moe
Not for success, just for growing.