服务器上配置网卡和IPv6地址

最近向 MC 要了两个 IPv6 地址,然后 VPS 就断了。向客服反应后,粗暴地给俺换了 IP,换了系统,搞得这博客差点倒闭。其实,问题很简单,也就是网卡配置问题。于是,今天就讲讲 Debian 或者 Ubuntu 怎么配置网卡和 IPv6 地址。

首先安装网络工具:

apt install net-tools

查看网卡信息

ifconfig 找到网卡,掩码,网关等信息,会输出类似下面内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 132.98.174.248 netmask 255.255.255.192 broadcast 132.98.174.255
inet6 80e3::216:3cff:fead:5b52 prefixlen 64 scopeid 0x20<link>
inet6 1200:7e45:0:f6::1e4a:3705 prefixlen 48 scopeid 0x0<global>
inet6 1200:7e45:0:f6::235e:3b7e prefixlen 48 scopeid 0x0<global>
ether 00:16:3c:ad:5b:52 txqueuelen 1000 (Ethernet)
RX packets 304618 bytes 323216951 (308.2 MiB)
RX errors 0 dropped 3108 overruns 0 frame 0
TX packets 156356 bytes 322032853 (307.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 168017 bytes 311385231 (296.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 168017 bytes 311385231 (296.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

上面,网卡名:ens3;natmask 后面是掩码;inet 后面是 IPv4 IP;inet6 后面是 IPv6 IP

查看网关

查看 IPv4 网关,命令:

ip route show dev ens3

1
2
default via 132.98.174.193 onlink
132.98.174.192/26 proto kernel scope link src 132.98.174.248

查看 IPv6 网关,命令:

ip -6 route show dev ens3

1
2
3
1200:7e45::/48 proto kernel metric 256 pref medium
80e3::/64 proto kernel metric 256 pref medium
default via 1200:7e45:0:f6::1 metric 1024 onlink pref medium

default via 后面即是网关地址。

Debian配置文件

找到这些 IP 信息后就可以编写网卡配置了,下面是 Debian 网卡配置:

vi /etc/network/interfaces

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
auto lo
iface lo inet loopback

auto ens3
iface ens3 inet static #IPv4配置
address 132.98.174.248 #IPv4
gateway 132.98.174.193 #IPv4网关
netmask 255.255.255.192 #子网掩码

iface ens3 inet6 static #IPv6配置
address 1200:7e45:0:f6::1e4a:3705 #IPv6地址
netmask 48 #掩码
gateway 1200:7e45:0:f6::1 #IPv6网关

iface ens3 inet6 static
address 1200:7e45:0:f6::235e:3b7e #添加额外IPv6地址
netmask 48 #掩码

当然,掩码和添加额外 IPv6 地址,还有另外一种写法,如下:

1
2
3
4
5
6
7
8
9
10
11
12
auto lo
iface lo inet loopback

auto ens3
iface ens3 inet static
address 132.98.174.248/26 #IPv4和掩码
gateway 132.98.174.193

iface ens3 inet6 static
address 1200:7e45:0:f6::1e4a:3705/48 #IPv6地址和掩码
gateway 1200:7e45:0:f6::1
up ip addr add 1200:7e45:0:f6::235e:3b7e/48 dev ens3 #添加额外IPv6地址

配置服务器 DNS 服务:

echo -e "nameserver 8.8.8.8 \nnameserver 8.8.4.4" >> /etc/resolv.conf

上面配置好后重启一下 network 服务,或者 reboot 重启一下服务器就好了。

systemctl restart networking.service

Ubuntu配置文件

上面是 Debian 系统的网卡配置,下面是 Ubuntu 系统配置文件。

Ubuntu 配置文件在 netplan 文件夹,类似 10-ens3.yaml 这样命名,配置如下:

vi /etc/netplan/10-ens3.yaml

1
2
3
4
5
6
7
8
9
10
network:
version: 2
renderer: networkd
ethernets:
ens3:
addresses: [132.98.174.248/26,'1200:7e45:0:f6::1e4a:3705/48'] #IP地址
gateway4: 132.98.174.193 #网关
gateway6: 1200:7e45:0:f6::1
nameservers:
addresses: [8.8.8.8]

保存重启就好了。最后测试一下 IPv6 有没有添加成功,服务器上 ping 一下 Google 就好了,或者客户端 ping 一下 IPv6 地址也行。

ping6 google.com

配置多IPv4

下面是 Debian 单网卡多 IP 的配置文件,供大家参考。这个是盲写的,没测试哦!

vi /etc/network/interfaces

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
auto lo
iface lo inet loopback

auto ens3
iface ens3 inet static
address 132.98.174.248/26
gateway 132.98.174.193
dns-nameservers 8.8.8.8 8.8.4.4

iface ens3 inet6 static
address 1200:7e45:0:f6::1e4a:3705/48
gateway 1200:7e45:0:f6::1
up ip addr add 1200:7e45:0:f6::235e:3b7e/48 dev ens3
#下面是添加的另一个IPv4,注意,不要写网关
auto ens3:0
iface ens3:0 inet static
address 132.98.174.249/26

保存后,重启一下网络或服务器就好了。最后,MC 什么时候请俺去当客服呀!嘻嘻