linux网卡配置

本文详细介绍了如何在Linux系统中配置网卡,包括查看网卡、复制配置文件、编辑配置文件、加载模块、启动网卡、重启网络服务等步骤。此外,还讲解了如何进行双网卡绑定,通过bonding技术实现负载均衡或冗余功能,以及配置交换机端口聚合,确保网络连接的稳定性和高可用性。

一定要在服务管理中关闭NetworkManager服务并禁用自动启动。

第一步:先查看下本机网卡,使用命令到network-scripts 下

[root@root~]# cd /etc/sysconfig/network-scripts/

[root@root network-scripts~]# ll

total 202

-rw-r--r--1 root root 212 Mar 15 15:40 ifcfg-eth0

-rw-r--r-- 1 root root 212 Mar 15 15:40 ifcfg-eth1

第二步:复制ifcfg-bond0或者自己创造一个都可以,下面我介绍复制的命令

[root@root network-scripts]# cp ifcfg-eth0 ifcfg-bond0

复制好了查看一下

[root@root network-scripts]# ll

total 204

-rw-r--r-- 1 root root 212 Mar 23 15.42 ifcfg-bond0

-rw-r--r--1 root root 212 Mar 15 15:40 ifcfg-eth0

-rw-r--r-- 1 root root 212 Mar 15 15:40 ifcfg-eth1

第三步:编辑ifcfg-bond0、ifcfg-eth0、ifcfg-eth1 把里面内容替换一下内容

[root@root network-scripts]# vim ifcfg-bond0 //(IP、MASK、子网掩码按自己服务器的需求来)

BOOTPROTO=none

DEVICE=bond0

ONBOOT=yes

IPADDR=172.26.5.16

NETMASK=255.255.255.128

GATEWAY=172.26.5.126

USERCTL=no

TYPE=Ethernet

IPV6INIT=no

DNS1=172.26.1.1

[root@root network-scripts]# vim ifcfg-eth0

BOOTPROTO=none

DEVICE=eth0

ONBOOT=yes

MASTER=bond0

SLAVE=yes

USERCTL=no

TYPE=Ethernet

IPV6INIT=no

[root@root network-scripts]# vim ifcfg-eth1

BOOTPROTO=none

DEVICE=eth1

ONBOOT=yes

MASTER=bond0

SLAVE=yes

USERCTL=no

TYPE=Ethernet

IPV6INIT=no

第四步:模块加载

[root@root ~]# cd /etc/modprobe.d/

切换到modprobe.d目录下

[root@root ~modprobe.d]#vi dist.conf

#加载bonding模块,对外虚拟网络接口设备为bond0,在最后加入以下2行

alias bond0 bonding

options bond0 mode=1 miimon=100

(备注本人试用mode=0,因为本人的交换机上做了双活)

说明:(这个是上网抄的,自己最好了解下)

miimon是用来进行链路监测的。比如:miimon=100,单位是ms(毫秒)这边的100,是100ms,即是0.1秒那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0、1两种。

mode共有七种(0~6),这里解释两个常用的选项。

mode=0:表示load balancing (round-robin)为负载均衡方式,两块网卡都在工作。

mode=1:表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,其中一块网卡在工作(若eth0断掉),则自动切换到另一个块网卡(eth1做备份)。

bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用。

第六步:启动eth0和eth1网卡(有的人可以不用做这一步,因为本人的服务器是刚刚装的,eth0和eth1网卡都没有启动)

[root@root network-scripts]# ifconfig eth0 up

[root@root network-scripts]# ifconfig eth1 up

第七步:重启网络服务,使配置生效

[root@root network-scripts]# service network restart

Shutting down interface bond0: [正确]

Shutting down interface eth0: [正确]

Shutting down interface eth1: [正确]

Shutting down loopback interface: [正确]

Bringing up loopback interface: [正确]

Error adding address 10.1.3.210 for bond0.

RTNETLINK answers: File exists [正确]

第八步:验证是否双网卡绑定成功方法一:

[root@root network-scripts]#ifconfig 成功的话显示的内容是bond0和em1、em2网卡的MAC地址是一样的

方法二:

[root@root network-scripts]# cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: fault-tolerance (active-backup)

Primary Slave: None

Currently Active Slave: eth0 // eth0主模式

MII Status: up

