介绍
我们有时候购买了vps,只配置了ipv4,需要我们工单申请ipv6,这时候就需要手动配置系统的网卡配置,今天我们以Debian11系统为例,来看一下怎么简单配置ipv6。
配置
一般情况下,我们只需简单修改下/etc/network/interfaces文件即可。首先,和ipv4一样,我们需要知道IP地址(address)、掩码(netmask)和网关(gateway),假设我们目前使用的网卡是eth0,我们可以对/etc/network/interfaces进行如下修改。
第一种配置
- iface eth0 inet6 static
- address 2607:f130:0:f9:ff:ff:9495:3523
- gateway 2607:f130:0000:00f9:0000:0000:0000:0001
- netmask 64
保存后,记得重启网络:
/etc/init.d/networking restart
第二种配置
- up ip addr add 2607:f130:0:f9:ff:ff:9495:3523/64 dev eth0
- up ip –6 route add 2607:f130:0000:00f9:0000:0000:0000:0001 dev eth0
- up ip –6 route add default via 2607:f130:0000:00f9:0000:0000:0000:0001
保存后,记得重启网络:
/etc/init.d/networking restart
详细解释
我们先来看下第二种配置:
up ip addr add 2607:f130:0:f9:ff:ff:9495:3523/64 dev eth0
- 这行命令是为网络接口eth0添加一个IPv6地址。
2607:f130:0:f9:ff:ff:9495:3523
是IPv6地址的地址部分,后面的/64
表示子网前缀长度为64位。IPv6地址一般由128位构成,其中前缀部分表示网络地址,后缀部分表示主机地址。dev eth0
指定了IPv6地址所属的网络接口,即eth0。
up ip -6 route add 2607:f130:0000:00f9:0000:0000:0000:0001 dev eth0
- 这行命令是添加一个IPv6路由表项。
2607:f130:0000:00f9:0000:0000:0000:0001
是目标IPv6地址,它是要访问的目标网络的地址部分。dev eth0
指定了该路由项通过网络接口eth0进行访问。
up ip -6 route add default via 2607:f130:0000:00f9:0000:0000:0000:0001
- 这行命令是添加默认的IPv6路由。
default
表示该路由是默认路由,用于发送所有未知目标网络的数据包。via 2607:f130:0000:00f9:0000:0000:0000:0001
指定了默认路由的下一跳地址,即所有未知目标网络的数据包将被发送到该地址。
综合来说,这三行命令的作用是在网络接口eth0上配置一个IPv6地址,并添加两条IPv6路由表项:一条用于访问特定的IPv6目标网络,另一条用于作为默认路由发送所有未知目标网络的数据包。
我们再来看下第一种配置:
iface eth0 inet6 static
- 这行命令指定了网络接口eth0的IPv6配置模式为静态(static)。
- 这意味着IPv6地址和路由都将以静态的方式配置,而不是通过动态协议(如DHCPv6)获取。
address 2607:f130:0:f9:ff:ff:9495:3523
- 这行命令为网络接口eth0配置了一个静态的IPv6地址。
2607:f130:0:f9:ff:ff:9495:3523
是IPv6地址的地址部分,没有指定子网前缀长度,这里默认使用64位。
gateway 2607:f130:0000:00f9:0000:0000:0000:0001
- 这行命令指定了默认的IPv6网关地址。
2607:f130:0000:00f9:0000:0000:0000:0001
是默认网关的IPv6地址,用于发送所有未知目标网络的数据包。
netmask 64
- 这行命令指定了IPv6地址的子网前缀长度为64位。
- 子网前缀长度为64位是IPv6中常用的设置,它表示前64位为网络地址,后64位为主机地址。
两种配置的区别:
- 第一组命令(up命令)是直接在命令行中使用
ip
工具来配置IPv6地址和路由,更加灵活和直接。 - 第二组命令(iface命令)是通过配置文件进行IPv6地址和路由的静态配置。这种方式更适合在系统启动时自动加载配置,并且通常用于基于Debian/Ubuntu的Linux系统。
无论使用哪种方式,最终目的都是配置网络接口的IPv6地址和路由,使系统能够正确地进行IPv6通信。具体选择哪种配置方式取决于个人偏好和系统环境。
额外配置
如果发现ipv6仍然不通,可能还需要进行如下配置:
修改/etc/sysctl.conf文件:
nano /etc/sysctl.conf
在底部添加如下几行:
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.eth0.autoconf = 0
net.ipv6.conf.eth0.accept_ra = 0
应用下配置:
sysctl -p
尝试重启下网络:
systemctl restart networking
检验下网络:
ping6 google.com