级别:入门 |
Chris Walden (cmwalden-at-us.ibm.com)
电子商务架构师,IBM Developer Relations
2004 年 1 月
IBM 电子商务架构师 Chris Walden 将通过他在 developerWorks 上发表的九篇系列文章来指导您如何在 Linux 环境中运用您的 Windows 操作技巧。本部分将探讨网络,这是 Linux 做得最好的方面之一。
在如今这个时代,运行一台没有连接到网络的计算机几乎是难以想像的。电子邮件、Web 浏览和文件共享像打印和查看屏幕上的信息一样,都是用户所期待的。
幸运的是,Liunx 从一开始就是为网络而开发的。事实上,网络是 Linux 做得最好的事情之一。Linux 支持诸如TCP/IP 和 SMB(NetBIOS)等流行的网络协议。Linux 还具有用于监控和过滤网络流量的成熟工具。诸如 FTP、Windows 文件和打印共享以及 Web 托管等服务也是可用的。Linux 甚至还提供了用于集中目录服务、虚拟专用网(VPN)和远程过程调用的工具。
网络硬件
Linux 能够使用具有驱动程序的任何网络硬件。Linux 驱动程序单独地或以可加载模块的形式编译到内核中。Linux 内核默认支持许多流行的网卡。在选择网络硬件时,最好总是使用“硬件兼容性列表”(参见 参考资料 中的链接)中列出的设备。另外还要使用最新的 Linux 发行版本。
一般情况下,如果使用的是兼容的网络硬件,安装系统时网卡会自动得到识别。可以使用 ifconfig
命令来检查系统上的网络硬件。默认情况下,ifconfig
显示活动的网络设备。给这个命令添加一个 -a
开关就能看到所有设备。
|
在上面的清单中,系统中只有一块网卡,标识为 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
Webmin 在 Networking 下的 Network Configuration 中提供一组优秀的网络配置工具。您可以配置单独的接口并调整它们的当前设置或已保存的设置。还可以配置路由和网关、DNS 客户端设置以及本地主机地址。在编辑好所有的配置之后,可以单击 Apply Configuration 来应用它们,不必重新启动系统。
Localhost
|
不同发行版本中的工具
每个发行版本都有它自己用于配置网络设置的工具。 应该参考特定发行版本的文档来确定要使用的工具。每种工具提供与 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 -p | 显示每个套接字所属的程序的 PID 或名称 |
netstat -a | 同时显示侦听和非侦听套接字 |
netstat -t | 显示 TCP 连接 |
netstat -u | 显示 UDP 连接 |
netstat -e | 显示附加信息;使用这个选项两次,可以获得最详细的信息 |
下面是 netstat -tp
的一个例子:
|
我最常使用 netstat
命令来查看处于 LISTEN 或 ESTABLISHED 状态的连接。LISTEN 是系统上的服务,它接受来自其他机器的连接。ESTABLISHED 是您的机器和其他机器之间的活动连接。请确保您知道正在运行的所有 LISTEN 程序。如果看到某些无法识别的内容,它可能就是一个安全顾虑。netstat
具有许多选项。请在命令行键入 info netstat
来获得该命令的细节。
routeroute
控制台命令允许您显示和操作 IP 路由表。
|
不带命令行开关运行 route
将显示当前路由表。可以使用 route
对该路由表进行非常精细的修改。
route add default gw 10.10.10.1
上面的命令添加一个默认的路由(它将在没有其他路由匹配的情况下被使用)。使用这个路由的所有分组都将途经网关“10.10.10.1”。实际将用于该路由的设备取决于我们如何到达“10.10.10.1”——到“10.10.10.1”的静态路由必须预先设置好。
route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
上面的命令添加一个通过“eth0”到网络 192.56.76.x 的路由。这里的 C 类网络掩码修饰符实际上并不是必需的,因为 192.* 就是一个 C 类 IP 地址。这里的单词“dev”也可以省略。
路由选择是一个非常深奥的主题。关于 route
选项的完整信息可通过 info route
命令获得。
结束语
Linux 从一开始就是为网络而设计的。它内置了以前仅在高端企业产品中才可见到的成熟功能。然而,尽管拥有所有这些强大的能力,Linux 网络的配置却远没有 Windows 网络的配置复杂。诸如 Webmin、redhat-config-network 和 YAST这样的工具允许执行图形化的配置。诸如 ifconfig
和 route
这样的工具允许通过控制台或脚本查看和修改网络参数。诸如 netstat
这样的工具允许查看单独的网络连接,并显示它们与运行着的进程的关系。
- 阅读 Windows 到 Linux 之旅系列文章 的其他部分(developerWorks, 2003 年 11 月)。
- 在线的 Linux Network Administrator's Guide, Second Edition 是在 Liunx 环境中进行网络管理的通用参考指南。初学者和有经验的用户,都能够从中找到关于几乎每个重要管理活动的信息,这些活动是管理 Linux 网络配置所必需的。
- Linux Ethernet HOWTO 包含了关于哪些以太网设备可用于 Linux,以及如何设置它们的信息(重点放在硬件和以太网卡的低级驱动程序方面)。
- “Linux 文档计划”也有一个 分类 HOWTO 列表,帮助您容易地查找相关文档。
- “硬件控制列表”包括 Red Hat 硬件搜索页面、SuSE Linux 组件数据库 和 UnitedLinux 认证和兼容的硬件。
- 在 IBM developerWorks 教程“LPI certification 102 exam prep, Part 3: Networking”中,您会找到关于网络基础的更多信息。
- IBM developerWorks 教程“LPI certification 102 exam prep, Part 4: Secure shell and file sharing”介绍了文件共享和安全。
- 系统安全是一个广博而复杂的主题,但是在互连的世界中,它影响着每个人。幸运的是,现在开始着手加强系统安全还不算太早也不算太迟。文档 Adding Security to Common Linux Distributions 和 Strategies for Keeping a Secure Server(这是前面提到过的 Linux Administration Made Easy guide 一书的第 12 章 )将帮助您加强系统安全。
- IBM developerWorks 文章“Linux 硬件稳定性指南”展示了如何诊断和修复许多潜在的硬件问题。
- 在 IBM developerWorks 文章“在 Linux(或异构)网络上共享计算机”中学习更多关于网络的知识。
- 遵循 IBM developerWorks 文章“在 Linux 上构建网络路由器”的指导来模拟 Cisco 路由器的行为。
- 采用更好的安全性 —— IBM developerWorks 文章“使用 ssh 进行安全的连接”展示了如何实现这一点。
- 对那些从 Windows 转向 Linux 的读者来说,另一个重要的参考资料是 Linux 用户技术 FAQ。
- 要开始在 Linux 上使用 IBM 的软件产品,为您的 Linux 应用开发加油提速 将为您提供最好的参考资料。您可以找到关于 DB2、Lotus Domino、WebSphere Application Server、WebSphere Studio 等多种应用软件的安装提示和参考资料。您还可以登录获得免费的 Linux Software Evaluation Kit,里面有试用软件和培训资料。
- 在 developerWorks Linux 专区可以找到更多 为 Linux 开发者准备的参考资料。
关于作者 Chris Walden 是位于德克萨斯州奥斯汀的 IBM Developer Relations Technical Consulting(也称为 dragonslayers)的一名电子商务架构师,该公司为 IBM 商业伙伴提供教育、实现和咨询。他致力于 Linux 相关工作,一有机会就向身边的人宣传 Linux 的种种好处。除了完成他的架构师的职责之外,他还精通 Linux 基础设施服务器的各个领域,包括混合平台用户环境下的文件、打印以及其他应用服务等。Chris 有 10 年的计算机行业经验,从现场支持到 Web 应用开发和顾问,各个领域他都曾涉足。您可以通过 cmwalden-at-us.ibm.com 与 Chris 联系。 |