MII Polling Interval (ms): 100

Up Delay (ms): 0

Down Delay (ms): 0

Slave Interface: em1

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:0c:29:c9:6d:18

Slave queue ID: 0

Slave Interface: em2

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:0c:29:c9:6d:22

Slave queue ID: 0

网卡绑定技术已经出来很久,在不同的平台下的叫法不同而已,在Linux下叫bonding,IBM称为etherchanel,broadcom叫team,但是名字怎么变,效果都是将两块或更多的网卡当做一块网卡使用,在增加带宽的同时也可以提高冗余性,七种模式,一般使用较多的就是来提高冗余,分别和不同交换机相连,提高可靠性,但有时服务器带宽不够了也可以增加带宽,在这里用思科交换机和HP服务器相连,思科交换机做端口汇聚,服务器做网卡绑定,配置如下: 服务器为CentOS6.2 cat /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BOOTPROTO=static TYPE=ethernet ONBOOT=yes IPADDR=192.168.0.32 NETMASK=255.255.192.0 GATEWAY=10.10.0.1 cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static TYPE=ethernet ONBOOT=yes MASTER=bond0 SLAVE=yes USERCTL=no cat /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth0 BOOTPROTO=static TYPE=ethernet ONBOOT=yes MASTER=bond0 SLAVE=yes USERCTL=no vim /etc/modprobe.d/dist.conf alias bond0 bonding options bond0 miimon=100 mode=0(0,表示平衡负载双网卡工作,RR算法,mode=1,自动主备,其中一块工作) 思科交换机相应端口配置端口聚合: R1#configure terminal R1(config)#int range g0/1 - 2 R1(config-int-range)#channel-group 1 mode on 将交换机g0/1-2 与服务器相应端口相连,经测试,带宽明显增加

Redhat Linux的网络配置,基本上是通过修改几个配置文件来实现的,虽然也可以用ifconfig来设置IP,用route来配置默认网关,用hostname来配置主机名,但是重启后会丢失。

相关的配置文件

/ect/hosts 配置主机名和IP地址的对应

/etc/sysconfig/network 配置主机名和网关

/etc/sysconfig/network-scripts/ifcfg-eth0 eth0配置文件,eth1则文件名为ifcfg-eth1,以此类推

一、网卡配置

假设我们要配置主机名为test,eth0的IP地址192.168.168.1/24,网关地址192.168.168.250

则/etc/sysconfig/network文件内容如下:

NETWORKING=yes HOSTNAME=test GATEWAY=192.168.168.250

eth0对应的配置文件/etc/sysconfig/network-scripts/ifcfg-eth0内容如下:

DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.168.1 NETMASK=255.255.255.0 TYPE=Ethernet ONBOOT=yes

二、单网卡绑定多个IP

有时,我们需要在一块网卡上配置多个IP,例如,在上面的例子中,我们还需要为eth0配置IP 192.168.168.2和192.168.168.3。那么需要再在/etc/sysconfig/network-scripts下新建两个配置文件:

ifcfg-eth0:0内容如下:

DEVICE=eth0:0 BOOTPROTO=static IPADDR=192.168.168.2 NETMASK=255.255.255.0 ONBOOT=yes

ifcfg-eth0:1内容如下:

DEVICE=eth0:1 BOOTPROTO=static IPADDR=192.168.168.3 NETMASK=255.255.255.0 ONBOOT=yes

三、多个网卡绑定成一块虚拟网卡

为了提供网络的高可用性,我们可能需要将多块网卡绑定成一块虚拟网卡对外提供服务,这样即使其中的一块物理网卡出现故障,也不会导致连接中断。比如我们可以将eth0和eth1绑定成虚拟网卡bond0

首先在/etc/sysconfig/network-scripts/下创建虚拟网卡bond0的配置文件ifcfg-bond0,内容如下

DEVICE=bond0 BOOTPROTO=none BROADCAST=192.168.168.255 IPADDR=192.168.168.1 NETMASK=255.255.255.0 NETWORK=192.168.168.0 ONBOOT=yes TYPE=Ethernet GATEWAY=192.168.168.250 USERCTL=no

然后分别修改eth0和eth1的配置文件 ifcfg-eth0内容:

DEVICE=eth0 BOOTPROTO=none ONBOOT=yes USERCTL=no MASTER=bond0 SLAVE=yes

