Ubuntu双网卡不双待攻略
特别不喜欢基于Windows的工作环境,这对一个Unix/Linux程序员来说,可以说是一种信仰。要不是电子邮件客户端被牢牢绑定在可恶的Outlook 2013上(因为加密邮件要求, 想使用Thunderbird都不行),我想我坚决不会在工作中使用Windows10。 幸运的是,还有一个台式机(代号: ISX)可以用,安装的操作系统是Ubuntu14.04LTS。
1. 需求
在Ubuntu14.04LTS上既能访问外网,又能访问内网。外网用来冲浪,内网用来干活。
2. 困境
台式机ISX只有一个有线网卡,没有无线网卡。
root@idorax:~# lspci | egrep Ethernet
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c)
硬件条件不允许双网卡,只能自己想办法。
3. 办法
3.1 加硬件
自己花钱买一个USB网卡转换器就是了,看起来是这样子滴,

3.2 改路由
新加的USB网卡转换器连接外网,原来的有线网卡连接内网,都采用DHCP方式上网。 连接完毕后查看网络连接信息是这样的,
o eth1 <-- USB网卡转换器, 冲浪

o eth0 <-- 有线网卡, 干活

o 系统启动后的初始路由
root@idorax:~# route | sed '1d'
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.123.255.254 0.0.0.0 UG 0 0 0 eth1
10.123.0.0 10.123.255.254 255.255.0.0 UG 0 0 0 eth0
10.123.0.0 * 255.255.0.0 U 1 0 0 eth1
10.123.255.254 * 255.255.255.255 UH 0 0 0 eth0
100.9.1.0 * 255.255.255.0 U 1 0 0 eth0
其中, eth0(连接内网)的路由设置会影响外网(eth1)的访问。
o 修改路由
root@idorax:~# route add -net 100.0.0.0/8 gw 100.9.1.254 metric 20 dev eth0
root@idorax:~#
root@idorax:~# route del -net 10.123.0.0 netmask 255.255.0.0 gw 10.123.255.254 dev eth0
root@idorax:~# route del -net 10.123.255.254 netmask 255.255.255.255 dev eth0
root@idorax:~# route del -net 100.9.1.0 netmask 255.255.255.0 dev eth0
o 修改后的路由
root@idorax:~# route | sed '1d'
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.123.255.254 0.0.0.0 UG 0 0 0 eth1
10.123.0.0 * 255.255.0.0 U 1 0 0 eth1
100.0.0.0 100.9.1.254 255.0.0.0 UG 20 0 0 eth0
到此为止, 基于Ubuntu14.04LTS的双网卡不双待的工作环境就设置好了。
- eth0用来访问内网 (注意其Metric被设置为20), eth1用来访问外网。
- eth0不再干扰eth1, 满足需求。
上面的手工添加/删除路由的过程可以用bash脚本实现,吼吼,再次表示不喜欢Windows, 虽然Windows也支持脚本编程。
o vroute.sh
#!/bin/bash TMPDIR=/tmp
NAME=$(basename $0) function show_route
{
route | tr -s ' ' ':' | sed 's/*/0.0.0.0/g' | sed '1d'
} function add_route_100_ug
{
typeset net=$1
typeset gw=$2
typeset metric=$3
typeset dev=$4 typeset f_out=$TMPDIR/$NAME.out.$$
show_route | egrep "UG" | egrep ":$dev$" | \
awk -F':' '{print $1}' > $f_out
while read line; do
typeset s=$(echo $line)
[[ $s == ${net%/*} ]] && return 0
done < $f_out sudo route add -net $net gw $gw metric $metric dev $dev
return $?
} function del_route_10_ug
{
typeset net=$1
typeset dev=$2 typeset f_out=$TMPDIR/$NAME.out.$$
show_route | egrep "UG" | egrep ":$dev$" > $f_out
typeset s=""
typeset s_net=""
typeset found=1
while read line; do
s=$(echo $line)
s_net=$(echo $line | awk -F':' '{print $1}')
[[ $s_net == $net ]] && found=0 && break
done < $f_out (( found != 0 )) && return 0 typeset netmask=$(echo $s | awk -F':' '{print $3}')
typeset gw=$(echo $s | awk -F':' '{print $2}')
sudo route del -net $net netmask $netmask gw $gw dev $dev
return $?
} function del_route_10_uh
{
typeset dev=$1
typeset s=$(show_route | egrep ":UH:" | egrep ":$dev$")
[[ -z "$s" ]] && return 0 typeset net=$(echo $s | awk -F':' '{print $1}')
typeset netmask=$(echo $s | awk -F':' '{print $3}')
sudo route del -net $net netmask $netmask dev $dev
return $?
} function del_route_10_u
{
typeset dev=$1
typeset s=$(show_route | egrep ":U:" | egrep ":$dev$")
[[ -z "$s" ]] && return 0 typeset net=$(echo $s | awk -F':' '{print $1}')
typeset netmask=$(echo $s | awk -F':' '{print $3}')
sudo route del -net $net netmask $netmask dev $dev
return $?
} trap "rm -f $TMPDIR/$NAME.*.$$" EXIT eth="eth0"
add_route_100_ug 100.0.0.0/8 100.9.1.254 20 $eth || exit 1
del_route_10_ug 10.123.0.0 $eth || exit 2
del_route_10_uh $eth || exit 3
del_route_10_u $eth || exit 4
exit 0
结束语: 毛主席说过,“广阔天地,大有作为”, 你懂的 :-) 环境太艰苦,只能自己想办法,"艰难困苦,玉汝于成"。 如果你想了解“Win10双网卡不双待攻略”, 请狠戳这里。看完之后,你就很能理解我为什么很不喜欢Windows了。
扩展阅读:
Ubuntu双网卡不双待攻略的更多相关文章
- Win10双网卡不双待攻略
声明:本文与个人的技术兴趣毫无关系,只是因为有迫不得已的实际需求,才不得不想办法.所谓"艰难困苦,玉汝于成",大概就是这个道理.(PS:标题我没有写错,不是双网卡双待,就是双网卡但 ...
- 双硬盘RAID 0全攻略
. RAID53 RAID7即高效数据传送磁盘结构,是RAID3和带区结构的统一,因此它速度比较快,也有容错功能.但价格十分高,不易于实现. 为什么需要磁盘阵列 如何增加磁盘的存取(ac ...
- Linux 双网卡绑定
Linux 双网卡绑定 Linux 双网卡绑定双网卡绑定的常用模式:mode1:active-backup 模式,即主备模式.mode0:round-broin 模式,即负载均衡模式(需要交换机配置聚 ...
- windows2003服务器双线双IP双网卡设置方法
双线双ip很好,网通用户访问网通线路,电信用户访问电信线路.但很多人会选用导入静态路由表,这个办法看似完美,其实问题很多. 1.电信用户如果被解析到网通的ip上,服务器根据路由表会返回电信线路,但用户 ...
- ubuntu 双线双网卡双IP实现方式
昨天金桥机房上架了一台多玩的测试机,系统是ubuntu9.04 X64的系统,母机IBM X336机器.用户需求是双线,故采用一个网卡配置电信地址,另一个网卡配置联通地址,安装好系统后配置好IP发现联 ...
- Ubuntu实现双网卡双IP双待机
Ubuntu实现双网卡双IP双待机 待机是借用了手机中的说法,其实是电脑上有两个网卡,一个无线,一个有线的.要实现无线访问外网Google Baidu查资料,有线网卡直接连接开发板.在Ubuntu上配 ...
- Ubuntu 配置双网卡的问题
一台双网卡电脑拥有两个网关是不可能的,因为默认网关(default gateway)只能是一个.给Ubuntu Linux服务器安装两块网卡,分别设置不同的ip和网关(内网和外网),外网的通过外网网卡 ...
- ubuntu双网卡准备配置
近日有个需求,交换机有两台,做了堆叠,服务器双网卡,每个分别连到一台交换机上.这样就需要将服务器的网卡做成主备模式,以增加安全性,使得当其中一个交换机不通的时候网卡能够自动切换. 整体配置不难,网上也 ...
- ubuntu各系统双网卡绑定
Ubuntu14.04双网卡绑定 2.1 确定网卡名称 首先确定两块网卡的名称,一般为eth0.eth1,如果有自己添加的网卡名称可能不同,在安装系统的时候可以看到,通过ipmaddr命令可以查看所有 ...
随机推荐
- 安装Greenplum-perfmon-web监控软件遇到的问题及解决
环境 Product Version Pivotal Greenplum (GPDB) 4.3.x Pivotal Greenplum Command Center (GPCC) Others ...
- 原创:MVC 5 实例教程(MvcMovieStore 新概念版:mvc5.0,EF6.01) - 3、创建项目
说明:MvcMovieStore项目已经发布上线,想了解最新版本功能请登录 MVC 影视(MvcMovie.cn) 进行查阅.如需转载,请注明出处:http://www.cnblogs.com/Dod ...
- css选择器与DOM'匹配的关系
一道面试题 css 选择器匹配时,只考察是否包含有对应的class,而与class的顺序无关 而css的定义是后面的覆盖前面的定义 原理:http://www.w3.org/html/ig/zh/wi ...
- 对java位运算之异或运算的一点记录
首先,异或运算是,每个位上的数不同为1,相同为0. 其次,对两个数值变量的值进行三次异或运算就等于是交换了两个变量的值. 例如: int a = 4; int b = 10; a = a ^ b; b ...
- 从0开始学习Unity的学习笔记(I 界面学习和简单模型拼装)
先给一个大致今天学习的图,然后后面是细节 1.下载Unity :官网下载需要版本 2.Unity安装:一定不要有中文路径:一台电脑可以安装不同版本的Unity,但是要安装在不同的文件夹下: 3. 新建 ...
- Katalon Studio简单使用(二)
距离上一篇更新katalon学习部分已有两个月的时间 ,我的博文的访问量为400多,(*^__^*) 嘻嘻…… 说明还是很多同学在学习这个小tools的.所以再记录下 近两个月来对katalon的体验 ...
- django系列7.2--django中的cookie和session基本操作,浏览器登陆验证的不同实现
django中的cookie和session(02)–操作 一.Django中的cookie操作 ctrl + shift + del 是谷歌浏览器中清除页面缓存和cookie的快捷键 1.设置coo ...
- linux强制安装rpm包的命令
rpm -ivh *********.rpm --nodeps --force 强制安装会忽略掉所有依赖关系,强制进行安装
- logstash同步mongodb数据到elasticsearch
一.安装logstash 二.安装mongodb插件 cd D:\Software\ELK5.5.0\logstash-5.5.0\bin logstash-plugin install logsta ...
- (二)Python 装饰器
1. 函数 在 Python 中,使用关键字 def 和一个函数名以及一个可选的参数列表来定义函数.函数使用 return 关键字来返回值.定义和使用一个最简单的函数例子: >>> ...