因为接手了部门服务器的管理工作,所以我最近几乎天天都在和一台台形形色色的pve虚拟机打交道,是时候整理一下了。

rt_tables 方法设置双网卡 链接到标题

首先我们需要在 /etc/iproute2/rt_tables 文件中配置两个路由表信息:

251 tbl1
252 tbl2

保存退出后就可以添加路由规则了,我们让 tbl1 的资源访问只从 eth0 网卡出去,让 tbl2 的资源访问只从 eth1 网卡出去。

$ ip route add default via 172.16.32.1 dev eth0 src 172.16.32.20 table tbl1
$ ip rule add from 172.16.32.20 table tbl1 metric 100
$ ip route add default via 192.168.1.1 dev eth1 src 192.168.1.2 table tbl2
$ ip rule add from 192.168.1.2 table tbl2 metric 99

这样设置好后双线应该已经通了,但是重启后路由规则就会失效,因此我们需要写两个脚本让服务器启动时自动设置一下路由规则。

我们先在 /etc/init.d/networking 中写入:

#! /bin/sh

PATH=/sbin:/bin
NAME=networking
SCRIPTNAME=/etc/init.d/$NAME
DAEMON=/sbin/ip

do_start()
{
	ip route add default via 172.16.32.1 dev eth0 src 172.16.32.20 table tbl1
	ip rule add from 172.16.32.20 table tbl1 metric 100
	ip route add default via 192.168.1.1 dev eth1 src 192.168.1.2 table tbl2
	ip rule add from 192.168.1.2 table tbl2 metric 99
}

case "$1" in
    start)
        do_start
        exit 0
    ;
;

esac

然后在 /etc/rc3.d 中添加软路由:

$ ln -s /etc/init.d/networking /etc/rc3.d/S01networking

这样我们的双网卡设置与开机自启动脚本就都设置完毕了。

netplan 方法 链接到标题

首先我们先转到 netplan 的目录下并找出配置文件的名字:

$ cd /etc/netplan
$ ls

因为我们已知了网关ip、网卡名称和我们想要配置的ip,所以下面只需要修改目标即可。

network: 
  ethernets: 
    ens38: #网卡名称
      addresses: ["127.0.0.1"] #本机想要的ip
      gateway4: #网关ip
      dhcp4: false
      optional: true
      nameservers: 
        addresses: [114.114.114.114, 8.8.8.8]
  version: 2

保存并退出这个配置文件。

最后执行重载网络的命令:

$ netplan apply
$ sudo systemctl restart systemd-networkd #ubuntu 1.18 及以后
$ sudo service networking restart #ubuntu 1.18 之前

sysconfig 方法 链接到标题

此方法是我在给一台装着 CentOS 6 的老古董服务器改ip时发现的,做一个留存,万一以后要收拾老古董的时候可以作为一个储备。

首先我们先转到对应目录:

$ cd /etc/sysconfig/network-scripts/

然后我们可以通过命令行查询现在使用的网卡名称并根据名称打卡对应的配置文件:

$ ifconfig
$ vim ifctf-网卡名称

然后我们只需要在文件中修改网卡的配置就可以了。

最后重置网络:

$ sudo service networking restart