背景

21年4月15日甲骨文官网宣布服务器都支持了IPv6。Oracle Cloud官方文档
网际协议第6版(英语:Internet Protocol version 6,缩写:IPv6)是网际协议的最新版本,用作互联网的协议。用它来取代IPv4主要是为了解决IPv4地址枯竭问题,同时它也在其他方面对于IPv4有许多改进。
有啥作用就不多说了。开整~


甲骨文后台控制面板部分

  • 登录控制面板 -> 网络 -> 虚拟云网络 -> 查看网络详情


– 分解步骤说明

  • 依次点击

  • 添加按图勾选后点击左下角 Add CIDR Blocks/Prefixes 按钮即可

  • 过程中需要等待十几秒,成功如下图

  • 接着点击子网进行编辑



  • 成功

  • 继续点击路由表 -> 路由表详情 -> 添加路由规则,按下图设置!
    目的地 CIDR 块:::/0
    目标类型: Internet网关

  • 接着点击安全列表 -> 查看详情 -> 添加出站规则 和 添加 入站规则

目的地类型: CIDR

目的地 CIDR: ::/0

IP协议: 所有协议

  • 回到实例页面选择想要分配的实例机子按下图依次操作
    查看服务器实例详情 -> 附加的 VNIC -> 点击VNIC详情




甲骨文控制后台准备操作部分已完成,至此教程基本算完成了。


实例系统操作部分

我这里以ubuntu乌班图举例,其他Linux版本请自行测试!
脚本已经测试: Ubuntu 20.04, Debian 11
优点: 只需运行脚本一次,VPS重启IPv6仍然有效; 自动识别OS, 运行相应脚本
进入ssh运行以下一键添加脚本即可
使用方法:全部粘贴到root提示符号下面,或者做成sh采用bash执行

Debian_IPv6(){

iName=$(ip add | grep "^2: " | awk -F'[ :]' '{print $3}')
dhclient -6 $iName #临时开启IPv6
echo $iName #人工查看网卡是否正确
cp /etc/network/interfaces /root
sed -i "$ a iface $iName inet6 dhcp" /etc/network/interfaces
echo "Reboot... & ping ipv6.google.com After reboot"
reboot
}

Ubuntu_IPv6(){

yamlName=$(find /etc/netplan/ -iname "*.yaml")
iName=$(ip add | grep "^2: " | awk -F'[ :]' '{print $3}')
dhclient -6 $iName
MAC=$(ip add | grep "link/ether.*brd" | awk -F' ' '{print $2}')
IPv6=$(ip add | grep "inet6.*global" | awk -F' ' '{print $2}')
if [[ ${#IPv6} -lt 5 ]]; then echo "Can't IPv6"; exit 1; fi

cp $yamlName /root/

cat <<0099 >$yamlName
network:
    ethernets:
        ens3:
            dhcp4: true
            dhcp6: false
            match:
                macaddress: $MAC
            addresses:
              - $IPv6
            set-name: $iName
    version: 2
0099

netplan apply
sleep 2s
ping ipv6.google.com
}

myOS=$(hostnamectl | sed -n 's_.*System: \(\S*\).*_\1_p')
#Ubuntu, Debian

if [[ "$myOS" =~ "Ubuntu" ]]; then
  echo "Ubuntu"
  Ubuntu_IPv6
elif [[ "$myOS" =~ "Debian" ]]; then
  echo "Debian"
  Debian_IPv6
fi


2023-01-02新增其他方法:dd 的arm64纯净 debian11 系统开启 ipv6方法

sudo mv /etc/network/interfaces /etc/network/interfaces.save

sudo sh -c "echo '[Match]
Name=enp0s3

[Network]
DHCP=yes' >> /etc/systemd/network/z.network"

sudo systemctl enable systemd-networkd
sudo systemctl restart systemd-networkd
sudo systemctl status systemd-networkd

教程结束,码字不易,全程手工收集素材,请多多支持点赞~