Linux 下网卡参数配置

Linux 下如果想修改网卡的参数有很多种方法,第一种方法是修改 /etc/network/interfaces 文件,这种方法可以在重启后依然有效;另外一种方法是使用 ifconfig 指令,这种方法只能临时性的修改网卡参数,在重启后会失效。

第一种:修改 interfaces 文件

interfaces 文件在 /etc/network/ 文件夹下,是网络接口配置文件,里面包含了所有网络接口的配置信息。

interfaces 文件有自己的编写规则,其中以 '#' 开头的行会被系统忽略,因此可以作为注释使用。每个指令占一行,如果写不下可以用 '\' 符号作为此行结尾,在下一行接着写命令。

文件由 "iface","mapping","auto","allow-" 和 "source" 字段组成。下面是一个例子:

auto lo eth0 allow-hotplug eth1 iface lo inet loopback source interfaces.d/machine-dependent mapping eth0 script /usr/local/sbin/map-scheme map HOME eth0-home map WORK eht0-work iface eth0-home inet static address 192.168.1.1 netmask 255.255.255.0 up flush-mail iface eth0-work inet dhcp iface eth1 inet dhcp

以 "auto" 开头的行是用来确定物理网络接口将会被启动当 ifup -a 指令被运行时(这个指令会在系统启动脚本中使用,因此开机时会自动启动以 "auto" 开头设置的网卡)。在 "auto" 字段的后面应该紧跟着物理接口的名字,interfaces 文件中可以设置多个 "auto" 方式启动的网络接口,ifup 指令会按照顺序启动网络设备。

以 "allow-" 开头的行是用来确定通过哪种子系统来启动那些应该被自动启动的网络设备。这样就可以使用指令 ifup --allow=hotplug 来启动那些已经设置 "allow-hotplug" 的网络设备。

NOTE:"allow-auto" 和 "auto" 是同义词。

以 "source" 开头的行是用来包含其他文件的字段,因此可以把配置拆成几个文件。 "source" 后面接的是文件路径, shell 下面的通配符可以使用。

以 "mapping" 开头的行是用来给将要启动的物理设备接口确定逻辑接口名。"mapping" 字段的第一行是以 "mapping" 开始的,后面跟着 shell 下 glob 指令语法相同的模式匹配(如 eth*)。每个 "mapping" 字段必须包含一个脚本定义,这个脚本使用物理设备接口名作为参数,并且会把下面所有以 "map" 开头的字段(不包括 "map" 本身)提供给它作为输入。在脚本执行结束前会输出一段字符串,具体例子可以参考 /usr/share/doc/ifupdown/examples 下面的例子文件。

映射一个包含搜索映射匹配模式的名字并且执行使用第一个匹配的字段来运行脚本,脚本输出的名字就是原来网卡将要被映射的名字。

如:

通过PING配置网络

Linux 在处理 PCMCIA 卡的时候有比较好的方式,可以在 PCMICA 卡插入时通过一个配置脚本来确定网络地址。但是,笔记本上的网卡是笔记本自带的,并非 PCMCIA 卡,由于经常需要奔波于办公室、实验室和家之间,就经常需要修改网络地址。如果我去的每一个地方都安装了 DHCP ,那么我就可以把 eth0 设定成为 DHCP 的方式,然而我的情况却是:在家可以使用DHCP,在办公室和实验室都要使用固定地址。

为了解决这个问题,我们可以使用一种 mapping 机制,这种方法的基本原理是通过运行一个程序来确定目前所处的环境,并为这个环境选择一套配置。我现在使用的就是通过ping一个网络的网关来确定当前网卡究竟连接在哪个网络上,然后再选择这个网络的配置。

首先,在 /usr/share/doc/ifupdown/examples 中有一个文件 ping-places.sh ,把它复制到 /etc/network 目录中,然后 chmod a+x /etc/network/ping-places.sh。下面就是编辑 /etc/network/interfaces 文件,下面是一个例子:

mapping eth0 ① script /etc/network/ping-places.sh map 192.168.0.107/24 192.168.0.1 home map 10.1.133.165/24 10.1.133.1 office map 10.1.0.107/24 10.1.0.1 lab iface home inet dhcp ② iface office inet static ③ address 10.1.133.165 netmask 255.255.255.0 gateway 10.1.133.1 up cp /etc/resolv.conf.school /etc/resolv.conf ④ iface lab inet static address 10.1.0.107 netmask 255.255.255.0 gateway 10.1.0.1 up cp /etc/resolv.conf.school /etc/resolv.conf

表示对于网络设备调用脚本 /etc/network/ping-places.sh ,如果能够用地址 192.168.0.107/24
ping 通地址 192.168.0.1 ,则将 eth0 映射为设备 home ,即启动 home 的配置。后面的 office 和 lab 与其类似。

表示虚拟设备 home 使用 DHCP 分配的地址。

表示虚拟设备 office 使用固定地址。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/16590.html