添加IPv6全自动脚本

44

源地址
简要说明

前提:面板已经部署完 IPv6。OS为Debian、Ubuntu,CentOS不适用

常见问题:如果出现 Debian 或者 Ubuntu长期不动,说明面板IPv6没有调整好。Debian需要重启生效。有的VPS调整不出来,只能删除重开

已经测试:Ubuntu 20.04,Debian 11

非甲骨文IPv6:理论上也适用,没有测试过

优点:只需运行脚本一次,VPS重启 IPv6 仍然有效。自动识别OS

使用方法

将以下代码全部粘贴到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

然后你可以查看一下VPS的 IPv6 地址:

ip addr | grep net6

使用 ping6 命令进行 ping IPv6:

ping6 2408:877e:31::7

或者 执行如下命令:

ping6 fe80::f816:3eff:fe00:76%eth0