ifcfg-eth1内容

DEVICE=eth1 BOOTPROTO=none ONBOOT=yes USERCTL=no MASTER=bond0 SLAVE=yes

因为linux的虚拟网卡是在内核模块中实现的,所以需要安装的时候已经装好该module。在/etc/modules.conf文件中添加如下内容(如果没有该文件,则新建一个):

alias bond0 bonding options bond0 miimon=100 mode=1 primary=eth0

其中miimon=100表示每100ms检查一次链路连接状态,如果不通则会切换物理网卡 mode=1表示主备模式,也就是只有一块网卡是active的,只提供失效保护。如果mode=0则是负载均衡模式的,所有的网卡都是active,还有其他一些模式很少用到 primary=eth0表示主备模式下eth0为默认的active网卡

miimon是毫秒数,每100毫秒触发检测线路稳定性的事件。 mode 是ifenslave的工作状态。 一共有7种方式: =0: (balance-rr) Round-robin policy: (平衡抡循环策略):传输数据包顺序是依次传输,直到最后一个传输完毕, 此模式提供负载平衡和容错能力。 =1: (active-backup) Active-backup policy:(主-备份策略):只有一个设备处于活动状态。 一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得。 此模式提供了容错能力。 =2:(balance-xor) XOR policy:(平衡 策略): 传输根据原地址布尔值选择传输设备。 此模式提供负载平衡和容错能力。 =3:(broadcast) broadcast policy: (广播策略):将所有数据包传输给所有接口。 此模式提供了容错能力。
=4:(802.3ad) IEEE 802.3ad Dynamic link aggregation. IEEE 802.3ad 动态链接聚合:创建共享相同的速度和双工设置的聚合组。(我不是太懂。) =5:(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡):没有特殊策略,第一个设备传不通就用另一个设备接管第一个设备正在处理的mac地址,帮助上一个传。 =6:(balance-alb) Adaptive load balancing: (适配器传输负载均衡):大致意思是包括mode5,bonding驱动程序截获 ARP 在本地系统发送出的请求,用其中之一的硬件地址覆盖从属设备的原地址。就像是在服务器上不同的人使用不同的硬件地址一样。

这些选项可以用命令:# modinfo bonding 来查看

最后,在/etc/rc.local中加入

modprobe bonding miimon=100 mode=1

重启机器后可以看到虚拟网卡已经生效,可以通过插拔两个物理网卡的网线来进行测试,不过linux中网卡接管的时间好象比较长

from:http://www.360doc.com/content/10/1016/14/1317564_61486325.shtml

====================================================

需要说明的是如果想做成负载均衡,仅仅设置这里modprode bonding miimon=100 mode=0是不够的,还需要设置交换机的端口. 从原理分析一下(bond运行在mode 0下): mode 0下bond所绑定的网卡的IP都被修改成一样的mac地址,如果这些网卡都被接在同一个交换机,那么交换机的arp表里这个mac地址对应的端口就有多个,那么交换机接受到发往这个mac地址的包应该往哪个端口转发呢?正常情况下mac地址是全球唯一的,一个mac地址对应多个端口肯定使交换机迷惑了。 所以mode0下的bond如果连接到交换机,交换机这几个端口应该采取聚合方式(cisco称为ethernetchannel,foundry称为portgroup),因为交换机做了聚合后,聚合下的几个端口也被捆绑成一个mac地址 由于家里没有三层交换机,这里的试验留给网友自行验证了.

====================================================

在 /etc/rc.local 文件里加上一行:

/root/bonding.sh

bonding.sh文件内容:

复制代码

复制代码

#!/bin/sh
modprobe -r bonding
modprobe bonding miimon=100 mode=6
ifconfig bond0 172.16.96.46 netmask 255.255.248.0 up
route add default gw 172.16.100.1 bond0
#ifenslave bond0 eth0 eth1 eth2 eth3 eth4 eth5
ifenslave bond0 eth0 eth1 
service network restart

复制代码

复制代码

http://candon123.blog.51cto.com/704299/402677/

以上就是良许教程网为各位朋友分享的Linux相关知识。

