Linux 操作系统下为网卡配置ip
Linux操作系统下为网卡配置ip
by:授客 QQ:1033553122
1. Linux单一网卡设置多IP的配置方法
在Linux下网卡接口逻辑名被称为eth0,eth1,eth2,.....,ethN,所有网卡接口的配置文件都存储在/etc/sysconfig/network-scripts/下,文件名是以ifcfg-eth0,ifcfg-eth1,ifcfg-eth2,....,ifcfg-ethN形式来命名的。一个网卡接口对应一个配置文件。如果我们要给某个网卡接口配置两个IP地址,我们该怎么办呢?
例:为网卡接口eth0配置两个ip
步骤1.复制网卡接口eth0配置文件
# cp ifcfg-eth0 ifcfg-eth0:0
说明:eth*:n 虚拟网卡接口,建立于eth0网卡接口边上,*表示网卡(接口)号,n表示虚拟网卡接口号,范围0-255
步骤2.编辑修改ifcfg-eth0:0中相应的字段
假设ifcfg-eth0本身已经有ip了,配置如下:
DEVICE=eth0 //这里是网卡设备名,改为eth0:0
BOOTPROTO=none //设置为none,设置为静态IP:static;设置为动态IP:dhcp
BROADCAST=10.4.255.255 //广播地址
HWADDR=08:00:27:5C:56:2A //MAC地址,不需要修改
IPADDR=10.4.8.191 //ip地址,改为你要设置的ip地址
NETMASK=255.255.0.0 //子网掩码,改为你要设置的掩码
NETWORK=10.4.0.0 //网络地址
DNS1=8.8.8.8 //DNS地址,ping命令出现unkonwn host时,一般是未配置DNS所致//查看/etc/resolv.conf文件可看到配置是否起作用,注意该文件随ifcfg-ethN配置而动态变化的,所以最好在ifcfg-ethN配置文件中该添加DNS配置信息
ONBOOT=yes //ONBOOT指明系统启动时是否激活网卡,只有在激活状态才能连接网络,不激活:no;激活:yes
USERCTL=yes //该选项指定是否允许非root用户控制该设备,允许:yes;不允许:no
TYPE=Ethernet //网络类型,表明是以太网:Ethernet
GATEWAY=10.4.0.1 //默认网关地址
编辑后的ifcfg-eth0配置如下
DEVICE=eth0:0
BOOTPROTO=none
BROADCAST=10.4.255.255
HWADDR=08:00:27:5C:56:2A
IPADDR=10.4.125.192
NETMASK=255.255.255.0
NETWORK=10.4.0.0
ONBOOT=yes
USERCTL=yes
TYPE=Ethernet
GATEWAY=10.4.0.1
同一块网卡虚拟的两个IP地址,可以不用添加新的路由,系统会自动的装载路由表。
步骤3.ifconfig命令为网卡绑定ip
为0号网卡的虚拟网络接口eth0:2配置ip 10.4.125.192
# ifconfig eth0:0 10.4.125.192 netmask 255.255.255.0
注意:如果单独做第3步,不做第2步,重启机器后,配置就失效了
2. Linux为多个网卡设置单一ip的配置方法
步骤1.编辑网卡接口配置文件
1.网卡接口ifcfg-eth0配置文件
DEVICE=eth0
BOOTPROTO=none
BROADCAST=10.4.255.255
HWADDR=08:00:27:5C:56:2A
IPADDR=10.4.8.191
NETMASK=255.255.0.0
NETWORK=10.4.0.0
ONBOOT=yes
USERCTL=yes
PEERDNS=no
TYPE=Ethernet
GATEWAY=10.4.0.1
2.网卡接口ifcfg-eth1配置文件
DEVICE=eth1
BOOTPROTO=none
BROADCAST=10.4.255.255
HWADDR=08:00:27:5C:56:2A
IPADDR=10.4.125.192
NETMASK=255.255.255.0
NETWORK=10.4.0.0
ONBOOT=yes
USERCTL=yes
PEERDNS=no
TYPE=Ethernet
GATEWAY=10.4.0.1
步骤2.添加静态路由[临时性]
方法一:
# route add -net 10.4.0.0 netmask 255.255.0.0 gw 10.4.0.1 up
# route add -net 10.4.0.0 netmask 255.255.255.0 gw 10.4.0.1 up
查看路由表
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.4.0.0 10.4.0.1 255.255.0.0 U 0 0 0 eth0
10.4.0.0 10.4.0.1 255.255.255.0 U 0 0 0 eth1
方法二:
# route add -net 10.4.0.0 netmask 255.255.0.0 up
# route add -net 10.4.0.0 netmask 255.255.255.0 up
再为系统增加一条缺省路由,因为缺省的路由是把所有的数据包都发往它的上一级网关(假设地址是10.4.0.1,这个地址依赖于使用的网络而定,
# route add default gw 10.4.0.1
但重新启动后,上述配置就失效了,因此可在/etc/sysconfig/network-scripts/目录下建立文件。因为我们是做内网的路由,并且内网网卡接口为eth0,因此我们建立route-eth0文件如下:
# cd network-scripts
# vi route-eth0
10.4.0.0/16 via 10.4.0.1 dev eth0
10.4.0.0/24 via 10.4.0.1 dev eth1
# /etc/rc.d/init.d/network restart启动生效
步骤3.启动IP转发功能使得linux能够转发数据包。
3.1将/proc/sys/net/ipv4/ip_forward 文件内容置1[临时生效]
echo “1” > /proc/sys/net/ipv4/ip_forward
IP Forward 将立即生效,但重启动失效。
3.2
# vi /etc/sysctl.conf[永久生效]
net.ipv4.ip_forward=1
注:默认情况下
同一网卡,不可以设置同一网段的多个ip,会冲突
不同网卡,不可以设置同一网段的不同ip,会冲突-->自动修改原来的路由表可能导致网络不同
关于这个结论可能并不是100%正确,具体以实际环境为准(出现问题时,关键看路由表)。
---------------------------------------------------------------------------
测试实验
为不同网卡,设置同一网段的不同ip
例子:测试机ip 10.5.8.183,网关10.5.0.1,通过网卡接口eth2同外面的10.4.0.0网段进行网络通信,修改eth1接口ip之前,路由表如下,网络可通
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.5.0.0 * 255.255.0.0 U 0 0 0 eth2
1.0.0.0 * 255.0.0.0 U 0 0 0 eth3
default 10.5.0.1 0.0.0.0 UG 0 0 0 eth2
接着,系统界面上修改eth1接口ip为10.5.8.187,网关10.5.0.1,生效,发现10.4.0.0网段无法访问ip 10.5.8.183了
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.5.0.0 * 255.255.0.0 U 0 0 0 eth1
10.5.0.0 * 255.255.0.0 U 0 0 0 eth2
1.0.0.0 * 255.0.0.0 U 0 0 0 eth3
default 10.5.0.1 0.0.0.0 UG 0 0 0 eth1
注:此时,ping网关10.5.0.1, ping不通,从route命令的输出来看,我们可以发现路由表已经被修改了,要通往默认网关,必须经过eth1,但是eth1并没有接网线,所以不通。把eth1的网线接到交换机,再ping网关可ping通
断开eth1的网线,手动修改路由表,修改后如下
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.5.0.0 * 255.255.0.0 U 0 0 0 eth2
10.5.0.0 * 255.255.0.0 U 0 0 0 eth1
1.0.0.0 * 255.0.0.0 U 0 0 0 eth3
default 10.5.0.1 0.0.0.0 UG 0 0 0 eth2
发现也可以ping通网关了,,
说明:linux是这么匹配的,按路由表条目顺序,从上到下进行匹配,添加的默认网关总是放到表中最后,也就是最下面。同时也可以看出,要能相互通信,路由表至少有一条本地路由和一条默认路由
Linux 操作系统下为网卡配置ip的更多相关文章
- Linux操作系统下三种配置环境变量的方法
现在使用linux的朋友越来越多了,在linux下做开发首先就是需要配置环境变量,下面以配置java环境变量为例介绍三种配置环境变量的方法. 1.修改/etc/profile文件 如果你的计算机仅仅作 ...
- Linux操作系统下三种配置环境变量的方法——转载
来源:赛迪网 作者:millio 现在使用linux的朋友越来越多了,在linux下做开发首先就是需要配置环境变量,下面以配置java环境变量为例介绍三种配置环境变量的方法. 1.修改/e ...
- linux下一个网卡配置多个ip【虚拟ip】
Linux下配置网卡ip别名何谓ip别名?用windows的话说,就是为一个网卡配置多个ip.什么场合增加ip别名能派上用场?布网需要.多ip访问测试.特定软件对多ip的需要...and so on. ...
- linux下一个网卡配置多个IP
转自:http://blog.csdn.net/beckdon/article/details/15815197 最常用的给网卡配置ip的命令为 #ifconfig eth0 192.168.0.1 ...
- Linux下设置网卡静态ip
Linux下设置网卡静态ip 如果是服务器版,没有图形界面只用用命令行修改配置文件 如果是客户端版本,可以用图形界面 配置的前提是要在root用户下才能重启网卡服务 图形界面: system-conf ...
- 虚拟IP---Linux下一个网卡配置多个IP
转:http://blog.csdn.net/turkeyzhou/article/details/16971225 Linux下配置网卡ip别名何谓ip别名?用windows的话说,就是为一个网卡配 ...
- 烂泥:VMWare Workation双网卡配置IP地址
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 前几天给一个客户做远程项目实施,客户那边的服务器是Windows OS的,我们这边的业务 ...
- 虚拟机Linux与本地虚拟网卡配置---NAT链接方式
虚拟机Linux与本地虚拟网卡配置---NAT链接方式 **********这是我亲自尝试多次实践出来的结果,不是复制粘贴************************* 首先进行初始化,这样避免有 ...
- Linux 服务器下多网卡的负载均衡
Linux 服务器下多网卡负载均衡的实现 一.引言 现今几乎各行各业内部都建立了自己的服务器,由于服务器的特殊地位,它的可靠性.可用性及其 I/O 速度就显得非常的重要, 保持服务器的高可用 ...
随机推荐
- Unicode 字符串排序规则(一):如何确定单个字符的顺序
一.一个具体的例子引发的问题 当今是国际化的时代,多种语言可能同时显示在屏幕上.比如一个人可能喜欢听华语歌.英文歌.韩文歌和日语歌,又比如他的联系人中有中国人.英国人.日本人.韩国人以及有英文名字的中 ...
- Centos6.5安装Python2.7.9
1. 问题背景 Centos6.5默认自带的python环境是2.6.6,python的一些特性没法使用,所以要对python进行升级,借鉴了网上其他同学的安装教程,但是还是遇到一些坑,不是那木顺利, ...
- Go语言之Interface(一)
Go语言之Interface(一) 什么是interface 在面向对象语言中接口是:接口定义了一个对象的行为,但在Go中接口就是方法签名的集合,当一个类型提供了这个接口中的所有的方法,就可以说这个类 ...
- 理解 Python 的执行方式,与字节码 bytecode 玩耍 (下)
上次写到,Python 的执行方式是把代码编译成bytecode(字节码)指令,然后由虚拟机来执行这些 bytecode 而 bytecode 长成这个样子: b'|\x00\x00d\x01\x0 ...
- 13-03 Java 基本类型包装类概述,Integer类,Character
基本类型包装类概述 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据.常用的操作之一:用于基本数据类型与字符串之间的转换.基本类型和包装类的对应Byte,Short,Inte ...
- GO入门——6. struct与方法
1 struct Go 中的struct与C中的struct非常相似,并且Go没有class 使用 type struct{} 定义结构,名称遵循可见性规则 支持指向自身的指针类型成员 支持匿名结构, ...
- Mysql 用户权限管理
1. MySQL 权限介绍 mysql中存在4个控制权限的表,分别为user表,db表,tables_priv表,columns_priv表,我当前的版本mysql 5.7.22 . mysql权限表 ...
- 为什么byte的取值范围是-128到127
一个byte由八个位组成,如00000000,其中,符号位+数值位,前7位表示数值,第8位是符号位(0为正,1为负).这样+1就是00000001,-1就是10000001.最大的正数就是0 1111 ...
- phpStorm使用技巧总结
工欲善其事,必先利其器. 拥有一个好的工具不仅可以事半功倍,而且也令人神清气爽. 在编辑器上,我所走过的路是这样的:notepad(对,就是最原始的WIN下的note) -> editplus ...
- Hibernate学习(一)———— 第一个hibernate工程
一.什么是Hibernate? 轻量级JavaEE应用的持久层框架,是一个完全的ORM框架.(说完这句话,肯定有很多人懵圈了,下面我来一个个解释) 持久化:将我们想要保存的数据保存到硬盘上,也就是我们 ...