zoukankan      html  css  js  c++  java
  • Linux 操作系统下为网卡配置ip

    Linux操作系统下为网卡配置ip

    by:授客 QQ1033553122

    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,设置为静态IPstatic;设置为动态IPdhcp

    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接口ip10.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是这么匹配的,按路由表条目顺序,从上到下进行匹配,添加的默认网关总是放到表中最后,也就是最下面。同时也可以看出,要能相互通信,路由表至少有一条本地路由和一条默认路由

  • 相关阅读:
    Nginx性能测试
    Centos 7.0设置/etc/rc.local无效问题解决
    Centos 7.0系统服务管理
    Centos 7.0设置静态IP
    importError:cannot import name imsave/imread等模块
    一位父亲写给儿子的信:今天你努力一点,比将来低头求人强100倍
    清华大学计算机学科推荐学术会议和期刊列表---人工智能与模式识别
    在使用python语言的open函数时,提示错误OSError: [Errno 22] Invalid argument: ‘文件路径’
    论文阅读笔记---HetConv
    typeerror: __init__() missing 2 required positional arguments: 'inputs' and 'outputs'
  • 原文地址:https://www.cnblogs.com/shouke/p/10158207.html
Copyright © 2011-2022 走看看