linux网络探讨

由 海边卡夫卡 在 07-26-2004 18:56 发表:

linux网络探讨

本部分将探讨网络,这是 Linux 做得最好的方面之一。在如今这个时代,运行一台没有连接到网络的计算机几乎是难以想像的。电子邮件、Web 浏览和文件共享像打印和查看屏幕上的信息一样,都是用户所期待的。幸运的是,Liunx 从一开始就是为网络而开发的。事实上,网络是 Linux 做得最好的事情之一。Linux 支持诸如TCP/IP 和 SMB(NetBIOS)等流行的网络协议。Linux 还具有用于监控和过滤网络流量的成熟工具。诸如 FTP、Windows 文件和打印共享以及 Web 托管等服务也是可用的。Linux 甚至还提供了用于集中目录服务、虚拟专用网(VPN)和远程过程调用的工具。

网络硬件

Linux 能够使用具有驱动程序的任何网络硬件。Linux 驱动程序单独地或以可加载模块的形式编译到内核中。Linux 内核默认支持许多流行的网卡。在选择网络硬件时,最好总是使用“硬件兼容性列表”中列出的设备(“硬件控制列表”包括Red Hat 硬件搜索页面 、SuSE Linux 组件数据库 和UnitedLinux 认证和兼容的硬件)。另外还要使用最新的 Linux 发行版本。

一般情况下,如果使用的是兼容的网络硬件,安装系统时网卡会自动得到识别。可以使用 ifconfig 命令来检查系统上的网络硬件。默认情况下,ifconfig 显示活动的网络设备。给这个命令添加一个 -a 开关就能看到所有设备。

清单 1. 使用 ifconfig

refname: ifconfig-a

[root@cmw-t30 root]# ifconfig -a

eth0 Link encap:Ethernet HWaddr 00:09:6B:60:8B:1E

inet addr:9.41.209.160 Bcast:9.41.209.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:47255 errors:0 dropped:0 overruns:0 frame:0

TX packets:32949 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

RX bytes:22140365 (21.1 Mb) TX bytes:13519623 (12.8 Mb)

Interrupt:11 Base address:0xf000

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:1308081 errors:0 dropped:0 overruns:0 frame:0

TX packets:1308081 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:183376967 (174.8 Mb) TX bytes:183376967 (174.8 Mb)

在上面的清单中,系统中只有一块网卡,标识为 eth0。lo 适配器是一个回环(lookback),由 Linux 用来与它自身通信。后面还会进一步讨论 ifconfig 命令。

网络设备名称

Linux 网络设备在配置时被赋予别名,该别名由一个描述性的缩略词和一个编号组成。某种类型的第一个设备的编号为 0,其他设备依次被编号为 1、2、3,等等。在给设备命名时将使用下面的约定。本信息摘自 Linux Network Administrator's Guide。

·eth0, eth1 ...

这些是以太网卡接口。它们用于大多数的以太网卡,包括许多并行端口以太网卡。

·tr0, tr1 ...

这些是令牌环网卡接口。它们用于大多数的令牌环网卡,包括非 IBM 生产的网卡。

·s10, s11 ...

这些是 SLIP 接口 。SLIP 接口与串行线关联,关联顺序就是它们被分配给 SLIP 的顺序。

·ppp0, ppp1 ...

这些是 PPP 接口。就像 SLIP 接口一样,PPP 接口一旦被转换到 PPP 模式,它就与串行线关联。

·plip0. plip1 ...

这些是 PLIP 接口。PLIP 接口通过并行线传输 IP 数据报。这些接口在系统启动时由 PLIP 驱动程序分配,并被映射到并行端口。在 2.0.x 内核中,设备名称和并行端口的 I/O 端口之间存在直接的关系,但是在更新版本的内核中,设备名称是顺序分配的,就像 SLIP 和 PPP 设备一样。

·ax0, ax1 ...

这些是 AX.25 接口。AX.25 是业余无线电操作人员使用的主要协议。AX.25 接口的分配和映射方式与 SLIP 设备类似。

还有其他许多可用于其他网络驱动程序的接口类型。我们仅列出了一些最常见的。既然以太网是最常见的配置,下面就重点来讨论它。

网络配置

在安装 Linux 发行版本时,就得配置网络。您或许已经有一个来自初始配置的活动 eth0。这个配置对于当前的使用也许足够,但是您可能需要随着时间的推移做出更改。下面将介绍与 IP 网络相关的不同配置项,以及用于使用这些配置项的文件和工具。

Webmin 在 Networking 下的 Network Configuration 中提供一组优秀的网络配置工具。您可以配置单独的接口并调整它们的当前设置或已保存的设置。还可以配置路由和网关、DNS 客户端设置以及本地主机地址。在编辑好所有的配置之后,可以单击 Apply Configuration 来应用它们,不必重新启动系统。

