第一种方法

第一种方法是在路由表中添加路由规则
修改网卡配置文件
打开文件:

sudo vi /etc/network/interfaces

添加如下:

auto eno1
iface eno1 inet static
address 192.168.1.103
netmask 255.255.255.0

auto eno2
iface eno2 inet static
address 192.10.84.31
netmask 255.255.255.0
gateway 192.10.84.1
up route add -net 192.168.1.0/24 gw 192.168.1.1 dev eno1

重启网卡

sudo /etc/init.d/networking restart

问题

注意:
    eno1、eno2名称不能弄错(eth0等),可以使用ifconfig查看
    双网卡只能有一个卡网配置网关,另一个不能配置,也就是配置中的gateway选项,另一个要使用路由的方式配置分流
注释:
    auto启用的网卡
    iface eno1 inet static对eno1使用静态ip,且手动配置网关
    address静态ip
    netmask掩码信息
    gateway网关信息
    pre-up、up、post-up、pre-down、down、post-down表示网卡启动前、启动时、启动后的动作
    route add -net 192.168.1.0/24 gw 192.168.1.1 dev eno1表示把网段192.168.1.0/24的引导向eno1的192.168.1.1
错误信息:
RTNETLINK answers: File exists 
Failed to bring up eth0
使用:
sudo ip addr flush dev eth0

第二种方法

第一种方法我在使用过程中有点问题,于是推荐采用更为强大的第二种方法:使用路由策略将信息包分别导向不同的路由表。(注意第一种方法我配的是192.10.84.1作为外网,这次配的是192.168.1.1作为外网。)
参考文献1
参考文献2

修改网卡配置文件
打开文件:

sudo vim /etc/network/interfaces

添加如下:

auto eno1
iface eno1 inet static
address 192.168.1.103
netmask 255.255.255.0
gateway 192.168.1.1

auto eno2
iface eno2 inet static
address 192.10.84.31
netmask 255.255.255.0

重启网卡

sudo /etc/init.d/networking restart

添加路由表

vi /etc/iproute2/rt_tables

添加如下camp和outer表:

252 camp
251 outer

增加路由规则并导向不同路由表

sudo ip route flush table camp
sudo ip route add default via 192.10.84.1 dev eno2 src 192.10.84.31 table camp
sudo ip rule add from 192.10.84.31 table camp
sudo ip route flush table outer
sudo ip route add default via 192.168.1.1 dev eno1 src 192.168.1.103 table outer
sudo ip rule add from 192.168.1.103 table outer

不需要再重新启动网卡,重新启动会导致路由表中的路由规则清空。

问题

如果系统重启导致失效,需要将命令写入系统启动脚本和网络启动脚本。
ubuntu,系统启动脚本是/etc/rc.local ;网络启动脚本是/etc/init.d/networking 
centos,系统启动脚本是/etc/rc.d/rc.local ;网络启动脚本是/etc/rc.d/init.d/network
查看命令是否生效:
查看路由策略:
ip rule
ip rule list

查看路由表内容:
ip route show table table_id
ip route show table table_name

/etc/rc.local配置截图:
这里写图片描述

如果ping域名的时候出现ping:unknown host  xxx.xxx
查看一下配置文件/etc/resolv.conf,里面是否有nameserver xxx.xxx.xxx.xxx,比如使用dns服务器 nameserver 8.8.8.8,如果有,修改一个可用的dns服务器,如8.8.8.8或者4.4.4.4,保存退出即可!
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