<think>首先,用户的问题是基于之前的引用,询问Linux系统中进行网卡设置的方法。引用提供了四种主要方法:VIM文本编辑器、nm-connection-editor、通过“网络图标”配置、nmtui字符界面配置,以及一些额外信息如ethtool修改网卡速率、多网卡设置、NetworkManager管理等。 我的系统指令指定了格式: - 行内数学表达式用$...$(但这里可能不涉及数学表达式)。 - 独立公式用$$...$$(同样不适用)。 - LaTeX语法正确(确保代码块正确)。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾添加引用标识,如[^1]。 回答结构要清晰,帮助用户逐步解决问题。用户的问题是“请问Linux系统网卡设置方法”,所以我需要组织内容,覆盖主要方法。 关键引用: - [^1]:描述了四种配置网卡方式:VIM文本编辑器、nm-connection-editor、网络图标配置、nmtui。 - [^2]:关于设置网卡速率和模式使用ethtool。 - [^3]:多网卡多网关设置。 - [^4]:网卡设置相关,如NetworkManager。 用户上一次的问题和我的回答:用户的问题是“我想查找在Linux系统中进行网卡设置的方法”,引用了这些内容。我需要参考这些来回答。 步骤: 1. **介绍主题**:简要解释Linux网卡设置的重要性。 2. **详细方法**:基于引用[^1],描述四种主要配置方法。引用中提到适用于RHEL8.5和7,所以需注意。 3. **其他相关设置**:包括速率修改[^2]、多网卡设置[^3]、NetworkManager管理[^4]。 4. **添加引用标识**:在描述每个方法时,从引用中抽取内容,并在末尾添加引用标识。 5. **生成相关问题**:在末尾生成相关问题,遵循示例格式。 结构回答: - 标题或清晰段落划分。 - 使用代码块展示命令。 - 确保中文。 最终回答应包括: 1. 介绍。 2. 主要方法(四种)。 3. 额外设置(如速率、多网卡)。 4. 常见问题和注意事项。 5. 相关问题。 生成相关问题: - 类似示例,基于主题生成2-3个问题。 引用标识:例如,在描述VIM方法后添加[^1]。 </think>### Linux系统网卡设置方法详解 在Linux系统中,配置网卡是实现网络连接的基础操作。网卡设置涉及IP地址分配、速率调整、多网卡管理等,不同发行版(如RHEL或Ubuntu)可能有细微差异,但核心方法类似。以下是基于系统引用和Linux最佳实践的详细指南,覆盖常用场景。设置前请确保您有管理员权限(使用`sudo`命令),并备份配置文件以防意外错误。引用内容主要针对RHEL系统,但方法可推广到其他发行版(如Debian/Ubuntu需调整路径或命令)。 #### 一、主要网卡配置方法(基于文本或图形界面) Linux提供多种方式配置网卡,以下是四种最常用的方法(参考引用[^1])。 1. **使用VIM文本编辑器(命令行方式)** 这是最基础的方法,适用于所有Linux系统,尤其是无图形界面的服务器环境。 - **步骤**: - 进入网卡配置目录:`cd /etc/sysconfig/network-scripts/` - 查看网卡名称:`ls`(通常为`ifcfg-ens160`或类似) - 编辑网卡配置文件:`vim ifcfg-ens160`(替换`ens160`为您的网卡名) - 在编辑模式下输入配置参数(示例配置): ```bash TYPE=Ethernet # 设备类型 BOOTPROTO=static # 地址分配模式(static为静态IP,dhcp为动态) NAME=ens160 # 网卡名称 ONBOOT=yes # 是否启动时启用 IPADDR=192.168.10.20 # IP地址 NETMASK=255.255.255.0 # 子网掩码 GATEWAY=192.168.10.1 # 网关地址 DNS1=192.168.10.1 # DNS地址 ``` - 保存并退出(在VIM中按`:wq`),然后重启网卡: - RHEL 8及以上:`nmcli connection reload ens160`(替换`ens160`为网卡名) - RHEL 7:`systemctl restart network` - **优点**:灵活、适用于脚本自动化。**缺点**:需手动输入命令,新手易出错[^1]。 2. **使用nm-connection-editor(图形界面工具)** 适用于有图形界面的桌面系统,操作直观。 - **步骤**: - 打开终端,输入命令:`nm-connection-editor` - 在弹出的窗口中选择“Ethernet”下的网卡(如`ens160`),点击齿轮图标编辑。 - 在“General”选项中勾选“Automatically connect to this network when it is available”。 - 切换到“IPv4 Settings”标签页,选择“Manual”,在“Addresses”中添加IP地址(格式:IP/子网掩码,如`192.168.10.20/24`)。 - 点击“Save”保存,重启网卡生效(可通过系统设置重启网络服务)。 - **优点**:用户友好,适合桌面用户。**缺点**:依赖图形环境[^1]。 3. **通过“网络图标”配置(桌面系统内置)** 类似方法2,但使用系统托盘的网络图标,适用于Ubuntu等发行版。 - **步骤**: - 点击桌面右上角的“Wired Settings”图标。 - 开启“Wired”开关(设为ON),点击齿轮图标进入设置。 - 选择“IPv4”标签页,切换到“Manual”模式,输入IP地址、子网掩码等。 - 点击“Apply”保存设置,关闭并重新开启网络连接(相当于重启网卡)。 - **优点**:无需命令,操作简单。**缺点**:仅限桌面环境[^1]。 4. **使用nmtui(字符界面图形工具)** 适用于无图形界面的系统,提供菜单式交互。 - **步骤**: - 终端输入命令:`nmtui` - 使用方向键选择“Edit a connection”,然后选择目标网卡(如`ens160`)。 - 在编辑界面输入IP地址(格式:`IP地址/24`表示子网掩码255.255.255.0)、网关等。 - 点击“OK”保存,退出后重启网卡(命令同方法1)。 - **优点**:结合命令行和图形优点,适合远程管理。**缺点**:功能相对基础[^1]。 #### 二、其他常见网卡设置(扩展功能) 除了基本IP配置,还需考虑速率调整、多网卡管理等问题。 - **修改网卡速率和双工模式** 使用`ethtool`命令优化网络性能(参考引用[^2])。 - 查看当前速率:`ethtool eth1`(替换`eth1`为网卡名),显示自适应模式下的速率(如1000Mb/s全双工)。 - 修改速率(示例命令): - 设为100Mb/s半双工(非自适应):`ethtool -s eth1 speed 100 duplex half autoneg off` - 恢复自适应模式:`ethtool -s eth1 autoneg on` - **注意**:修改后需重启网卡生效。适用于调优网络延迟或兼容旧设备[^2]。 - **多网卡多网关设置** 在服务器环境中管理多个网卡(参考引用[^3])。 - **场景示例**:两张网卡(`eth0`和`ib0`),`eth0`配置网关,`ib0`不配网关。 - 创建路由文件:在`/etc/sysconfig/network-scripts/`下新建`route-ib0`,内容: ```bash 10.200.1.0/24 via 10.206.210.254 dev ib0 # 指定网段路由 ``` - 执行命令生效:`ip route add 10.200.1.0/24 via 10.206.210.254 dev ib0` - **优点**:支持负载均衡或隔离流量。**缺点**:配置复杂,需测试路由规则[^3]。 - **管理NetworkManager服务** 控制网络管理器以优化设置(参考引用[^4])。 - 临时停止:`systemctl stop NetworkManager`(避免干扰手动配置)。 - 永久关闭:`systemctl disable NetworkManager`(适用于纯命令行环境)。 - 重启网卡:`systemctl restart network`(配置生效后)。 - 设置网卡开机自启:编辑网卡配置文件(如`ifcfg-ens33`),将`ONBOOT=no`改为`ONBOOT=yes`[^4]。 #### 三、注意事项和常见问题 - **通用建议**: - 修改配置后,始终重启网卡服务(命令:`systemctl restart network`或`nmcli connection reload`)。 - 测试连接:使用`ping`或`ip addr show`检查IP是否生效。 - 故障排查:如果配置无效,检查NetworkManager状态(`systemctl status NetworkManager`),或查看日志(`journalctl -u network.service`)。 - **系统差异**: - RHEL/CentOS使用上述路径,Ubuntu/Debian可能使用`/etc/netplan/`配置文件(需用`netplan apply`生效)。 - **风险提示**:错误配置可能导致网络中断,建议在测试环境操作或备份文件(如`cp ifcfg-ens160 ifcfg-ens160.bak`)。 通过以上方法,您可以灵活管理Linux网卡设置。如果需要更高级功能(如VLAN或绑定),请参考Linux文档或社区资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值