(注:Localhost本地主机地址包含在/etc/hosts 中。这个文件和 C:\winnt\system32\drivers\etc\hosts 文件等价。其中的条目显示 IP 地址的别名,用于在不必查询 DNS 的情况下指派名称。

127.0.0.1 localhost.localdomain localhost

10.10.10.10 cmw-t30

不同发行版本中的工具 每个发行版本都有它自己用于配置网络设置的工具。 应该参考特定发行版本的文档来确定要使用的工具。每种工具提供与 Webmin 工具基本上相同的配置选项。 其中有些版本可能提供特定于该发行版本的选项。

图 1. Red Hat 8.x 和 9.x 使用 redhat-config-network 工具

图 2. SuSE 和 United Linux 使用 YAST 工具

手动配置也是可能的,不过这是一个非常深奥的主题。请参考您的发行版本文档和本文结尾处的 参考资料,以了解关于手动网络配置的更多信息。

分析和监控工具

Linux 附带了许多工具来监控网络任务。

ifconfig我们在上面使用过 ifconfig 命令来查看以太网卡的状态。然而,ifconfig 还可以配置设备并报告关于设备的情况。假设您要建立一个临时的网络配置以供测试。您可以使用发行版本中的工具来编辑配置,但是需要注意在完成测试之后,将所有设置恢复回去。通过使用 ifconfig ,我们无需影响已保存的设置,就能够快速地配置网卡:

ipconfig eth0 192.168.13.13 netmask 255.255.255.0 up

上面这条命令使用一个 C 类 IP 地址将 eth0 设置到地址 192.168.13.13,并确保它正常运行。

ipconfig eth0 down

上面这条命令将关闭 eth0 设备。关于使用 ifconfig 的完整细节,请参见 info ifconfig 页面。

ifup/ifdown 要使用已保存的配置来激活和禁用网络设备,请分别使用 ifup 和 ifdown。

Bring up eth0 using the saved configuration

ifup eth0

Shut down eth0

ifdown eth0

netstat 使用 netstat 控制台命令来输出网络连接、路由表、接口统计、伪装连接和组播成员。netstat 具有多个命令行开关来控制其功能。下面是其中一些常用的开关:

输出网络状态

下面是 netstat -tp 的一个例子:

清单 2. 使用 netstat

[root@cmw-t30 root]# netstat -tp

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

PID/Program name

tcp 0 0 localhost.localdo:29000 : LISTEN

2389/attvpnctl

tcp 0 0 *:10000 : LISTEN

5945/perl

tcp 0 0 *:x11 : LISTEN

1120/X

tcp 0 0 *:ftp : LISTEN

724/xinetd

tcp 0 0 *:ssh : LISTEN

710/sshd

tcp 0 0 *:ipp : LISTEN

797/cupsd

tcp 0 0 *:505 : LISTEN

1043/rcd

tcp 0 0 localhost.localdoma:ipp localhost.localdo:32772 ESTABLISHED

797/cupsd

tcp 0 0 sig-9-65-39-140.m:44916 sdoprods2.austin.i:1352 TIME_WAIT

-

tcp 0 0 10.100.100.101:33020 64.12.29.100:5190 ESTABLISHED

1433/gaim

tcp 0 0 localhost.localdo:44954 localhost.localdoma:ipp TIME_WAIT

-

tcp 0 0 localhost.localdo:44955 localhost.localdoma:ipp TIME_WAIT

-

tcp 0 0 localhost.localdo:44897 localhost.localdoma:ipp TIME_WAIT

-

tcp 0 0 localhost.localdo:44902 localhost.localdoma:ipp TIME_WAIT

-

tcp 0 0 localhost.localdo:44903 localhost.localdoma:ipp TIME_WAIT

-

tcp 0 0 localhost.localdo:44900 localhost.localdoma:ipp TIME_WAIT

-

tcp 0 0 localhost.localdo:44901 localhost.localdoma:ipp TIME_WAIT

-

tcp 0 0 10.100.100.101:44888 cs9336-61.austin.r op3 TIME_WAIT

-

tcp 0 0 localhost.localdo:32772 localhost.localdoma:ipp ESTABLISHED

1246/gnome-cups-man

tcp 1 0 localhost.localdo:32774 localhost.localdoma:ipp CLOSE_WAIT

1246/gnome-cups-man

tcp 0 0 10.100.100.101:33019 cs46.msg.sc5.yahoo:5050 ESTABLISHED

1433/gaim

tcp 0 0 sig-9-65-39-140.m:35061 d03nm119.boulder.i:1352 CLOSE_WAIT

1720/wineserver

tcp 0 0 10.100.100.101:33021 64.12.30.4:5190 ES

Published At
Categories with 服务器类
Tagged with
comments powered by Disqus