📄 linux 网络接口配置文件及相关工具 (v0_1b) linuxsir_org.htm
字号:
<A href="http://www.linuxsir.org/main/?q=node/224#7">7、DNS客户端配置文件/etc/resolv.conf;</A>
<A href="http://www.linuxsir.org/main/?q=node/224#8">8、关于本文;</A>
<A href="http://www.linuxsir.org/main/?q=node/224#9">9、更新日志;</A>
<A href="http://www.linuxsir.org/main/?q=node/224#10">10、参考文档;</A>
<A href="http://www.linuxsir.org/main/?q=node/224#11">11、相关文档;</A>
</UL>
</PRE>
<P><FONT
color=blue><B><BR>+++++++++++++++++++++++++++++++<BR>正文<BR>+++++++++++++++++++++++++++++++<BR></B></FONT></P>
<P><FONT id=1 size=4><B><BR>1、 关于网络接口及配置工具说明;<BR></B></FONT></P>
<P>网络接口(interface)是网络硬件设备在操作系统中的表示方法,比如网卡在Linux操作系统中用
ethX,是由0开始的正整数,比如eth0、eth1...... ethX。而普通猫和ADSL的接口是 pppX,比如ppp0等;</P>
<P>在Linux操作系统中配置网络接口,一般是通过网络配置工具实现的,但最终目的还是通过网络配置工具来达到修改与网络相关的配置文件而起作用的。由此说来,我们配置网络可以直接修改配置文件。比如网络网络接口(网卡)的IP地址、子掩码、网关,在Slackware
中只需修改一个配置文件就行了 /etc/rc.d/rc.inet1 ,而在 Redhat/Fedora 等或以Redhat/Fedora
为基础的发行版中,一般要涉及到好几个文件,比如包括
/etc/sysconfig/network-scripts/ifcfg-eth0在内等。</P>
<P>了解Linux网络配置文件是极为重要的,我们通过工具修改了什么,是怎么生效的,只有了解网络配置文件才能搞清楚。做个不恰当的比喻:Linux
系统是一个透明的盒子,至于盒子里装的是什么都是一目了然的。而闭源操作系统,我们没有机会知道这些,更不知道他是怎么实现的。</P>
<P>对于复杂的网络模型,Linux 是有极大的优势,可能在我们看看man
和help,修改修改配置文件,在几分钟就可以搞定。但闭源图形界面的操作系统就没有这么幸运了,反复的点鼠标,点了几十次上百次也解决不了一个问题,这是极为常见的。</P>
<P>由于Linux存在很多的发行和版本,大多发行版本都有自己的专用配置工具。主要是为了方便用户配置网络;但也有通用的配置工具,比如
ifconfig 、ifup、ifdown;</P>
<P><FONT id=2 size=4><B><BR>2 关于网络硬件设备的驱动;<BR></B></FONT></P>
<P>我在以前的文档中有写过,网络硬件,比如网卡(包括有线、无线),猫包括普通猫和ADSL猫等,都是需要内核支持的,所以我们首先得知道自己的网络设备是不是已经被硬内核支持了。如果不支持,我们得找驱动(或通过内核编译)来支持它;</P>
<P><B>请参考:</B></P>
<P><FONT id=3 size=4><B><BR>3、ifconfig 配置网络接口的工具介绍;<BR></B></FONT></P>
<P>ifconfig
是一个用来查看、配置、启用或禁用网络接口的工具,这个工具极为常用的。比如我们可以用这个工具来临时性的配置网卡的IP地址、掩码、广播地址、网关等。也可以把它写入一个文件中(比如/etc/rc.d/rc.local),这样系统引导后,会读取这个文件,为网卡设置IP地址;不过这样做目前看来没有太大的必要。主要是各个发行版本都有自己的配置工具,无论如何也能把主机加入到网络中;</P>
<P>下面我们看看ifconfig 用法;</P>
<P><FONT id=3.1 size=3><B><BR>3.1 ifconfig 查看网络接口状态;<BR></B></FONT></P>
<P>ifconfig 如果不接任何参数,就会输出当前网络接口的情况;</P><PRE>[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet <FONT color=red>HWaddr 00:C0:9F:94:78:0E</FONT>
<FONT color=red>inet addr:192.168.1.88 Bcast:192.168.1.255 Mask:255.255.255.0</FONT>
inet6 addr: fe80::2c0:9fff:fe94:780e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:850 errors:0 dropped:0 overruns:0 frame:0
TX packets:628 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:369135 (360.4 KiB) TX bytes:75945 (74.1 KiB)
Interrupt:10 Base address:0x3000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:57 errors:0 dropped:0 overruns:0 frame:0
TX packets:57 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8121 (7.9 KiB) TX bytes:8121 (7.9 KiB)
</PRE>
<P><B>解说:</B><BR>eth0 表示第一块网卡, 其中 HWaddr
表示网卡的物理地址,我们可以看到目前这个网卡的物理地址(MAC地址)是 00:C0:9F:94:78:0E ; inet addr
用来表示网卡的IP地址,此网卡的 IP地址是 192.168.1.88, 广播地址,
Bcast:192.168.1.255,掩码地址Mask:255.255.255.0 </P>
<P>lo
是表示主机的回坏地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如我们把HTTPD服务器的指定到回坏地址,在浏览器输入
127.0.0.1 就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道;</P>
<P><B>如果我们想知道主机所有网络接口的情况,请用下面的命令;</B></P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# ifconfig -a</CODE></DIV>
<P></P>
<P><B>如果我们想查看某个端口,比如我们想查看eth0 的状态,就可以用下面的方法;</B></P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# ifconfig eth0</CODE></DIV>
<P></P>
<P><FONT id=3.2 size=3><B><BR>3.2 ifconfig 配置网络接口;<BR></B></FONT></P>
<P>ifconfig 可以用来配置网络接口的IP地址、掩码、网关、物理地址等;值得一说的是用ifconfig
为网卡指定IP地址,这只是用来调试网络用的,并不会更改系统关于网卡的配置文件。如果您想把网络接口的IP地址固定下来,目前有三个方法:一是通过各个发行和版本专用的工具来修改IP地址;二是直接修改网络接口的配置文件;三是修改特定的文件,加入ifconfig
指令来指定网卡的IP地址,比如在redhat或Fedora中,把ifconfig 的语名写入/etc/rc.d/rc.local文件中;</P>
<P><B>ifconfig 配置网络端口的方法:</B></P>
<P>ifconfig 工具配置网络接口的方法是通过指令的参数来达到目的的,我们只说最常用的参数;</P>
<P>
<DIV class=codeblock><CODE>ifconfig 网络端口 IP地址 hw <HW> MAC地址 netmask
掩码地址 broadcast 广播地址 [up/down]</CODE></DIV>
<P></P>
<P><B>* 实例一:</B><BR>比如我们用ifconfig 来调试 eth0网卡的地址 </P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# ifconfig eth0
down<BR>[root@localhost ~]# ifconfig eth0 192.168.1.99 broadcast
192.168.1.255 netmask 255.255.255.0<BR>[root@localhost ~]# ifconfig eth0
up<BR>[root@localhost ~]# ifconfig eth0 <BR>eth0 Link encap:Ethernet
HWaddr
00:11:00:00:11:11<BR> inet
addr:192.168.1.99 Bcast:192.168.1.255
Mask:255.255.255.0<BR> UP
BROADCAST MULTICAST MTU:1500
Metric:1<BR> RX
packets:0 errors:0 dropped:0 overruns:0
frame:0<BR> TX
packets:0 errors:0 dropped:0 overruns:0
carrier:0<BR> collisions:0
txqueuelen:1000<BR> RX
bytes:0 (0.0 b) TX bytes:0 (0.0
b)<BR> Interrupt:11
Base address:0x3400</CODE></DIV>
<P></P>
<P><B>注解:</B> 上面的例子我们解说一下;</P>
<P>第一行:ifconfig eth0 down 表示如果eth0是激活的,就把它DOWN掉。此命令等同于 ifdown
eth0;<BR>第二行:用ifconfig 来配置 eth0的IP地址、广播地址和网络掩码;<BR>第三行:用ifconfig eth0 up
来激活eth0 ; 此命令等同于 ifup eth0<BR>第四行:用 ifconfig eth0 来查看 eth0的状态;</P>
<P><B>当然您也可以用直接在指令IP地址、网络掩码、广播地址的同时,激活网卡;要加up参数;比如下面的例子;</B></P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# ifconfig eth0 192.168.1.99
broadcast 192.168.1.255 netmask 255.255.255.0 up</CODE></DIV>
<P></P>
<P><B>* 实例二:</B>在这个例子中,我们要学会设置网络IP地址的同时,学会设置网卡的物理地址(MAC地址);</B></P>
<P>比如我们设置网卡eth1的IP地址、网络掩码、广播地址,物理地址并且激活它;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# ifconfig eth1 192.168.1.252
hw ether 00:11:00:00:11:11 netmask 255.255.255.0 broadcast 192.168.1.255
up<BR>或<BR>[root@localhost ~]# ifconfig eth1 hw ether
00:11:00:00:11:22<BR>[root@localhost ~]# ifconfig eth1 192.168.1.252
netmask 255.255.255.0 broadcast 192.168.1.255 up</CODE></DIV>
<P></P>
<P>其中 hw 后面所接的是网络接口类型, ether表示乙太网, 同时也支持 ax25 、ARCnet、netrom等,详情请查看 man
ifconfig ;</P>
<P><FONT id=3.3 size=3><B><BR>3.3 如何用ifconfig
来配置虚拟网络接口;<BR></B></FONT></P>
<P>有时我们为了满足不同的需要还需要配置虚拟网络接口,比如我们用不同的IP地址来架运行多个HTTPD服务器,就要用到虚拟地址;这样就省却了同一个IP地址,如果开设两个的HTTPD服务器时,要指定端口号。</P>
<P>虚拟网络接口指的是为一个网络接口指定多个IP地址,虚拟接口是这样的 eth0:0 、 eth0:1、eth0:2 ... ..
eth1N。当然您为eth1 指定多个IP地址,也就是 eth1:0、eth1:1、eth1:2 ... ...以此类推;</P>
<P>其实用ifconfig 为一个网卡配置多个IP地址,就用前面我们所说的ifconfig的用法,这个比较简单;看下面的例子;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# ifconfig eth1:0
192.168.1.251 hw ether 00:11:00:00:11:33 netmask 255.255.255.0 broadcast
192.168.1.255 up<BR>或<BR>[root@localhost ~]# ifconfig eth1 hw ether
00:11:00:00:11:33<BR>[root@localhost ~]# ifconfig eth1 192.168.1.251
netmask 255.255.255.0 broadcast 192.168.1.255 up</CODE></DIV>
<P></P>
<P><B>注意:</B>指定时,要为每个虚拟网卡指定不同的物理地址;</P>
<P>在 Redhat/Fedora
或与Redhat/Fedora类似的系统,您可以把配置网络IP地址、广播地址、掩码地址、物理地址以及激活网络接口同时放在一个句子中,写入/etc/rc.d/rc.local中。比如下面的例子;</P>
<P>
<DIV class=codeblock><CODE>ifconfig eth1:0 192.168.1.250 hw ether
00:11:00:00:11:44 netmask 255.255.255.0 broadcast 192.168.1.255
up<BR>ifconfig eth1:1 192.168.1.249 hw ether 00:11:00:00:11:55 netmask
255.255.255.0 broadcast 192.168.1.255 up</CODE></DIV>
<P></P>
<P><B>解说:</B>上面是为eth1的网络接口,设置了两个虚拟接口;每个接口都有自己的物理地址、IP地址... ... </P>
<P><FONT id=3.4 size=3><B><BR>3.4 如何用ifconfig
来激活和终止网络接口的连接;<BR></B></FONT></P>
<P>激活和终止网络接口的用 ifconfig 命令,后面接网络接口,然后加上
down或up参数,就可以禁止或激活相应的网络接口了。当然也可以用专用工具ifup和ifdown 工具;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# ifconfig eth0
down<BR>[root@localhost ~]# ifconfig eth0 up<BR>[root@localhost ~]# ifup
eth0<BR>[root@localhost ~]# ifdown eth0</CODE></DIV>
<P></P>
<P>对于激活其它类型的网络接口也是如此,比如 ppp0,wlan0等;不过只是对指定IP的网卡有效。</P>
<P><B><BR>注意:对DHCP自动分配的IP,还得由各个发行版自带的网络工具来激活;当然得安装dhcp客户端;这个您我们应该明白;<BR></B></P>
<P>比如Redhat/Fedora</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# /etc/init.d/network
start</CODE></DIV>
<P></P>
<P>Slackware 发行版;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]#
/etc/rc.d/rc.inet1</CODE></DIV>
<P></P>
<P><FONT id=4
size=4><B><BR>4、Debian、Slackware、Redhat/Fedora、SuSE等发行版专用网络接口配置工具;<BR></B></FONT></P>
<P>由于 ifconfig
用起来比较麻烦,而且是用来测试网络之用,但这个工具并不能修改网络接口的相应配置文件。虽然也能通过把ifconfig配置网络接口的语句写入类似/etc/rc.d/rc.local
文件中,但相对来说还是写入关于网络接口的配置文件中更为安全和可靠;但对于虚拟网络接口写入类似/etc/rc.d/rc.local
中还是可以的;</P>
<P>下面我们介绍一下各个发行版的网络接口配置工具;</P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -