March 17, 2015 7:48 PM

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
  1. 表示对于网络设备调用脚本 /etc/network/ping-places.sh ,如果能够用地址 192.168.0.107/24

    ping 通地址 192.168.0.1 ,则将 eth0 映射为设备 home ,即启动 home 的配置。后面的 office 和 lab 与其类似。
  2. 表示虚拟设备 home 使用 DHCP 分配的地址。
  3. 表示虚拟设备 office 使用固定地址。
  4. 表示在启动这个网络设备后还要执行 cp 命令,从而指定一个域名解析方法。除了 up 以外,还有 pre-up、down 和 post-down 可以用来指定在启动或停止网络设备前后执行的命令。

NOTE:/usr/share/doc/ifupdown/examples 中有一些配置网络的例子和需要的脚本。

ifup 通常会给一个物理接口名作为它的第一个没有选项的参数。ifup 同时也会使用这个名字作为接口的初始化逻辑名,除非它被指定了一个 "=LOGICAL" 格式的后缀,这样 ifup 会使用 "LOGICAL" 作为接口的初始化逻辑名。

网卡配置实例##

回环参数配置###

#
# The loopback network interface(配置环回口)
# 开机自动激lo接口
auto lo
# 配置lo接口为环回口
iface lo inet loopback

DHCP方式配置###

#
# The primary network interface (配置主网络接口)
# 开机自动激活eth0接口
auto eth0
# 配置eth0接口为DHCP自动获取
iface eth0 inet dhcp

静态 IP 地址分配###

#
# The primary network interface (配置主网络接口)
#开机自动激活eth0接口
auto eth0
#配置eth0接口为静态设置IP地址
iface eth0 inet static
address 10.16.3.99
netmask 255.255.255.0
network 10.16.3.0
broadcast 10.16.3.255
gateway 10.16.3.1
# dns-* options are implemented by the resolvconf package, if installed(DNS设置)
dns-nameservers 61.153.177.196 61.153.177.197
dns-search fireteam.org

无线网卡配置###

auto wlan0
iface wlan1 inet static
wpa-ssid wifi-name
wpa-psk wifi-passwork
address 192.168.1.200
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 202.196.64.1

Linux 下网卡参数配置的更多相关文章

  1. linux下网卡bonding配置(转)

    linux下网卡bonding配置   章节 bonding技术 centos7配置bonding centos6配置bonding 一.bonding技术 bonding(绑定)是一种linux系统 ...

  2. linux下网卡bonding配置

    linux下网卡bonding配置   章节 bonding技术 centos7配置bonding centos6配置bonding 一.bonding技术 bonding(绑定)是一种linux系统 ...

  3. Linux 下configure 参数配置与软件的安装与卸载

    Linux环境下的软件安装,并不是一件容易的事情:如果通过源代码编译后在安装,当然事情就更为复杂一些:现在安装各种软件的教程都非常普遍:但万变不离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而 ...

  4. 查看Linux下网卡状态或 是否连接(转)

      1) 通过mii-tool指令       [root@localhost root]# mii-tool        eth0: negotiated 100baseTx-FD, link o ...

  5. Linux下Redis服务器安装配置

    说明:操作系统:CentOS1.安装编译工具yum install wget  make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel ...

  6. Linux下SVN服务器安装配置及客户端安装说明

    原文地址:http://wenku.baidu.com/link?url=h3dVAMx4azpOXEND5HQEE6nliE8-zc0GSQ03yv4cUs1vXMALXF64UsK7kT7kXm_ ...

  7. 转载-Linux下svn搭建配置流程

    Linux下svn搭建配置流程     一.    源文件编译安装.源文件共两个,为: 1.   下载subversion源文件 subversion-1.6.1.tar.gz http://d136 ...

  8. [转载]linux下网卡漂移导致网络不可用

    转自:https://blog.csdn.net/hyatsz/article/details/47690993 linux下网卡漂移导致网络不可用 2015年08月16日 00:48:50 hyat ...

  9. PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载 && Linux下的ZipArchive配置开启压缩 &&搞个鸡巴毛,写少了个‘/’号,浪费了一天

    PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法就不说了,不同的平台开启PHP扩增的方法网上都有,如有 ...

随机推荐

  1. 6.2.1-FactoryBeanRegistrySupport(未全)

    FactoryBeanRegistrySupport 的关系图: 添加工厂方式创建类FactoryBean的支持

  2. 京东android面试题(2018 顶级互联网公司面试题系列)

    以下来自于北京的一个兄弟的面试题 1.静态内部类和非静态内部类有什么区别  2.谈谈你对java多态的理解  3.如何开启线程,run和runnable有什么区别  4.线程池的好处  5.说一下你知 ...

  3. Mac标识物理位置算法 import Levenshtein mac列表特征值

    mac 字符串 与 基准字符串的 Levenshtein   距离,考虑  mac信号强度的时序性,60秒内若干次变化 不引入强度 mac字符串的唯一性 如何排序 基准字符串的选取 同一尺度 都按强度 ...

  4. ASP-AJAX-分页格式

    HTML: <html> <head> <title>Mazey</title> <meta name="description&quo ...

  5. Django 模型系统(model)&ORM--进阶

    QuerySet 可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMIT 和OFFSET 子句. >>> Entry.objects.all()[ ...

  6. android 自定义progressbar 样式

    在res下创建drawable文件夹,新建文件drawable/progressbar_color.xml <layer-list xmlns:android="http://sche ...

  7. vs2008 发布网站时丢失文件问题

    右键指定的文件->属性, 将生成操作更改成为"内容"就可以了.

  8. iOS NSDateFormatter 不安全线程 处理

    记得 上次我们开CodeReView大会 有人提出 "  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];   ...

  9. 每天一个Linux命令(17)whereis命令

    whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s).如果省略参数,则返回所有信息.     (1)用法:   用法:    w ...

  10. Data Structure Array: Move all zeroes to end of array

    http://www.geeksforgeeks.org/move-zeroes-end-array/ #include <iostream> #include <vector> ...