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. And Then There Was One(约瑟夫环)

    https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...

  2. windy数(简单数位DP)

    1026: [SCOI2009]windy数 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 6306  Solved: 2810[Submit][Sta ...

  3. 深入 JavaScript 中的对象以及继承原理

    ES6引入了一个很甜的语法糖就是 class, class 可以帮助开发者回归到 Java 时代的面向对象编程而不是 ES5 中被诟病的面向原型编程. 我也在工作的业务代码中大量的使用 class, ...

  4. struts自定义拦截器实现

    示例 添加新功能:只有是登录的状态访问hello_loginSuccess才会显示登录成功. index.jsp登录成功页面 test.jsp登录页面 一.修改原代码实现 1.登录后将登录信息添加到S ...

  5. Nvidia NVENC 硬编码预研总结

    本篇博客记录NVENC硬编码的预研过程 github:  https://github.com/MarkRepo/NvencEncoder 步骤如下: (1)环境搭建 (2)demo编译,测试,ARG ...

  6. HDU - 5703 Desert 【找规律】

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5703 题意 给出一杯容量为N的水 每次至少喝1个单位 有多少种不同的方式喝完 比如 给出3 就有4种方 ...

  7. 第三篇、javascript整数和字符串

    一.整数 JavaScript中不区分整数值和浮点数值,JavaScript中所有数字均用浮点数值表示. 转换: parseInt(..)    将某值转换成数字,不成功则NaN parseFloat ...

  8. Vim 分隔窗口

    一,分隔窗口: 打开文件时在:命令模型时下面输入:split 将分隔为上下2个窗口:默认上窗口为活动窗口,可以通过CTRL-w来来回切换窗口; :close 为关闭窗口,最后一个窗口不能关闭: :on ...

  9. sql的执行过程

    from ===> where ===> group by ===> select ===>order by 这个执行流程 很重要~~

  10. sqoop导入增量数据

    使用sqoop导入增量数据. 核心参数 --check-column 用来指定一些列,这些列在增量导入时用来检查这些数据是否作为增量数据进行导入,和关系行数据库中的自增字段及时间戳类似这些被指定的列的 ...