Linux 网络接口配置文件及相关工具.docx
《Linux 网络接口配置文件及相关工具.docx》由会员分享,可在线阅读,更多相关《Linux 网络接口配置文件及相关工具.docx(10页珍藏版)》请在冰豆网上搜索。
Linux网络接口配置文件及相关工具
Linux网络接口配置文件及相关工具
1、关于网络接口及配置工具说明;
网络接口(interface)是网络硬件设备在操作系统中的表示方法,比如网卡在Linux操作系统中用ethX,是由0开始的正整数,比如eth0、eth1......ethX。
而普通猫和ADSL的接口是pppX,比如ppp0等;
在Linux操作系统中配置网络接口,一般是通过网络配置工具实现的,但最终目的还是通过网络配置工具来达到修改与网络相关的配置文件而起作用的。
由此说来,我们配置网络可以直接修改配置文件。
比如网络网络接口(网卡)的IP地址、子掩码、网关,在Slackware中只需修改一个配置文件就行了/etc/rc.d/rc.inet1,而在Redhat/Fedora等或以Redhat/Fedora为基础的发行版中,一般要涉及到好几个文件,比如包括/etc/sysconfig/network-scripts/ifcfg-eth0在内等。
了解Linux网络配置文件是极为重要的,我们通过工具修改了什么,是怎么生效的,只有了解网络配置文件才能搞清楚。
做个不恰当的比喻:
Linux系统是一个透明的盒子,至于盒子里装的是什么都是一目了然的。
而闭源操作系统,我们没有机会知道这些,更不知道他是怎么实现的。
对于复杂的网络模型,Linux是有极大的优势,可能在我们看看man和help,修改修改配置文件,在几分钟就可以搞定。
但闭源图形界面的操作系统就没有这么幸运了,反复的点鼠标,点了几十次上百次也解决不了一个问题,这是极为常见的。
由于Linux存在很多的发行和版本,大多发行版本都有自己的专用配置工具。
主要是为了方便用户配置网络;但也有通用的配置工具,比如ifconfig、ifup、ifdown;
2关于网络硬件设备的驱动;
我在以前的文档中有写过,网络硬件,比如网卡(包括有线、无线),猫包括普通猫和ADSL猫等,都是需要内核支持的,所以我们首先得知道自己的网络设备是不是已经被硬内核支持了。
如果不支持,我们得找驱动(或通过内核编译)来支持它;
3、ifconfig配置网络接口的工具介绍;
ifconfig是一个用来查看、配置、启用或禁用网络接口的工具,这个工具极为常用的。
比如我们可以用这个工具来临时性的配置网卡的IP地址、掩码、广播地址、网关等。
也可以把它写入一个文件中(比如/etc/rc.d/rc.local),这样系统引导后,会读取这个文件,为网卡设置IP地址;不过这样做目前看来没有太大的必要。
主要是各个发行版本都有自己的配置工具,无论如何也能把主机加入到网络中,下面我们看看ifconfig用法。
3.1ifconfig查看网络接口状态;
ifconfig如果不接任何参数,就会输出当前网络接口的情况;
[root@localhost~]#ifconfig
eth0 Linkencap:
Ethernet HWaddr00:
C0:
9F:
94:
78:
0E
inetaddr:
192.168.1.88 Bcast:
192.168.1.255 Mask:
255.255.255.0
inet6addr:
fe80:
:
2c0:
9fff:
fe94:
780e/64Scope:
Link
UPBROADCASTRUNNINGMULTICAST MTU:
1500 Metric:
1
RXpackets:
850errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
628errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
1000
RXbytes:
369135(360.4KiB) TXbytes:
75945(74.1KiB)
Interrupt:
10Baseaddress:
0x3000
lo Linkencap:
LocalLoopback
inetaddr:
127.0.0.1 Mask:
255.0.0.0
inet6addr:
:
:
1/128Scope:
Host
UPLOOPBACKRUNNING MTU:
16436 Metric:
1
RXpackets:
57errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
57errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
0
RXbytes:
8121(7.9KiB) TXbytes:
8121(7.9KiB)
解说:
eth0表示第一块网卡,其中HWaddr表示网卡的物理地址,我们可以看到目前这个网卡的物理地址(MAC地址)是00:
C0:
9F:
94:
78:
0E;inetaddr用来表示网卡的IP地址,此网卡的IP地址是192.168.1.88,广播地址,Bcast:
192.168.1.255,掩码地址Mask:
255.255.255.0
lo是表示主机的回坏地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。
比如我们把HTTPD服务器的指定到回坏地址,在浏览器输入127.0.0.1就能看到你所架WEB网站了。
但只是您能看得到,局域网的其它主机或用户无从知道;
如果我们想知道主机所有网络接口的情况,请用下面的命令;
[root@localhost~]#ifconfig-a
如果我们想查看某个端口,比如我们想查看eth0的状态,就可以用下面的方法;
[root@localhost~]#ifconfigeth0
3.2ifconfig配置网络接口;
ifconfig可以用来配置网络接口的IP地址、掩码、网关、物理地址等;值得一说的是用ifconfig为网卡指定IP地址,这只是用来调试网络用的,并不会更改系统关于网卡的配置文件。
如果您想把网络接口的IP地址固定下来,目前有三个方法:
一是通过各个发行和版本专用的工具来修改IP地址;二是直接修改网络接口的配置文件;三是修改特定的文件,加入ifconfig指令来指定网卡的IP地址,比如在redhat或Fedora中,把ifconfig的语名写入/etc/rc.d/rc.local文件中;
ifconfig配置网络端口的方法:
ifconfig工具配置网络接口的方法是通过指令的参数来达到目的的,我们只说最常用的参数;
ifconfig网络端口IP地址hwMAC地址netmask掩码地址broadcast广播地址[up/down]
*实例一:
比如我们用ifconfig来调试eth0网卡的地址:
[root@localhost~]#ifconfigeth0down
[root@localhost~]#ifconfigeth0192.168.1.99broadcast192.168.1.255netmask255.255.255.0
[root@localhost~]#ifconfigeth0up
[root@localhost~]#ifconfigeth0
eth0Linkencap:
EthernetHWaddr00:
11:
00:
00:
11:
11
inetaddr:
192.168.1.99Bcast:
192.168.1.255Mask:
255.255.255.0
UPBROADCASTMULTICASTMTU:
1500Metric:
1
RXpackets:
0errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
0errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
1000
RXbytes:
0(0.0b)TXbytes:
0(0.0b)
Interrupt:
11Baseaddress:
0x3400
注解:
上面的例子我们解说一下;
第一行:
ifconfigeth0down表示如果eth0是激活的,就把它DOWN掉。
此命令等同于ifdowneth0;
第二行:
用ifconfig来配置eth0的IP地址、广播地址和网络掩码;
第三行:
用ifconfigeth0up来激活eth0;此命令等同于ifupeth0
第四行:
用ifconfigeth0来查看eth0的状态;
当然您也可以用直接在指令IP地址、网络掩码、广播地址的同时,激活网卡;要加up参数;比如下面的例子;
[root@localhost~]#ifconfigeth0192.168.1.99broadcast192.168.1.255netmask255.255.255.0up
*实例二:
在这个例子中,我们要学会设置网络IP地址的同时,学会设置网卡的物理地址(MAC地址);
比如我们设置网卡eth1的IP地址、网络掩码、广播地址,物理地址并且激活它;
[root@localhost~]#ifconfigeth1192.168.1.252hwether00:
11:
00:
00:
11:
11netmask255.255.255.0broadcast192.168.1.255up
或
[root@localhost~]#ifconfigeth1hwether00:
11:
00:
00:
11:
22
[root@localhost~]#ifconfigeth1192.168.1.252netmask255.255.255.0broadcast192.168.1.255up
其中hw后面所接的是网络接口类型,ether表示乙太网,同时也支持ax25、ARCnet、netrom等,详情请查看manifconfig;
3.3如何用ifconfig来配置虚拟网络接口;
有时我们为了满足不同的需要还需要配置虚拟网络接口,比如我们用不同的IP地址来架运行多个HTTPD服务器,就要用到虚拟地址;这样就省却了同一个IP地址,如果开设两个的HTTPD服务器时,要指定端口号。
虚拟网络接口指的是为一个网络接口指定多个IP地址,虚拟接口是这样的eth0:
0、eth0:
1、eth0:
2.....eth1N。
当然您为eth1指定多个IP地址,也就是eth1:
0、eth1:
1、eth1:
2......以此类推;
其实用ifconfig为一个网卡配置多个IP地址,就用前面我们所说的ifconfig的用法,这个比较简单;看下面的例子;
[root@localhost~]#ifconfigeth1:
0192.168.1.251hwether00:
11:
00:
00:
11:
33netmask255.255.255.0broadcast192.168.1.255up
或
[root@localhost~]#ifconfigeth1hwether00:
11:
00:
00:
11:
33
[root@localhost~]#ifconfigeth1192.168.1.251netmask255.255.255.0broadcast192.168.1.255up
注意:
指定时,要为每个虚拟网卡指定不同的物理地址;
在Redhat/Fedora或与Redhat/Fedora类似的系统,您可以把配置网络IP地址、广播地址、掩码地址、物理地址以及激活网络接口同时放在一个句子中,写入/etc/rc.d/rc.local中。
比如下面的例子;
ifconfigeth1:
0192.168.1.250hwether00:
11:
00:
00:
11:
44netmask255.255.255.0broadcast192.168.1.255up
ifconfigeth1:
1192.168.1.249hwether00:
11:
00:
00:
11:
55netmask255.255.255.0broadcast192.168.1.255up
解说:
上面是为eth1的网络接口,设置了两个虚拟接口;每个接口都有自己的物理地址、IP地址......
3.4如何用ifconfig来激活和终止网络接口的连接;
激活和终止网络接口的用ifconfig命令,后面接网络接口,然后加上down或up参数,就可以禁止或激活相应的网络接口了。
当然也可以用专用工具ifup和ifdown工具;
[root@localhost~]#ifconfigeth0down
[root@localhost~]#ifconfigeth0up
[root@localhost~]#ifupeth0
[root@localhost~]#ifdowneth0
对于激活其它类型的网络接口也是如此,比如ppp0,wlan0等;不过只是对指定IP的网卡有效。
注意:
对DHCP自动分配的IP,还得由各个发行版自带的网络工具来激活;当然得安装dhcp客户端;这个您我们应该明白;
比如Redhat/Fedora
[root@localhost~]#/etc/init.d/networkstart
Slackware发行版;
[root@localhost~]#/etc/rc.d/rc.inet1
4、Debian、Slackware、Redhat/Fedora、SuSE等发行版专用网络接口配置工具;
由于ifconfig用起来比较麻烦,而且是用来测试网络之用,但这个工具并不能修改网络接口的相应配置文件。
虽然也能通过把ifconfig配置网络接口的语句写入类似/etc/rc.d/rc.local文件中,但相对来说还是写入关于网络接口的配置文件中更为安全和可靠;而对于虚拟网络接口写入类似/etc/rc.d/rc.local中还是可以的。
下面我们介绍一下各个发行版的网络接口配置工具。
4.1Debian网络接口配置文件和专用配置工具;
(详见后继文章)
4.2Redhat/Fedora网络接口的配置文件和网络接口专用配置工具;
在Redhat/Fedora中,与乙太网卡相关的配置文件位于/etc/sysconfig/network-scripts目录中,比如ifcfg-eth0、ifcfg-eth1........
4.21Redhat/Fedora或类似这样的系统,网卡的配置文件;
比如在Fedora5.0中,ifcfg-eth0;如果您用DHCP服务器来自动获取IP的,一般情况下ifcfg-eth0的内容是类似下面这样的;
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Ethernet
如果您是指定IP的,一般内容是类似下面的;
DEVICE=eth0注:
网络接口
ONBOOT=yes注:
开机引导时激活
BOOTPROTO=static注:
采用静态IP地址;
IPADDR=192.168.1.238注:
IP地址
NETMASK=255.255.255.0注:
网络掩码;
GATEWAY=192.168.1.1注:
网关;
下面的几个选项也可以利用;
HOSTNAME=linxsir03注:
指定主机名;
DOMAIN=localdomain注:
指定域名;
HWADDR=00:
00:
11:
22:
00:
aa注:
指定网卡硬件地址(MAC地址),也可以省略,不过这在这里来更改MAC地址一般是不能生效的。
还是通过前面所说的ifconfig的办法来更改吧;
4.22Redhat/Fedora或类似系统,配置网络的工具介绍;
在Redhat早期的版本中,有linuxconf、redhat-config-network、netconfig等工具;在Redhat/Fedora最新的版本有system-config-network-tui(文本模式的)、system-config-network(图形模式的),netconfig(文本模式的)。
这些工具都会直接修改Linux系统中关于网络接口的配置文件;这是ifconfig所不能比的;其中redhat-config-network和system-config-network工具不仅仅是配置网卡的工具,还有配置ISDN和普通猫、ADSL的工具、网络硬件的添加、主机名字的配置、DNS各客户端的配置等。
其实是一个工具组的集成;这些工具比较简单,以root权限运行命令就能调用,比如:
[root@localhost~]#/usr/sbin/system-config-network
[root@localhost~]#system-config-network
如果您设置了可执行命令的环境变量,不用加路径就可以运行,但前提是您得安装这个网络管理工具;
不过值得一说的是netconfig工具是一个在文本模式比较好的工具,推荐大家使用;理由是这个工具在文本模式下,也有一个简单的图形界面;还有命令模式;功能强着呢;
[root@localhost~]#netconfig-deth0注:
配置eth0
[root@localhost~]#netconfig-deth1注:
配置eth1
4.23Redhat/Fedora系统中的netconfig特别介绍;
netconfig这个工具,在Redhat/Fedora或类似于它们的系统中都是存在的,这个工具比较强大。
所以特别介绍一下。
但在Slackware中netconfig是TEXT模式下有一个图形模式,但不能象ifconfig一样用命令来操作网卡接口;
netconfig的用法如下:
[root@localhost~]#netconfig--help注:
帮助;
--bootproto=(dhcp|bootp|none)Bootprotocoltouse(
--gateway=STRINGNetworkgateway(指定网关)
--ip=STRINGIPaddress(指定IP地址)
--nameserver=STRINGNameserver(指定DNS客户端)
--netmask=STRINGNetmask(指定网络掩码)
--hostname=STRINGHostname(指定主机名)
--domain=STRINGDomainname(指定域名)
-d,--device=STRINGNetworkdevice(指定网络设备)
--nodnsNoDNSlookups(没有DNS查询)
--hwaddr=STRINGEthernethardwareaddress(指定网卡的物理地址)
--description=STRINGDescriptionofthedevice(描述性文字)
Helpoptions:
(帮助选项)
-?
--helpShowthishelpmessage
--usageDisplaybriefusagemessage
实例一:
设置网卡的DHCP模式自动获得IP
[root@localhost~]#netconfig-deth0--bootproto=dhcp
实例一:
手动设置网卡的IP等
[root@localhost~]#netconfig-deth0--ip=192.168.1.33--netmask=255.255.255.0--gateway=192.168.1.1
4.3Slackware网卡配置文件和配置工具;
Slackware有关网卡的配置文件是/etc/rc.d/rc.inet1.conf,这个文件包括乙太网接口的网卡和无线网卡的配置。
Slackware还是比较纯净的,网络配置也较简单;在Slackware中也有netconfig配置工具,也是text模式运行的,人机交互界面,这个设置比较简单;
Slackware用netconfig配置网卡完成后,其实质是修改了/etc/rc.d/rc.inet1.conf文件。
Slackware是源法原味的Linux系统,他的配置文件比较标准,所以我推荐您在生产型的系统,不妨尝试一下Slackware;
配置好网卡后,我们还得运行下面的命令,才能激活网卡;
[root@localhost~]#/etc/rc.d/rc.inet1
下面是一个例子,比如此机器有两个网卡eth0和eth1,eth0用DHCP获得IP地址,eth1指定IP地址;
#Configinformationforeth0:
IPADDR[0]=""
NETMASK[0]=""
USE_DHCP[0]="yes"注:
在这里写上yes,表示用DHCP获得IP;
DHCP_HOSTNAME[0]="linuxsir01"注:
DNS服务器主机名,也可以用IP来指定DNS服务器;
#Configinformationforeth1:
注:
网卡eth1的配置;
IPADDR[1]="192.168.1.33"注:
指定IP地址;
NETMASK[1]="255.255.255.0"注:
指定掩码;
USE_DHCP[1]="no"注:
不用DHCP获得IP;
DHCP_HOSTNAME[1]=""
#Configinformationforeth2:
IPADDR[2]=""
NETMASK[2]=""
USE_DHCP[2]=""
DHCP_HOSTNAME[2]=""
#Configinformationforeth3:
IPADDR[3]=""
NETMASK[3]=""
USE_DHCP[3]=""
DHCP_HOSTNAME[3]=""
#DefaultgatewayIPaddress:
GATEWAY="192.168.1.1"注:
指定网关;
4.4SuSE或OpenSuSE网卡配置文件和配置工具;
(详见后继文章)
5、关于拔号工