第 20 章 网 络 管 理

Linux 系 统 通 过 TCP / IP 协 议 与 网 络 连 接 。 这 与 Internet 所 使 用 的 协 议 是相 同 的 , 与 许 多 局 域 网 使 用 的 协 议 也 是 相 同 的 。 在 第 10 章 中 已 经 介 绍 了 TCP

/ IP 协 议 , 它 是 一 个 健 壮 的 协 议 集 合 , 用 于 连 接 不 同 操 作 系 统 及 硬 件 的 系 统 , 这 个 协 议 集 合 始 创 于 七 十 年 代 , 它 是 DARPA 项 目 的 一 个 特 殊 部 分 , 用 于 各 大写 和 研 究 中 心 之 间 进 行 通 信 。 这 个 协 议 最 早 是 在 Unix 系 统 上 开 发 的 , 大 部 分 工作 是 在 University of California,Berkeley P 完 成 的 。 Linux 作 为 Unix 的 一 个 版本 , 从 这 些 早 期 的 工 作 中 得 到 了 帮 助 。

TCP / IP 协 议 实 际 上 是 由 许 多 协 议 组 成 的 , 其 中 两 个 协 议 用 于 完 成 特 定 的任 务 。 两 个 最 基 本 的 协 议 是 传 输 控 制 协 议 (TCP ), 它 处 理 发 送 和 接 收 数 据 , 以及 网 际 网 协 议 (IP ), 它 处 理 传 输 数 据 。 其 它 的 协 议 提 供 许 多 网 络 服 务 。 域 名 服 务(DNS )提 供 了 地 址 解 析 功 能 。 文 件 传 输 协 议 (ftp) 提 供 了 文 件 传 输 的 功 能 。 网 络 文件 系 统 (NFS )提 供 了 访 问 远 程 文 件 系 统 的 功 能 。 表 20-1 中 列 出 了 不 同 的 TCP / IP 协 议 。

管 理 和 配 置 Linux 系 统 上 的 TCP / IP 网 络 并 不 是 非 常 复 杂 的 工 作 。 系 统 上存 在 着 许 多 配 置 文 件 , 通 过 这 些 配 置 文 件 来 设 置 和 维 护 网 络 。 表 20-2 中 列 出 了

所 有 这 些 配 置 文 件 。 这 些 文 件 的 大 部 分 可 以 通 过 像 netcfg 那 样 的 工 具 来 管 理 。也 可 以 使 用 更 专 业 化 的 程 序 , 例 如 : netstat 命 令 、 ifconfig 命令,和 route 命 令 。表 20-3 中 列 出 了 常 用 的 网 络 配 置 命 令 。

如 果 在 安 装 Linux 系 统 的 时 候 选 择 了 网 络 功 能 并 且 没 有 设 置 错 , 则 应 该 能够 正 常 工 作 。 如 果 你 的 Linux 系 统 已 经 连 接 到 了 一 个 网 络 , 比 如 以 太 网 , 那 么你 不 需 要 读 本 章 的 内 容 , 除 非 你 想 理 解 Linux 是 如 何 设 置 网 络 连 接 的 。 如 果 你通 过 调 制 解 调 器 连 接 到 Internet 服 务 供 应 商 (ISP )那 里 ,那 么 本 章 的 SLIP 和 PPP 部 分 是 很 有 用 处 的 , 它 会 告 诉 你 如 何 在 Linux 系 统 上 与 ISP 进 行 连 接 。

TCP / IP 网 络 地 址

在 第 10 章 已 经 讲 过 , TCP / IP 地 址 被 分 成 由 点 号 分 隔 的 四 个 部 分 , 这 被 称为 IP 地 址 。 这 个 地 址 的 一 部 分 是 用 于 网 络 地 址 , 另 一 个 分 用 于 标 识 某 一 个 网 络内 的 一 个 特 定 的 主 机 。 通 常 , IP 地 址 的 网 络 部 分 占 用 前 三 段 , 主 机 部 分 占 用 第四 段 。 这 两 个 部 分 加 起 来 形 成 唯 一 的 地 址 , 用 它 来 标 识 TCP / IP 网 络 上 的 一 台计 算 机 。 例 如 , 在 地 址 199.35.209.72 中 , 网 络 部 分 是 199.35.209 , 而 主 机 部分 是 72 。 该 主 机 是 这 个 网 络 的 一 部 分 , 这 个 网 络 有 它 自 己 的 地 址 : 1995.35.209.0 。

主 机 的 IP 地 址 仅 是 所 需 的 用 于 连 接 网 络 的 一 种 地 址 , 此 外 , 还 需 要 网 络 地址 , 广 播 地 址 , 网 关 地 址 ( 如 果 有 网 关 的 话 ), 域 名 服 务 器 地 址 , 以 及 子 网 掩 码 。

在 安 装 Liunx 系 统 的 时 候 , 都 要 求 输 入 所 有 这 些 信 息 , 如 果 你 输 入 了 相 应 的 值 , 就 会 自 动 地 存 放 到 相 应 的 配 置 文 件 中 , 此 外 , 通 过 netcfg 工 具 设 置 的 值 也 会 自动 地 被 放 入 相 应 的 配 置 文 件 ( 表 2 0 -2 中 列 出 了 这 些 网 络 配 置 文 件 )。

网 络 地 址

通 过 主 机 地 址 可 以 计 算 出 它 的 相 应 的 网 络 地 址 , 它 是 主 机 地 址 的 网 络 部 分 , 即 将 主 机 部 分 设 置 为 0 。 因 此 , 主 机 地 址 为 199.35.209.72 的 网 络 地 址 为199.35.209.0 。

系 统 是 通 过 子 网 掩 码 来 从 主 机 地 址 中 获 取 网 络 地 址 的 。 在 位 一 级 上 将 子 网掩 码 和 主 机 地 址 进 行 与 操 作 并 将 主 机 部 分 设 为 0 , 这 就 得 到 了 主 机 地 址 对 应 的网 络 地 址 。

广 播 地 址

广 播 地 址 允 许 一 个 系 统 一 次 地 向 网 络 中 所 有 系 统 发 送 消 息 。 当 网 络 地 址 一样 , 通 过 主 机 地 址 可 以 计 算 出 对 应 的 广 播 地 址 , 它 就 是 将 主 机 地 址 中 的 主 机 部分 设 为 255 。 因 此 , 主 机 地 址 为 199.35.209.72 相 应 的 广 播 地 址 是199.35.209.255 。

网 关 地 址

有 些 网 络 指 定 一 台 计 算 机 作 为 与 其 它 网 络 相 联 的 网 关 。 与 其 它 网 络 相 联 的所 有 数 据 的 发 送 和 接 收 都 会 经 过 这 台 网 关 计 算 机 。 如 果 你 所 使 用 的 网 络 是 这 种类 型 , 那 么 你 需 要 提 供 网 关 地 址 。 如 果 你 的 网 络 上 没 有 网 关 , 或 者 你 使 用 的 是独 立 的 系 统 , 或 通 过 拨 号 与 ISP 相 连 , 那 么 就 不 需 要 网 关 地 址 。

通 常 , 网 关 地 址 与 普 通 主 机 地 址 的 网 络 地 址 部 分 是 相 同 的 , 只 是 主 机 部 分的 值 为 1 。 主 机 地 址 为 199.35.209.72 对 应 的 网 关 地 址 可 能 是 199.35.209.1 。但 这 仅 仅 是 一 种 约 定 , 要 想 确 认 你 的 网 关 地 址 , 必 须 询 问 网 络 管 理 员 。

域 名 服 务 器 地 址

许 多 网 络 , 包 括 Interne t, 都 有 域 名 服 务 器 来 把 主 机 名 方 式 的 地 址 转 换 成 IP 地 址 。 你 必 须 知 道 你 的 网 络 所 使 用 的 域 名 服 务 器 的 IP 地 址 。 从 系 统 管 理 员 那 里可 以 得 到 这 个 地 址 ( 经 常 有 多 个 地 址 )。 即 使 你 使 用 的 是 ISP , 也 必 须 知 道 ISP 为 Internet 执 行 的 域 名 服 务 器 的 IP 地 址 。

子 网 掩 码

子 网 掩 码 用 于 获 取 网 络 地 址 , 子 网 掩 码 通 过 主 机 地 址 作 为 模 板 而 获 取 。 你的 主 机 地 址 的 网 络 部 分 都 设 置 成 255 , 而 主 机 部 分 设 置 成 0 , 那 么 这 就 是 你 的

子 网 掩 码 。 因 此 , 主 机 地 址 是 199.35.209.72 对 应 的 子 网 掩 码 为 255.255.255 。网 络 部 分 , 199.35.209 设 置 成 255.255.255 , 而 主 机 部 分 , 72 , 被 设 置 为 0 。之 后 , 系 统 会 根 据 子 网 掩 码 的 值 来 从 主 机 地 址 计 算 出 网 络 地 址 。

TCP / IP 配 置 文 件

在 / etc 目 录 下 有 一 系 列 文 件 , 在 下 面 已 经 列 出 , 用 于 配 置 和 管 理 TCP / IP 网 络 ,这 些 网 络 包 括 :主 机 名 和 域 名 ,IP 地 址 ,及 接 口 选 项 。如 果 你 在 安 装 Linux 系 统 时 已 经 配 置 了 网 络 , 就 可 以 从 这 些 文 件 中 得 到 上 述 的 信 息 。 超 级 用 户 桌 面的 netcfg 工 具 和 命 令 行 上 的 netconfig 程 序 都 会 自 动 地 设 置 这 些 文 件 。

文 件 功能

/ etc / hosts 将 主 机 名 与 IP 地 址 联 系 起 来

/ etc / networks 将 域 名 与 网 络 地 址 联 系 起 来

/ etc / rc.d / init.d / inet 包 含 系 统 启 动 时 配 置 网 络 的 命 令

/ etc / HOSTNAME 包 含 系 统 的 主 机 名

/ etc / host.conf 解 析 选 项

/ etc / resolv.conf 包 含 一 系 列 域 名 服 务 器

20.2.1 标 识 主 机 名 : / etc / hosts

在 TCP / IP 网 络 中 , 主 机 是 通 过 IP 地 址 来 寻 址 。 由 于 IP 地 址 难 于 记 忆 , 通 常 使 用 的 是 域 名 地 址 。 针 对 每 一 个 IP 地 址 , 都 有 一 个 域 名 与 其 相 对 应 。 当 你通 过 域 名 来 访 问 某 台 主 机 , 系 统 会 将 域 名 转 换 成 对 应 的 IP 地 址 。 这 个 IP 地 址才 能 被 用 来 定 位 某 台 主 机 。

最 开 始 的 时 候 , 每 台 主 机 都 要 维 护 域 名 和 IP 地 址 的 对 应 关 系 , 这 样 对 应 关系 至 今 仍 然 存 在 于 / etc / hosts 文 件 中 。 当 你 使 用 域 名 的 时 候 , 系 统 会 在 hosts 文 件 中 查 寻 对 应 的 IP 地 址 。系 统 管 理 员 有 责 任 来 维 护 / etc / hosts 文 件 的 内 容 。随 着 Internet 的 迅 猛 发 展 , 以 及 大 量 庞 大 网 络 的 产 生 , 就 产 生 了 域 名 服 务 器 , 它 的 作 用 与 / etc / hosts 一 样 , 也 是 将 域 名 地 址 转 变 成 对 应 的 IP 地 址 。 但 是 ,

/ etc / hosts 文 件 仍 旧 存 在 于 系 统 中 , 并 且 通 常 用 于 域 名 的 解 析 。 在 向 域 名 服务 器 发 送 服 务 请 求 之 前 ,系 统 总 要 检 查 hosts 文 件 来 将 域 名 地 址 转 换 成 IP 地 址 。

hosts 文 件 的 格 式 是 : IP 地 址 , 后 面 是 对 应 的 域 名 , 中 间 用 空 格 分 隔 , 后 面还 可 以 为 主 机 名 加 上 别 名 。 在 每 一 项 记 录 的 最 后 , 可 以 加 入 注 释 内 容 , 注 释 内容 是 以 # 符 合 开 头 的 一 段 内 容 。 在 hosts 文 件 中 总 可 以 找 到 localhost 的 一 项 , 它 对 应 的 IP 地 址 为 127.0.0.1 。 Localhost 是 用 于 标 识 本 地 主 机 的 特 殊 地 址 。 地址 127.0.0.1 是 每 个 系 统 用 于 该 目 的 而 保 留 的 一 个 地 址 , 它 标 识 被 称 为 回 送 的设 备 。

/ etc / hosts 127.0.0.1turtle.trek.comlocalhost

199.35.209.72turtle.trek.com 204.32.168.56pangol.train.com 202.211.234.1rose.berkeley.edu

网 络 名 称 : / etc / networks

/ ne t/ networks 文 件 中 包 含 的 是 域 名 与 网 络 域 名 的 对 应 关 系 , 而 不 是 某 个具 体 的 主 机 名 。 随 着 网 络 类 型 的 不 同 , 可 能 使 用 IP 地 址 中 的 一 个 , 两 个 或 三 个数 字 部 分 。 此 外 , 还 要 定 义 localhost 的 网 络 地 址 127.0.0 。

该 文 件 中 , 网 络 域 名 后 面 接 的 是 IP 地 址 。 要 记 起 IP 地 址 是 由 网 络 地 址 部分 和 主 机 地 址 部 分 共 同 组 成 的 。 网 络 地 址 部 分 会 在 networks 文 件 中 找 到 。

/ etc / networks loopback 127.0.0.0

trek.com 199.35.209.0

网 络 初 始 化 文 件 : / etc / rc.d / in it.d / inet

/ etc / rc.d / init.d / inet 文 件 中 包 含 有 配 置 网 络 的 启 动 命 令 。 这 个 文 件 的大 部 分 内 容 都 在 你 使 用 netcfg 命 令 或 在 安 装 Linux 系 统 时 自 动 建 好 的 , 例 如 ,

可 以 在 这 个 文 件 中 找 到 ifconfig 和 route 命 令 。 此 外 , 还 可 以 找 到 主 机 名 , 网 络地 址 , 以 及 其 它 必 备 的 地 址 , 除 非 很 熟 悉 Linux 的 shell 编 程 , 否 则 不 要 直 接 修改 这 个 文 件 的 内 容 。 如 果 你 使 用 的 是 其 它 发 行 版 本 的 Linux 系 统 , 这 个 初 始 化文 件 可 能 是 / etc / rc.d / rc.inet1 或 / etc / rc.inet1 。

/ etc / HOSTNAME

/ etc / HOSTNAME 文 件 中 包 含 了 系 统 的 主 机 名 称 。 要 改 变 主 机 名 , 可 以修 改 这 个 文 件 的 内 容 。netcfg 工 具 允 许 你 更 改 主 机 名 ,并 将 新 的 主 机 名 放 入 / etc

/ HOSTNAME 文 件 中 。 你 可 以 使 用 命 令 hostname 来 显 示 系 统 的 主 机 名 。

$ hostname turtle.trek.com

网 络 接 口 和 路 由 : ifconfig 和 route

与 网 络 的 连 接 要 通 过 一 个 特 殊 的 硬 件 设 备 接 口 , 例 如 以 太 网 网 卡 或 调 制 解调 器 。 通 过 这 个 接 口 的 数 据 会 传 送 给 你 所 连 接 的 网 络 。 ifconfig 命 令 用 于 配 置 网络 接 口 , 而 route 命 令 会 为 这 个 接 配 置 路 由 信 息 。 netcfg 工 具 可 以 完 成 ifconfig 和 route 所 能 完 成 的 工 作 。 如 果 你 使 用 netcfg 工 具 , 就 不 再 需 要 使 用 ifconfig 命 令 和 route 命 令 。 如 果 你 使 用 的 是 其 它 版 本 的 Linux 系 统 , 那 么 netconfig 工

具 与 netcfg 的 作 用 是 一 样 的 。 但 是 , 你 还 是 可 以 直 接 使 用 ifconfig 命 令 和 route

命 令 来 直 接 配 置 网 络 。

每 次 系 统 启 动 的 时 候 , 必 须 建 立 起 网 络 接 口 以 及 它 的 路 由 信 息 , 你 可 以 将ifconfig 和 route 命 令 放 入 / etc / rc.d / init.d / inet 文 件 中 , 这 种 会 在 系 统 启 动时 自 动 配 置 , 因 为 / etc / rc.d / init.d / inet 文 件 是 在 系 统 启 动 时 自 动 执 行 的 。如 果 你 使 用 netcfg 工 具 ,它 会 自 动 地 把 ifconfig 命 令 和 route 命 令 放 入 / etc / rc.d

/ init.d / inet 文 件 中 。

Netcfg 和 Lisa

创 建 网 络 接 口 的 最 简 单 的 方 法 是 使 用 下 面 的 配 置 工 具 : Lisa 或 者 netcfg 。要 使 用 Lisa 工 具 , 只 需 在 命 令 提 示 符 处 输 入 lisa , 在 这 个 工 具 中 可 以 配 置 域 名服 务 器 地 址 , 定 义 或 修 改 主 机 名 , 等 等 。

也 可 以 使 用 超 级 用 户 桌 面 上 的 netcfg 工 具 来 配 置 网 络 接 口 。 只 要 以 root 用户 身 份 登 录 到 系 统 , 并 执 行 startx 命 令 来 启 动 桌 面 。 你 会 找 到 一 个 称 为 netcfg 的 图 标 , 双 击 这 个 图 标 , 它 会 弹 出 一 个 配 置 网 络 接 口 的 窗 口 。 在 图 20-1 中 已 经显 示 出 , 通 过 netcfg 工 具 , 可 以 增 加 或 修 改 网 络 的 配 置 信 息 。

在 netcfg 界 面 中 显 示 了 网 络 接 口 , 域 名 服 务 器 和 主 机 信 息 , 每 一 项 都 有 其独 立 的 区 域 , 并 有 其 独 立 的 命 令 按 钮 。 接 口 区 域 内 列 出 当 前 系 统 上 所 有 的 接 口 。可 以 通 过 这 个 区 域 下 面 的 按 钮 来 增 加 、 配 置 、 激 活 或 取 消 某 个 接 口 。 如 果 选 择增 加 接 口 , 会 弹 出 另 外 一 个 窗 口 , 列 出 所 需 要 的 信 息 , 在 此 处 , 你 可 以 输 入 该

接 口 的 名 称 和 IP 地 址 。 关 闭 这 个 窗 口 后 , 会 在 接 口 区 域 中 看 到 刚 才 新 增 加 的 接口 。

域 名 服 务 器 区 域 弹 出 当 前 所 有 的 域 名 服 务 器 地 址 。 你 可 以 通 过 按 钮 来 增 加或 删 除 某 个 域 名 服 务 器 。 你 所 做 的 修 改 会 自 动 地 被 放 入 文 件 / etc / resolv.conf 中 。 窗 口 的 底 部 列 出 的 是 你 可 以 通 过 主 机 连 接 的 其 它 主 机 的 信 息 。 对 这 些 信 息的 改 动 会 自 动 存 放 到 / etc / hosts 文 件 中 。

此 外 , 你 还 可 以 更 改 主 机 名 。 在 netcfg 菜 单 中 选 择 hostname 项 , 会 提 示你 输 入 新 的 主 机 名 。 你 所 做 的 修 改 会 自 动 地 放 到 / etc / hostname 文 件 中 , 并替 换 原 来 的 内 容 。

第 20 章 网 络 管 理 - 图1

图 20-1netcfg 工具

在 做 完 修 改 之 后 , 单 击 窗 口 底 部 的 Save Configuration Changes 按 钮 , 以

使 这 些 改 变 生 效 。 这 些 改 变 会 自 动 被 加 入 到 相 应 的 网 络 配 置 文 件 中 。

ifconfig 命 令

ifconfig 命 令 后 面 接 的 参 数 是 接 口 名 称 , IP 地 址 的 及 其 它 的 选 项 。 ifconfig 命 令 之 后 以 该 IP 地 址 定 义 这 个 网 络 接 口 的 地 址 , 系 统 就 会 知 道 对 应 的 接 口 以 及这 个 接 口 的 IP 地 址 。 此 外 , 你 还 可 以 指 定 这 个 IP 地 址 是 一 个 主 机 地 址 还 是 一个 网 络 地 址 。 ifconfig 命 令 的 语 法 是 :

# ifconfig interface -host_net_flag address options

其 中 host_net_flag 可 以 是 -net 或 hos t, 来 指 定 IP 地 址 类 型 : 是 主 机 地 址还 是 网 络 地 址 。 缺 省 的 情 况 使 用 -host 。 ifconfig 命 令 可 以 带 有 几 个 选 项 , 它 设置 接 口 的 不 同 特 性 , 例 如 最 大 传 输 单 元 (mtu )或 广 播 地 址 等 等 。 up 和 down 选 项用 于 激 活 或 取 消 这 个 接 口 。 在 下 面 的 例 子 中 , ifconfig 命 令 用 于 配 置 一 个 以 太 网接 口 。

# ifconfig eth0 204.32.168.56

对 这 种 简 单 的 配 置 , ifconfig 会 自 动 地 创 建 一 个 标 准 的 广 播 地 址 和 子 网 掩 码 。标 准 的 广 播 地 址 是 网 络 地 址 加 入 值 为 255 的 主 机 地 址 。 标 准 的 子 网 掩 码 是255.255.255.0 。但 是 ,如 果 你 连 接 的 网 络 是 一 个 特 殊 的 网 ,则 需 要 在 使 用 ifconfig 命 令 时 指 定 这 些 值 。 指 定 广 播 地 址 的 选 项 是 broadcast; 指 定 子 网 掩 码 的 选 项 是netmask 。表 20-4 中 列 出 了 ifconfig 命 令 的 所 有 选 项 , 在 下 面 的 例 子 中 , ifconfig 命 令 包 含 了 子 网 掩 码 和 广 播 地 址 。

# ifconfig eth0 204.32.168.56 broadcast 204.128.244.127

netmask 255.255.255.0

点 对 点 接 口 , 例 如 并 行 IP(PLIP ), 串 行 线 IP(SLIP )以 及 点 对 点 协 议 (PPP ), 需 要 指 定 pointtopoint 选 项 。 PLIP 接 口 名 称 的 plip 开 头 , 后 接 一 个 数 字 ; 例 如plip0 是 第 一 个 PLIP 接 口 。 SLIP 接 口 使 用 slip0 , PPP 接 口 从 ppp0 开 始 。 点对 点 接 口 通 常 用 于 连 接 两 台 主 机 , 例 如 通 过 调 制 解 调 器 连 接 的 两 台 计 算 机 , 在指 定 pointtopoint 选 项 的 时 候 , 需 要 指 定 主 机 的 IP 地 址 。 在 本 章 的 后 面 , 你 将学 习 如 何 通 过 SLIP 和 PPP 接 口 拨 号 并 与 ISP 进 行 连 接 。

在 下 面 的 例 子 中 ,PLIP 接 口 被 配 置 为 连 接 IP 地 址 为 199.35.209.72 的 主 机 , 另 一 台 主 机 的 IP 地 址 为 204.166.254.14 。

# ifconfig plip0 199.35.209.72 pointopoint 204.166.254.14

你 还 可 以 通 过 ifconfig 命 令 来 配 置 回 送 设 备 。 回 送 设 备 的 名 称 为 lo , 它 的 IP

地 址 是 固 定 的 127.0.0.1 。 下 面 是 一 个 配 置 回 送 接 口 的 例 子 :

# ifconfig lo 127.0.0.1

ifconfig 命 令 对 显 示 接 口 的 状 态 也 是 很 有 帮 助 的 。 如 果 输 入 ifconfig 命 令 , 后 面 接 对 应 接 口 名 称 , 会 显 示 这 个 接 口 的 有 关 信 息 。

要 检 查 是 否 回 送 接 口 已 被 配 置 , 只 需 在 命 令 ifconfig 后 面 接 回 送 设 备 名 称 ,

lo 。

# ifconfig lo Link encap:Local Loopback

inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU:2000 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 TX packets:12 errors:0 dropped:0 overruns:0

路 由

数 据 包 要 到 达 目 标 地 址 要 经 过 一 定 的 路 由 。 在 大 型 的 网 络 中 , 数 据 包 要 到达 目 标 地 址 主 机 中 间 要 经 过 许 多 的 计 算 机 。 路 由 决 定 了 这 个 过 程 的 开 始 以 及 要到 达 目 标 主 机 中 间 哪 个 计 算 机 要 进 行 数 据 包 的 转 发 , 在 小 型 的 网 络 中 , 路 由 信息 可 能 是 静 态 的 ; 也 就 是 说 , 从 一 个 系 统 到 另 一 个 系 统 的 路 由 是 固 定 的 。 但 是在 大 型 的 网 络 以 及 Internet 上 , 路 由 信 息 是 动 态 的 。 你 的 系 统 知 道 第 一 次 把 数据 包 发 送 给 哪 台 计 算 机 , 而 那 台 计 算 机 从 那 里 接 受 该 数 据 包 , 之 后 再 发 送 给 下一 台 主 机 , 对 动 态 路 由 而 言 , 你 的 系 统 不 需 要 知 道 很 多 。 而 静 态 路 由 可 能 会 非常 复 杂 , 因 为 你 必 须 清 楚 所 有 的 网 络 连 接 。

你 的 路 由 信 息 会 列 在 路 由 表 文 件 / proc / ne t/ route 中 , 要 显 示 路 由 表 内容 , 直 接 在 命 令 行 上 输 入 没 有 任 何 选 项 的 route 命 令 。

# route

Kernel routing table DestinationGatewayGenmaskFlagsMetricRefUseIface loopback*255.0.0.0 U 0 0 12 lo

pangol.train.com*255.255.255.0 U 0 0 0 eth0

路 由 表 中 的 每 一 项 都 是 由 几 个 域 构 成 的 , 提 供 了 例 如 路 由 目 标 和 接 口 类 型

等 信 息 。 在 下 面 的 表 中 列 出 了 各 个 域 的 说 明 。域 说明

Destination 路 由 目 标 的 IP 地 址

Gateway 路 由 使 用 的 网 关 的 IP 地 址 或 主 机 名 ; * 表 示 没 有 网 关

Genmask 路 由 使 用 的 子 网 掩 码

Flags 路 由 的 类 型 : U=up,H=host,G=gateway,D=dynamic,M=modified Metric 路 由 长 度

Ref 取 决 这 个 路 由 的 路 由 数 目W indow AX.25 网 络 的 TCP 窗 口Use 使 用 的 次 数

Iface 该 路 由 使 用 的 接 口 类 型

在 路 由 表 中 至 少 应 该 有 回 送 接 口 的 一 项 记 录 , 如 果 没 有 , 则 必 须 用 route 命令 加 上 。 在 使 用 某 个 接 口 之 前 , 必 须 将 该 接 口 的 IP 地 址 加 到 路 由 表 中 。 加 入 地址 要 使 用 带 有 add 选 项 的 route 命 令 。

route add address

在 下 面 的 例 子 中 , 将 回 送 接 口 的 IP 地 址 加 入 路 由 表 。

route add 127.0.0.1

add 参 数 有 几 个 选 项 , 在 route 命 令 的 联 机 手 册 中 有 详 细 的 说 明 。 如 果 你 在增 加 一 个 特 定 的 静 态 路 由 , 需 要 使 用 这 些 选 项 来 指 定 一 些 特 性 , 例 如 子 网 掩 码 , 网 关 , 接 口 设 备 或 目 标 地 址 。 但 是 如 果 接 口 已 经 通 过 ifconfig 命 令 启 动 , 那 么ifconfig 命 令 能 够 产 生 大 部 分 信 息 。 例 如 , 要 为 一 个 已 经 由 ifconfig 命 令 设 置 过

的 以 太 网 连 接 配 置 路 由 , 只 需 输 入 -net 选 项 和 目 标 的 IP 地 址 。 ifconfig 命 令 通过 IP 地 址 来 定 位 接 口 , 并 用 这 个 信 息 来 建 立 路 由 。 下 面 的 例 子 是 一 个 以 太 网 接口 的 路 由 。

# route add -net 204.32.168.0

如 果 你 的 系 统 连 接 到 网 络 , 应 该 至 少 有 一 项 缺 省 路 由 在 路 由 表 中 。 当 其 它的 路 由 无 法 将 数 据 包 发 送 给 目 标 地 址 时 , 就 会 使 用 这 个 缺 省 路 由 。 缺 省 路 由 的关 键 字 是 default 。

你 也 可 以 将 路 由 表 中 的 某 项 路 由 信 息 删 除 , 通 过 route 命 令 带 有 del 参 数 以及 该 路 由 的 IP 地 址 , 例 如 :

# route del -net 204.32.168.0

监 视 网 络 : ping 和 netstat

通 过 命 令 ping , 你 可 以 检 查 你 的 主 机 是 否 可 以 与 网 络 上 其 它 主 机 进 行 连 接 。ping 命 令 会 向 目 标 主 机 发 送 一 个 请 求 , 要 等 待 响 应 。 之 后 目 标 主 机 发 回 响 应 , 并 显 示 到 屏 幕 上 。 ping 命 令 会 不 断 地 发 送 请 求 , 直 到 你 用 停 止 命 令 Ctrl-c 来 停止 它 。 如 果 ping 命 令 不 能 访 问 一 台 主 机 , 会 显 示 一 条 信 息 指 明 该 主 机 是 不 可 到达 的 。 如 果 ping 命 令 失 败 , 则 说 明 你 的 网 络 工 作 得 不 正 常 。 可 能 是 由 于 某 个 网络 接 口 的 问 题 , 配 置 有 问 题 , 或 者 是 由 于 物 理 连 接 的 问 题 。 使 用 ping 命 令 的 方法 是 输 入 ping, 后 面 接 的 是 目 标 主 机 名 称 。

$ ping pang01.train.com

netstat 程 序 提 供 了 有 关 系 统 网 络 的 及 时 信 息 , 以 及 网 络 统 计 数 据 和 路 由 信息 。 netstat 命 令 有 几 个 选 项 , 可 以 得 到 不 同 的 信 息 ( 见 表 20-5 )。

# netstat

Active Internet connections

ProtoRecv-QSend-QLocal AddressForeign Address(State)User tcp00turtle.trek.com:01pangol.train.com.:ftpESTABLISHEDdylan Active UNIX domain sockets

ProtoRefCntFlagsTypeStatePath

unix1 [ ACC ] SOCK_STREAMLISTENING / de v/ printer unix2 [ ] SOCK_STREAMCONNECTED / dev / log

unix1 [ ACC ] SOCK_STREAMLISTENING / de v/ nwapi unix2 [ ] SOCK_STREAMCONNECTED / dev / log

unix2 [ ] SOCK_STREAMCONNECTED

unix1 [ ACC ] SOCK_STREAMLISTENING / de v/ log

不 带 选 项 的 netstat 命 令 会 显 示 系 统 上 的 所 有 网 络 连 接 。 首 先 是 活 动 的 TCP 连 接 , 之 后 是 活 动 的 域 套 接 字 。 域 套 接 字 包 含 配 置 系 统 间 通 信 的 过 程 。 在 下 面的 表 中 , 引 出 了 六 个 域 。

域 注 明

Proto 用 于 连 接 的 协 议 TC P , UDP

Recv-Q 系 统 接 收 了 但 还 没 有 使 用 的 字 节 数

Send-Q 系 统 发 送 给 远 程 主 机 的 但 还 未 确 认 接 收 的 字 节 数

Local Address 本 地 主 机 名 和 端 口 号

Foreign Address 远 程 主 机 名 和 端 口 号 ; 端 口 号 可 以 是 连 接 类 型 , 例如 telnet 或者 ftp

(state) 与 远 程 主 机 连 接 的 状 态ESTABLISHED , 连 接 已 经 建 立SYN_-SEN T , 尝 试 创 建 连 接SYN_REC , 正 在 创 建 连 接FIN_WAIT1, 关 闭 连 接CLOSE , 连 接 已 被 关 闭

LISTEN , 监 听 远 程 的 连 接 请 求

UNKNOW N , 未 知 状 态

域 套 接 字

Proto 套 接 字 的 协 议 , 通 常 是 unix

RefCnt 当 前 在 套 接 字 中 进 程 的 数 目标 记

Type 访 问 的 套 接 字 的 类 型

State 套 接 字 的 状 态

FREE , 套 接 字 没 有 被 使 用

LISTEING , 等 待 连 接

UNCONNECTED , 当 前 没 有 连 接CONNECTING , 尝 试 创 建 连 接CONNECTED , 当 前 连 接 已 经 建 立

DISCONNECTED , 关 闭 一 个 连 接

Path 进 程 用 的 访 问 套 接 字 的 路 径 名

通 过 常 有 -r 选 项 的 netstat 命 令 可 以 显 示 路 由 表 信 息 , 带 有 -i 选 项 的 netstat

命 令 会 显 示 不 同 的 网 络 接 口 的 使 用 情 况 。 下 面 的 表 中 解 释 各 个 信 息 的 含 义 。

# netstat -i

Kernel Interface table

Iface MTU Met RX-OK RX-ERRRX-DRPRX-OVR TX-OKTX-ERR TX-DRP TX-OVR F lags

Lo 2000 0 0 0 0 0 58 0 0 0 BLRU

MTU 一 次 传 输 的 最 大 字 节 数

RX-OK 数 据 包 被 接 收 没 有 错 误

RX-ERR 数 据 包 被 接 收 并 出 现 错 误

RX-DRP 数 据 包 被 丢 掉

RX-OVR 数 据 包 过 多 错 误

TX-OK 数 据 包 被 发 送 并 没 产 生 错 误

TX-ERR 数 据 包 被 发 送 并 产 生 了 错 误

TX-DRP 数 据 包 在 传 输 时 被 丢 掉

TX-OVR 数 据 包 在 传 输 时 由 于 过 载 而 丢 掉标 记 接 口 字 母 含 义 :

A , 接 收 多 宿 目 地 址 的 数 据 包

B , 接 收 广 播

D , 调 试 状 态 打 开

L , 回 送 接 口

M , 杂 项 模 式

N , 数 据 包 未 加 跟 踪

O , 地 址 解 析 协 议 被 关 闭

P , 点 对 点 接 口

R , 接 口 正 在 运 行

U , 接 口 被 激 活

域 名 服 务 (DNS)

连 接 到 TCP / IP 网 络 -- 例 如 Internet-- 上 的 百 台 计 算 机 都 是 由 它 的 IP 地 址标 识 的 。 IP 地 址 是 一 套 四 个 数 字 , 用 以 指 定 网 络 地 址 以 及 该 网 络 内 部 主 机 的 地址 , IP 地 址 不 容 易 记 忆 , 因 此 每 个 IP 地 址 的 域 名 版 本 也 可 以 用 于 标 识 的 一 台主 机 。 在 第 10 章 已 经 指 出 , 域 名 由 两 部 分 组 成 , 主 机 名 和 域 , 主 机 名 是 主 机 的专 有 名 称 , 域 用 于 标 识 该 主 机 属 于 的 网 络 。 美 国 使 用 的 域 通 常 扩 展 名 说 明 了 主机 的 类 型 。 例 如 , .edu 用 于 教 育 部 分 , 而 .com 用 于 商 业 用 途 。 国 际 域 通 常 扩 展名 用 于 指 定 所 处 国 家 , 例 如 , .du 代 表 德 国 , .au 代 表 澳 大 利 亚 。 主 机 名 , 域 以及 扩 展 名 共 同 组 成 了 一 个 名 称 , 通 过 这 个 名 称 可 以 找 到 一 台 计 算 机 。 而 域 又 可以 再 分 成 子 域 。

网 络 上 的 计 算 机 仅 能 够 通 过 IP 地 址 标 识 , 即 使 它 有 自 己 的 域 名 。 你 可 以 通过 域 名 来 访 问 网 络 上 的 一 台 计 算 机 , 但 幕 后 要 在 一 个 数 据 库 中 查 询 以 将 域 名 转化 为 对 应 的 IP 地 址 。 之 后 , 网 络 使 用 这 个 IP 地 址 , 而 不 是 域 名 , 来 访 问 对 应的 计 算 机 。 在 大 型 TCP / IP 网 络 ( 例 如 Internet) 出 现 之 前 , 每 个 机 器 上 维 护 一个 IP 地 址 和 对 应 域 名 的 信 息 是 可 行 的 , 而 且 方 便 的 。 每 当 访 问 一 个 域 名 , 就 查找 这 个 文 件 , 从 而 找 到 对 应 的 IP 地 址 。

随 着 网 络 的 增 大 , 上 述 方 法 变 得 不 太 实 际 , 尤 其 是 在 Internet 上 。 为 了 提

供 将 域 名 转 换 为

IP

地 址 的 服 务 , 产 生 出 域 名 的 数 据 库 并 存 放 到 服 务 器 上 。 为 了

找 到 一 个 域 名 的

IP

地 址 , 局 域 名 服 务 器 发 送 一 个 请 求 , 域 名 服 务 器 之 后 会 查 询

对 应 这 个 域 名 的 IP 地 址 , 可 将 其 返 回 。 在 大 型 的 网 络 中 , 可 能 有 多 个 域 名 服 务器 来 覆 盖 网 络 的 不 同 部 分 。 如 果 一 个 域 名 服 务 器 找 不 到 对 应 域 名 的 IP 地 址 , 它会 将 服 务 请 求 发 送 给 另 一 个 域 名 服 务 器 。

域 名 服 务 器 是 由 解 析 器 查 询 的 , 解 析 器 是 专 门 用 于 从 域 名 服 务 器 中 获 取 IP 地 址 的 程 序 。 要 想 在 你 的 系 统 上 使 用 域 名 服 务 器 , 必 须 配 置 你 自 己 的 解 析 器 。你 本 地 的 解 析 器 是 通 过 文 件 / etc / host.conf 和 / etc / resolv.conf 来 配 置 的 。

20.6.1host.conf

该 文 件 列 出 了 解 析 器 的 选 项 ( 在 下 面 的 表 中 已 经 列 出 )。 每 个 选 项 也 能 有 多 个域 , 中 间 用 空 格 或 制 表 符 分 隔 。 在 一 行 的 行 首 如 果 是 # , 则 表 示 该 行 的 内 容 是 注释 。 选 项 告 诉 解 析 器 使 用 何 种 服 务 。 该 文 件 中 各 行 的 顺 序 是 很 重 要 的 。 解 析 器会 由 上 至 下 读 取 该 文 件 的 内 容 。 host.conf 文 件 被 存 放 在 / etc 目 录 下 。

Order 指 定 域 名 解 析 方 法 的 顺 序

Hosts 在 本 地 / etc / host 文 件 中 找

Bind 查 询 DNS 域 名 服 务 器

Nis 通 过 网 络 信 息 服 务 协 议 获 取 地 址

Alerm 检 查 访 问 你 的 系 统 的 远 程 主 机 的 地 址 通 过 on 或 off 选 项 将 该功 能 打 开 或 关 闭

Nospoof 确 认 访 问 你 的 系 统 的 远 程 主 机 地 址

Trim 对 检 查 你 本 地 的 主 机 文 件 , 删 除 域 名 并 仅 检 查 主 机 名 ; 允 许你 仅 使 用 主 机 名 , 而 不 是 host.domain.ext 名 称

Multi 允 许 一 个 主 机 有 多 个 IP 地 址 ; 通 过 on 或 off 选 项 将 其 打 开或 者 关 闭 。

在 下 面 host.conf 的 例 子 文 件 中 , order 选 项 指 示 解 析 器 首 先 查 找 本 地 / etc

/ hosts 文 件 , 如 果 失 败 , 查 询 域 名 服 务 器 。 该 系 统 不 含 有 多 个 IP 地 址 。

/ etc / host.conf # host.confile

# Lookup names in host file and then check DNS order bind host

# There are no multiple addresses multi off

/ etc / resolv.conf

在 resolv.conf 文 件 中 指 定 域 名 服 务 器 的 地 址 。 在 resolv.conf 文 件 中 可 以 有三 种 记 录 项 , 每 一 项 由 关 键 字 打 头 : domain,nameserver 和 search 。对 domain 项 , 列 出 的 是 系 统 的 域 名 。 如 果 愿 意 , 可 以 加 入 search 记 录 项 。 search 项 给出 一 个 主 机 名 后 提 供 一 些 要 尝 试 的 域 。

在 search 项 的 后 面 , 可 以 加 入 域 名 服 务 器 记 录 项 。 你 的 系 统 所 要 访 问 的 域名 服 务 器 , 都 要 加 在 这 个 记 录 中 。 输 入 nameserver 和 域 名 服 务 器 对 应 的 IP 地址 。 通 常 , 网 络 中 有 一 个 主 域 名 服 务 器 和 几 个 从 域 名 服 务 器 。 应 该 首 先 查 询 主域 名 服 务 器 , 因 此 , 必 须 将 它 放 在 nameserver 项 的 第 一 个 。

下 面 是 一 个 resolv.conf 的 样 本 文 件 , 该 主 机 的 域 名 berkeley.edu 。 该 域 中的 域 名 服 务 器 的 IP 地 址 已 经 列 在 nameserver 记 录 项 中 。

配 置 自 己 的 域 名 服 务 器 : named

如 果 你 在 管 理 一 个 网 络 并 需 要 为 其 配 置 域 名 服 务 器 , 可 以 将 Linux 系 统 充当 域 名 服 务 器 的 角 色 , 前 提 是 必 须 启 动 named 守 护 进 程 。 named 守 护 进 程 随系 统 的 启 动 而 启 动 , 并 等 待 域 名 的 查 询 。 它 使 用 几 个 配 置 文 件 来 处 理 查 询 请 求 。named.boot 文 件 指 定 该 服 务 器 支 持 的 域 以 及 工 作 文 件 所 在 的 目 录 。named.hosts 文 件 包 含 这 个 域 的 数 据 信 息 , 它 是 由 一 些 资 源 记 录 构 成 的 , 这 些资 源 记 录 列 出 了 该 域 中 有 关 不 同 主 机 的 信 息 。 这 些 记 录 使 用 非 常 格 式 , 代 码 放

在 适 当 的 域 中 , named.rev 文 件 将 IP 地 址 映 射 成 主 机 名 。 named.ca 文 件 为 域名 服 务 器 设 置 高 速 缓 存 。 配 置 自 己 的 域 名 服 务 器 的 过 程 和 可 能 会 很 复 杂 的 。 可以 参 照 named 的 联 机 手 册 ,How-To 文 档 等 信 息 。

SLIP 和 PPP

除 了 使 用 硬 件 网 络 连 接 , 例 如 以 太 网 , 你 还 可 以 通 过 与 电 话 线 连 接 的 调 制解 调 器 进 行 连 接 。 有 两 个 协 议 可 以 在 电 话 线 上 传 输 IP 数 据 , 它 们 是 串 行 线Internet 协 议 (SLIP )和 点 对 点 协 议 (PPP ), SLIP 是 更 旧 的 协 议 , 而 PPP 是 新 的协 议 。 当 前 许 多 高 速 连 接 , ISP 们 都 使 用 的 是 PPPP 。 SLIP 和 PPPP 协 议 专 门用 于 使 用 户 通 过 调 制 解 调 器 和 电 话 与 Internet 进 行 连 接 。 通 常 是 连 接 到 ISP , 而 ISP 通 过 它 本 身 的 系 统 连 接 到 Interne t。

设 置 SLIP 或 PPPP 是 一 个 复 杂 的 过 程 。更 详 尽 的 信 息 可 以 参 照 PPP - H owTo

和 Net -2 -HowTo 文 档 , 存 放 在 / use r/ doc / HowTo 目 录 下 。 在 / us r/ doc

/ HTML 目 录 下 还 有 Web 页 面 格 式 的 文 档 。

20.7.1 准 备 连 接 到 SLIP 或 PPP

要 创 建 一 个 SLIP 或 PPP 连 接 , 首 先 必 须 启 动 TCP / IP 网 络 并 已 经 配 置 了回 送 接 口 。 Internet 服 务 提 供 商 通 常 会 维 护 域 名 服 务 器 。 你 应 该 知 道 这 些 域 名

服 务 器 的 地 址 , 并 加 入 到 / etc / resolv.conf 文 件 中 去 。 如 果 没 有 这 一 步 工 作 , 作 输 入 的 任 何 一 个 Internet 地 址 都 不 会 被 承 认 。

20.7.2PPP

点 对 点 协 议 (PPP )是 更 新 的 更 广 泛 功 能 更 强 大 的 协 议 , 并 很 快 流 行 起 来 。 它提 供 更 稳 定 的 连 接 ,并 能 支 持 许 多 种 类 的 网 络 协 议 ,而 不 再 是 Internet 协 议 。PPP 自 动 完 成 其 大 部 分 功 能 , 与 SLIP 不 同 , 它 不 必 针 对 每 一 个 步 骤 都 要 求 有 一 些命 令 , PPP 能 够 自 动 地 确 定 远 程 的 IP 地 址 , 静 态 的 或 动 态 的 。

通 过 pppd 程 序 来 设 置 PPP 连 接 。 pppdd 能 设 置 你 的 连 接 , 设 置 MTU 限制 , 获 取 IP 地 址 。 但 是 , 与 dip 程 序 不 同 , pppd 不 创 建 初 始 的 连 接 。 它 不 通过 调 制 解 调 器 进 行 拨 号 , 也 不 提 供 登 录 和 口 令 信 息 。 要 使 用 pppd , 首 先 建 立 与远 程 主 机 的 连 接 ,可 以 通 过 chat 程 序 来 建 立 连 接 ,它 有 自 己 的 选 项 和 格 式 。chat 程 序 首 先 建 立 连 接 , 之 后 pppd 对 这 个 连 接 进 行 配 置 。 但 是 , 不 必 先 调 用 cha t, 之 后 再 调 用 pppd 。 pppd 被 设 计 成 有 一 个 参 数 , 该 参 数 是 一 个 程 序 , 用 于 建 立连 接 的 程 序 -- 在 这 种 情 况 下 , 这 个 程 序 就 是 cha t。

在 命 令 行 上 是 否 为 pppd 程 序 包 含 一 套 IP 地 址 及 是 否 使 用 noipdefalt 选 项可 以 区 分 是 动 态 IP 地 址 还 是 静 态 IP 地 址 , 如 果 包 含 了 一 套 IP 地 址 , 那 么 pppd 就 会 认 为 你 使 用 的 是 静 态 连 接 , 而 且 这 些 IP 地 址 是 远 程 和 本 地 的 地 址 , 如 果 未指 定 任 何 地 址 作 为 参 数 , 那 么 pppd 认 为 存 在 一 个 缺 省 的 远 程 地 址 和 本 地 地 址 。缺 省 的 本 地 地 址 是 你 的 系 统 的 IP 地 址 ,它 是 在 文 件 / etc / hostname 中 指 定 的 , 缺 省 的 远 程 主 机 地 址 是 在 文 件 / etc / hostname 中 指 定 的 , 缺 省 的 远 程 主 机 地

址 是 在 文 件 / etc / hosts 中 指 定 的 。 pppd 程 序 会 认 为 你 在 使 用 动 态 地 址 , 并 在建 立 连 接 的 时 候 进 行 查 找 。 为 了 使 pppd 程 序 认 为 在 使 用 动 态 地 址 , 要 使 用noipdefault 选 项 , 同 时 也 不 能 指 定 任 何 地 址 , noipdefault 选 项 指 示 pppd 不 要使 用 缺 省 地 址 , 若 是 没 有 指 定 到 动 态 地 址 。

本 地 静 态 地 址 和 远 程 地 址 是 相 邻 的 , 中 间 用 冒 号 分 隔 。 本 地 地 址 放 在 前 面 。下 面 的 例 子 中 , 指 定 本 地 地 址 为 199.35.209.72 , 而 远 程 地 址 为 163.179.4.22 。

199.35.209.72:163.179.4.22

如 果 你 使 用 的 是 动 态 远 程 地 址 , 而 使 用 静 态 的 本 地 地 址 , 可 以 先 指 定 本 地地 址 , 之 后 是 冒 号 。 pppd 会 使 用 你 的 本 地 地 址 , 并 接 收 远 程 地 址 。

199.35.209.72:

由 于 在 / etc / hostname 文 件 中 指 定 的 本 地 地 址 是 你 的 缺 省 的 本 地 地 址 , 所 以 不 需 要 在 命 令 行 上 输 入 。 只 需 输 入 没 有 地 址 的 pppd 命 令 。 pppd 会 使 用 你的 主 机 名 地 址 作 为 你 的 本 地 地 址 , 并 从 远 程 主 机 上 获 取 远 程 地 址 。

大 部 分 Internet 服 务 供 应 商 , 如 果 使 用 动 态 IP 地 址 , 会 为 你 提 供 本 地 和 远地 地 址 。 在 这 种 情 况 下 , 你 不 必 输 入 任 何 地 址 , 同 时 必 须 指 定 noipdefault 选 项 。noipdefault 选 项 会 防 止 使 用 hostname 地 址 作 为 缺 省 的 本 地 地 址 。 没 有 指 定 任何 地 址 的 情 况 下 , pppd 会 从 远 程 主 机 获 取 地 址 。

chat 脚 本

使 用 chat 的 最 佳 方 式 是 启 动 一 个 chat 脚 本 。 为 了 创 建 连 接 , chat 必 须 指定 所 有 的 连 接 信 息 : 电 话 号 码 , 登 录 提 示 及 用 户 ID , 口 令 提 示 和 口 令 , 及 所 有

连 接 字 符 中 。 可 以 在 chat 命 令 的 后 面 输 入 这 些 字 符 串 , 但 这 将 使 命 令 非 常 的 长而 且 会 变 得 很 复 杂 , 可 以 创 建 一 个 文 件 , 该 文 件 中 包 含 chat 所 需 的 信 息 , 之 后用 -f 选 项 使 用 这 个 文 件 作 为 chat 命 令 的 参 数 。 这 个 文 件 就 称 作 chat 脚 本 。

chat 脚 本 文 件 是 由 一 行 组 成 的 , 在 这 一 行 中 是 由 多 个 部 分 组 成 , 每 个 部 分包 含 连 接 信 息 的 一 部 分 。 每 个 部 分 是 等 待 -- 响 应 对 方 式 的 字 符 串 。 第 一 个 字 符串 是 你 期 望 要 接 收 的 信 息 , 第 二 个 字 符 串 是 你 要 发 送 的 信 息 。 如 果 期 望 什 么 都不 接 收 , 只 需 使 用 空 字 符 串 , 。 每 个 等 待 -- 响 应 对 完 成 登 录 过 程 的 特 定 任 务 。你 可 以 初 始 化 调 制 解 调 器 。 大 部 分 用 户 可 以 使 用 缺 省 的 字 符 串 信 息 。 之 后 , 拨对 应 的 号 码 来 创 建 连 接 。 之 后 , 可 以 检 查 连 接 是 否 已 经 建 好 。 在 登 录 提 示 上 输入 登 录 用 户 名 称 , 最 后 在 口 令 提 示 上 发 送 口 令 信 息 。

如 果 要 初 始 化 调 制 解 调 器 , 需 要 在 脚 本 文 件 中 加 入 对 应 的 等 待 -- 响 应 字 符 串信 息 。 首 先 什 么 都 等 待 , 因 此 等 待 字 符 串 是 空 字 符 串 , 。 在 响 应 字 符 串 中 指 定调 制 解 调 器 初 始 化 所 需 的 代 码 。 在 初 始 化 字 符 串 中 输 入 代 码 时 , 将 从 & 开 始 的代 码 退 出 , 对 chat 来 说 , & 是 中 断 符 号 , 它 会 终 止 过 程 。

"" AT \ F2V1L0

下 一 个 等 待 -- 响 应 字 符 串 会 拨 动 对 应 的 电 话 号 码 。 如 果 在 它 的 前 面 有 初 始 化字 符 串 , 那 么 它 的 等 待 字 符 串 是 O K , 这 是 从 你 的 调 制 解 调 器 发 来 的 OK 响 应 , 表 示 在 初 始 化 调 制 解 调 器 的 过 程 中 没 有 出 现 问 题 。 但 是 如 果 没 有 进 行 调 制 解 调器 的 初 始 化 工 作 , 那 么 等 待 字 符 串 应 该 是 空 字 符 串 , , 在 这 两 种 情 况 下 , 响 应字 符 串 是 调 制 解 调 器 用 于 拨 号 的 调 制 解 调 器 命 令 , ATDT , 后 面 是 对 应 的 电 话 号码 。

OK ATDT5558888

通 常 会 接 收 到 一 个 连 接 字 符 串 , 提 示 你 必 须 连 接 到 远 程 系 统 。 这 会 随 着 系统 的 不 同 而 有 所 不 同 。 甚 至 可 能 没 有 连 接 字 符 串 信 息 。 在 许 多 系 统 上 , 连 接 字符 串 是 CONNECT 这 个 词 ; 在 其 它 的 系 统 上 , 是 波 特 率 或 者 速 度 。 在 这 个 例 子中 , 用 户 接 收 到 的 是 速 度 。 双 连 接 字 符 串 的 响 应 通 常 是 空 的 , 有 时 也 可 能 是 一个 分 行 符 。 在 表 20-6 中 列 出 了 chat 脚 本 中 的 特 殊 字 符 。 在 下 面 的 例 子 中 , 响应 是 一 个 分 行 符 。

57600 \ n

在 连 接 字 符 串 之 后 , 远 程 系 统 通 常 会 发 送 登 录 提 示 , 通 常 是 login , 后 面 接一 个 冒 号 , 你 只 需 要 后 面 的 几 个 字 符 , ogin i: 不 要 把 冒 号 漏 掉 。 在 响 应 信 息 中 , 你 发 送 你 的 用 户 ID 。 取 决 于 你 的 ISP , 你 可 能 还 要 在 用 户 ID 后 面 加 入 回 车 符 , 如 mu login \ n 。 有 些 ISP 可 能 还 要 求 你 加 入 其 它 的 字 符 。

ogin: mylogin

在 登 录 信 息 之 后 , 会 等 待 口 令 提 示 。 同 样 , 只 需 要 后 面 的 几 个 字 符 , word: 。在 响 应 信 息 中 , 发 送 你 的 口 令 。 如 果 必 要 , 还 应 在 口 令 后 面 加 入 \ n 作 为 回 车符 。

word: mypass

所 有 这 些 内 容 都 要 放 入 一 行 。

\ \ "" AT \ &F2V1L0 OK ATDT8888888 CONNECT \ n ogin:mylogin word: mypass

如 果 你 没 有 进 行 调 制 解 调 器 的 初 始 化 , 它 看 起 来 可 能 略 有 不 同 。

"" ATDT8888888 CONNECT \ n ogin: mylogin word: mypass

如 果 你 的 ISP 不 需 要 你 输 入 回 车 符 , 可 以 将 回 车 键 去 掉 , 就 像 下 面 这 样 :

"" ATDT8888888 ogin: mylogin word: mypass

在 chat 脚 本 中 , 可 以 将 等 待 -- 响 应 对 放 到 不 同 的 行 中 , 每 行 是 一 个 等 待 -- 响应 对 。 这 个 文 件 的 扩 展 名 要 设 为 .chat。 在 下 面 的 例 子 中 , mucon.chat 脚 本 就 是将 等 待 -- 响 应 对 放 入 不 同 的 行 中 。

mycon.chat ""AT \ &F2V1L0

OKATDT4448888

CONNECT \ n

ogin:mylogin word:mypass

之 后 , 可 以 用 含 有 -f 选 项 的 chat 命 令 来 调 用 这 个 脚 本 。 chat 程 序 会 使 用 脚

本 中 的 信 息 来 初 始 化 你 的 调 制 解 调 器 , 拨 入 远 程 主 机 , 并 使 用 你 的 用 户 ID 和 口令 登 录 到 远 程 主 机 上 。

chat -f mycon.chat

如 果 在 连 接 的 过 程 中 出 现 了 问 题 , 许 多 远 程 系 统 会 发 送 出 错 信 息 。 你 可 以利 用 特 殊 的 等 待 字 符 串 , ABOR T , 后 面 接 一 个 关 键 字 来 发 现 这 种 错 误 消 息 , 如果 收 到 对 应 关 键 字 对 应 的 出 错 消 息 , chat 会 取 消 连 接 过 程 。 如 果 你 仅 仅 使 用 命令 行 , 可 以 输 入 异 常 退 出 字 符 串 。 在 一 个 chat 脚 本 中 , 异 常 退 出 字 符 串 可 以 放在 文 件 的 开 始 处 。 下 面 的 例 子 将 等 待 一 个 NO CARRIER 或 BUSY 响 应 -- 在 登

记 提 示 之 前 。

mycon.chat ABORT'NO CARRIER' ABORTBUSY

""AT \ &F2V1L0

OKATDT5558888 CONNECT \ n

ogin:mylogin word:mypass

你 需 要 在 pppd 命 令 后 接 入 chat 操 作 。整 个 chat 操 作 会 被 放 入 一 个 引 用 中 , 并 在 pppd 命 令 行 上 的 输 入 。 chat 程 序 会 使 用 chat 脚 本 中 提 供 的 信 息 初 始 化 调制 解 调 器 , 拨 号 远 程 主 机 , 并 通 过 你 的 用 户 ID 和 口 令 登 录 远 程 主 机 , chat 将创 建 这 个 连 接 , 而 pppd 会 为 其 作 配 置 。

点 对 点 协 议 守 护 进 程 (pppd) 有 几 个 选 项 。 它 的 标 准 语 法 是

pppd options serial-device-name speed local:remote-addresses ppp- options

serial-device-name 是 你 的 调 制 解 调 器 的 设 备 文 件 名 , 有 可 能 是 / dev / cua 后 面 接 一 个 数 字 ,通 常 是 0 到 3 ,取 决 于 调 制 解 调 器 使 用 的 端 口 。端 口 1 是 cua0 , 端 口 2 是 cua1 , 等 等 。 speed 是 波 特 率 。 对 一 个 14.4 调 制 解 调 器 来 说 , 它 的值 是 14400 。 对 vi28 调 制 解 调 器 来 说 , 它 是 38400 , 或 者 是 56700 。 查 询 ISP 有 关 你 的 调 制 解 调 器 所 支 持 的 最 大 速 度 。

选 项 用 于 指 定 例 如 MTU 大 小 的 及 是 否 接 收 动 态 IP 地 址 等 特 性 。 connect 选 项 指 示 pppd 创 建 一 个 连 接 , 它 的 参 数 是 一 个 Linux 命 令 , 这 个 命 令 完 成 实 际的 连 接 的 工 作 -- 通 常 在 chat 命 令 , 你 输 入 pppd , 之 后 是 connect 选 项 , 以 R 含 有 -f chat 脚 本 选 项 的 chat 命 令 。 chat 命 令 和 它 的 -f 选 项 要 放 入 引 号 中 的 与其 它 的 pppd 选 项 相 区 别 。 在 下 面 的 例 子 中 , 用 户 启 用 chat 命 令 选 项 的 pppd , 并 使 用 mycon.chat 脚 本 文 件 。 调 制 解 调 器 被 连 接 到 端 口 中 , / dev / cua1 , 速度 是 57600 波 特 率 。

# pppd connect'chat -fmycon.chat' / de v/ cua157600

要 与 ISP 断 开 连 接 , 只 需 使 用 含 有 disconnect 选 项 的 pppd 命 令 。 必 须 使用 chat 来 使 调 制 解 调 器 挂 断 , 要 完 成 这 一 步 , 必 须 发 送 一 个 调 制 解 调 器 命 令 , 例 如 HO 。 将 chat 命 令 放 入 chat 文 件 中 可 能 会 更 方 便 , 例 如 :

#pppd disconnect 'chat -f turnoff.chat' turnoff.chat

--\ d + + + \ d \ c OK ATH0 OK

要 使 断 开 连 接 更 容 易 , 可 以 将 pppd 命 令 放 入 shell 脚 本 , 就 像 为 创 建 连 接那 样 。

PPP 选 项

pppd 程 序 含 有 许 多 选 项 , 有 关 该 程 序 的 更 常 用 的 选 项 在 表 20-7 中 已 经 列出 , 或 者 查 看 pppd 的 联 机 手 册 的 获 取 更 加 详 尽 的 帮 助 信 息 。 例 如 , mru 选 项

的 功 能 就 是 设 置 最 大 接 收 单 元 的 大 小 , pppd 通 知 远 程 的 系 统 在 发 送 数 据 包 的 时候 每 个 数 据 包 的 最 大 长 度 不 能 超 过 这 个 选 项 指 定 的 长 度 大 小 。 缺 省 的 长 度 是1500 ,对 于 速 度 较 慢 的 调 制 解 调 器 应 该 使 用 的 大 小 是 296 或 者 542 。defaultroute 选 项 通 知 pppd 程 序 将 pppp 连 接 设 置 成 为 缺 省 的 路 由 。 如 果 找 不 到 地 址 并 且 使用 了 noipdefault 选 项 , 就 会 使 pppd 程 序 查 找 并 使 用 从 远 程 ISP 处 得 到 的 动 态IP 地 址 。 如 果 你 的 ISP 支 持 动 态 IP 地 址 , 那 么 必 须 要 指 定 这 个 选 项 。 crtscts 选 项 使 用 硬 件 流 控 制 , modem 选 项 使 用 调 制 解 调 器 控 制 线 。 在 命 令 行 上 可 以 列出 选 项 的 内 容 , 就 像 下 面 的 例 子 这 样 。

# pppd connect 'chat -f mycon.chat' / de v/ cua1 57600 mru 1500 defaultroute noipdefault crtscts modem

在 下 面 的 命 令 中 , 提 供 的 地 址 指 示 pppd 程 序 使 用 这 些 地 址 创 建 一 个 静 态 连接 。 此 处 的 本 地 地 址 是 199.35.209.72 , 而 远 程 地 址 为 163.179.4.22 。

# pppd connect 'chat -f mycon.chat' / de v/ cua1 57600

199.35.209.72 :163.179.4.22 mru 1500 defaultroute crtscts modem

这 样 可 能 会 形 成 一 个 非 常 长 而 且 非 常 复 杂 的 命 令 行 , 这 取 决 于 你 要 使 用 多少 种 选 项 。 作 为 更 外 一 种 方 式 , pppd 程 序 允 许 在 文 件 / etc / ppp / options 或者 在 文 件 .ppprc 文 件 中 输 入 需 要 使 用 的 选 项 内 容 。 pppd 程 序 会 自 动 地 读 取 这 两个 文 件 , 并 使 用 对 应 的 选 项 。 你 可 以 根 据 自 己 的 需 要 使 用 任 意 多 的 选 项 , 在 这个 文 件 中 每 个 选 项 要 占 用 一 行 。# 开 头 的 行 表 示 该 行 的 内 容 是 注 释 ,即 不 起 作 用 。文 件 / etc / ppp / options 中 包 含 了 为 pppd 程 序 作 的 系 统 缺 省 选 项 。 你 以 超 级用 户 的 身 份 创 建 这 个 文 件 , 它 是 pppd 程 序 被 调 用 时 要 读 取 的 第 一 个 文 件 。 每

个 用 户 可 以 在 他 的 主 目 录 下 创 建 属 于 他 个 人 的 .ppprc 文 件 。 这 个 文 件 是 由 某 个具 体 的 用 户 指 定 的 , pppd 程 序 会 在 读 取 / etc / ppp / options 文 件 之 后 读 取 用户 主 目 录 下 的 .ppprc 文 件 。 在 下 面 的 例 子 中 列 出 了 这 些 文 件 的 简 要 内 容 。

/ etc / ppp / options

# / etc / ppp / options-*-sh-*-general options for pppd crtscts

defaultroute modem mru 542

asyncmap 0

netmask 255.255.255.0 noipdefault

为 了 使 这 个 过 程 变 得 更 加 方 便 , Redhat 系 统 在 / etc / ppp 目 录 下 加 入 了 一

个 文 件 称 为 options.tp l。 它 是 一 个 选 项 模 板 文 件 。 它 已 经 列 出 了 含 有 缺 省 值 的所 有 选 项 , 并 对 每 个 选 项 作 了 详 尽 的 注 释 说 明 。 但 是 , 所 有 这 些 选 项 都 以 # 符 号开 头 的 , 也 就 是 说 , 这 些 选 项 都 是 不 起 作 用 的 。 你 不 必 从 头 开 始 创 建 一 个 选 项文 件 , 而 可 以 将 文 件 options.tpl 拷 贝 成 options 文 件 。 之 后 使 用 文 本 编 辑 器 ( 例如 vi 命 令 ), 将 一 些 # 符 号 删 掉 , 就 可 以 方 便 快 速 地 创 建 自 己 需 要 的 选 项 文 件 了 , 例 如 , 为 了 使 用 noipdefault 选 项 , 通 过 文 本 编 辑 器 来 找 到 这 一 行 , 并 删 除 行 首的 # 符 号 。 要 去 掉 这 种 选 项 功 能 , 只 需 在 行 首 插 入 # 符 号 即 可 。 做 好 了 选 项 文 件之 后 , 你 就 可 以 启 动 pppd 程 序 , 而 在 该 命 令 后 面 不 再 需 要 加 入 选 项 作 为 参 数

了 。

由 于 在 文 件 / etc / ppp / options 中 已 经 指 定 了 要 使 用 的 选 项 , 因 此 在 pppd

程 序 的 时 候 只 需 加 入 chat 调 动 , 后 面 接 调 解 调 器 对 应 的 设 备 文 件 以 及 调 制 解 调器 的 速 度 。

pppd connect 'chat -f mycon.chat' / de v/ cua1 57600

通 过 将 pppd 的 调 用 放 入 一 个 shell 文 件 中 , 可 以 更 进 一 步 地 简 化 pppd 程序 的 使 用 。 你 应 该 还 记 得 , shell 脚 本 文 件 就 是 一 个 普 通 的 文 本 文 件 , 它 可 以 用任 何 文 本 编 辑 器 来 创 建 和 修 改 。 在 shell 文 件 中 , 你 输 入 命 令 调 用 , 并 加 入 所 有要 在 命 令 行 上 使 用 的 参 数 。一 定 要 记 住 ,在 pppd 命 令 前 要 加 上 exec 命 令 。exec 命 令 会 在 你 的 命 令 行 shell 中 运 行 pppd 程 序 ,而 不 是 在 该 shell 脚 本 文 件 的 shell 中 运 行 pppd 程 序 。 之 后 , 通 过 命 令 chmod 755 脚 本 文 件 名 来 使 该 脚 本 成 为 可运 行 的 , 现 在 , 要 执 行 pppd 操 作 , 只 要 直 接 在 命 令 行 上 敲 入 该 脚 本 文 件 名 , 之 后 按 回 车 键 , 在 下 面 的 例 子 中 , pppd 连 接 操 作 被 放 在 一 个 称 作 pppcon 的 脚本 文 件 中 , 用 户 只 要 敲 入 pppcon 就 会 启 动 pppd 程 序 。

pppcon

exec pppd connect 'chat-f mycon.chat' / dev / cual 57600

$ pppcon

现 在 就 应 该 可 以 与 远 程 系 统 建 立 pppd 连 接 了 。 在 操 作 过 程 中 , 有 许 多 处 都可 能 出 现 错 误 。 你 可 能 是 没 有 使 用 正 确 的 连 接 字 符 串 , 或 者 调 制 解 调 器 可 能 初始 化 过 程 中 有 错 误 , pppd 程 序 会 为 每 一 个 步 骤 作 记 录 , 并 将 记 录 存 放 到 目 志 文件 / va r/ log / messages 中 。你 可 以 通 过 命 令 tail 显 示 这 些 信 息 。在 成 功 的 pppd

连 接 中 , 你 会 在 这 个 日 志 文 件 中 看 到 本 地 的 IP 地 址 和 远 程 的 IP 地 址 。

$ tail / va r/ log/ messages

要 获 取 变 化 的 / va r/ log/ message 文 件 的 内 容 , 在 使 用 tail 命 令 的 时 候 加上 -f 选 项 , 就 你 下 面 显 示 的 那 样 , 接 下 CTRL-C 会 终 止 这 个 操 作 。

$ tail -f/ var/ log / messages

Mar 23 20:01:03 richlp pppd [ 208 ] : Connected...

Mar 23 20:01:04 richlp pppd [ 208 ] : Using interface ppp0

Mar 23 20:01:04 richlp kernel:ppp:channel ppp0 mtu=1500,mru=1500 Mar 23 20:01:04 richlp kernel:ppp:channel ppp0 open

Mar 23 20:01:04 richlp pppd [ 208 ] : Connect: ppp0 / dev / cua3 Mar 23 20:01:09 richlp pppd [ 208 ] : local IP address 204.32.168.68 Mar 23 20:01:09 richlp pppd [ 208 ] : remote IP address 163.179.4.23

Linux 的 Redhat 发 行 版 本 为 你 提 供 了 一 个 登 录 PPP 脚 本 的 例 子 文 件 , 称作 ppp-on , 这 个 文 件 存 放 在 / usr / sbin 目 录 下 。 你 可 以 使 用 一 个 文 本 编 辑 器来 设 置 正 确 的 值 , 例 如 电 话 号 码 和 用 户 密 码 。 在 设 置 chat 命 令 和 pppd 程 序 的选 项 的 时 候 , 也 一 定 要 谨 慎 。 如 果 已 经 在 / etc / ppp / options 文 件 中 设 置 了 选项 , 就 可 以 在 命 令 行 中 不 使 用 这 些 已 经 设 置 好 的 选 项 , 就 可 以 在 命 令 行 中 不 使用 这 些 已 经 设 置 好 的 选 项 。 另 外 , 也 要 注 意 为 调 制 解 调 器 设 置 正 确 的 速 度 和 设备 名 称 。 一 旦 准 备 工 作 做 好 了 , 剩 下 的 只 需 输 入 ppp-on 命 令 来 创 建 PPP 连 接 。如 果 在 断 开 连 接 的 时 候 遇 到 了 麻 烦 , 可 以 尝 试 命 令 ppp-off 。 它 是 一 个 shell 脚本 命 令 文 件 , 存 放 在 / usr / sbin 目 录 下 , 它 直 接 地 杀 掉 PPP 进 程 。

此 外 , 也 可 以 使 用 dip 命 令 来 启 动 pppd 程 序 从 而 创 建 一 个 PPP 连 接 。 当你 在 dip 脚 本 中 设 置 成 为 PPP 模 式 的 时 候 , 你 实 际 上 是 在 执 行 pppd 程 序 。 在这 种 情 况 下 , 就 不 再 需 要 一 个 chat 脚 本 来 创 建 这 个 连 接 , 因 为 dip 已 经 完 成 了这 部 分 工 作 了 。 但 是 , 还 需 要 在 pppd 调 用 之 前 设 置 几 个 选 项 。 这 些 选 项 是 不能 在 dip 脚 本 文 件 中 指 定 的 。 相 反 , 必 须 在 / etc / ppp / options 文 件 中 设 置 这些 选 项 。

提 供 从 其 它 系 统 来 的 PPP 接 入 连 接

跟 SLIP 一 样 , 你 可 以 将 你 的 系 统 配 置 成 为 一 个 PPP 服 务 器 , 允 许 远 程 系统 拨 号 进 入 你 的 系 统 , 并 创 建 PPP 连 接 。 你 只 需 创 建 一 个 特 殊 帐 号 和 一 个 脚 本文 件 来 的 选 项 -detach 和 选 项 silent 来 启 动 pppd 。 这 个 脚 本 文 件 通 常 被 称 为ppplogin , 下 面 是 这 个 文 件 的 一 个 例 子 :

/ etc / ppp / ppplogin

exec pppd-detach silent modem crtscts

-detach 选 项 使 得 pppd 不 会 与 正 在 连 接 的 线 断 开 。 silent 选 项 pppd 等 待 远程 系 统 的 连 接 请 求 。 modem 选 项 会 监 视 调 制 解 调 器 线 , 而 crtscts 选 项 会 使 用硬 件 流 控 制 。

这 个 特 殊 的 用 户 帐 号 名 是 PPP 。/ etc / passwd 文 件 中 PPP 用 户 的 有 关 信息 应 该 是 像 下 面 这 样 :

ppp:*: 501:300:PPP Account: / tmp:etc / ppp / ppplogin

PPP 安 全 : CHAP

为 了 确 保 PPP 连 接 的 安 全 性 ,你 必 须 使 用 额 外 的 协 议 。已 经 有 两 种 针 对 PPP

的 协 议 : 口 令 认 协 议 (PAP )和 响 应 握 手 认 识 协 议 (CHAP )。

两 者 相 比 较 而 言 , CHAP 是 更 为 安 全 的 协 议 。 它 使 用 一 个 加 密 响 应 系 统 , 它 需 要 连 接 的 双 方 不 断 地 为 对 方 作 认 识 。 加 密 的 密 钥 被 存 放 在 文 件 / etc / ppp

/ chap-secrets 。 为 了 在 PPP 连 接 中 使 用 CHAP , 在 启 动 pppd 程 序 的 时 候 , 要 加 入 auth 选 项 。 此 外 , 还 要 将 远 程 主 机 的 有 关 信 息 输 入 到 文 件 / etc / ppp / chap-secrets 中 。 下 面 是 文 件 / etc / ppp / secrets 的 一 部 分 。 文 件 / etc / ppp

/ pap-secrets 中 PAP 对 应 的 记 录 项 与 这 个 文 件 的 格 式 是 相 同 的 。

etc / ppp / chap-secrets

pango1.train.com

turtle.trek.com

"my new hat"

*

turtle.trek.com

"confirmed tickets"

turtle.trek.com

pango1.train.com

"trek on again"

一 个 CHAP 密 钥 记 录 项 由 四 个 域 组 成 : 客 户 端 的 主 机 名 , 服 务 器 的 主 机 名 , 密 钥 和 一 系 列 可 能 的 IP 地 址 。 对 某 个 特 定 的 要 与 你 的 系 统 进 行 连 接 的 计 算 机 , 你 可 以 指 定 它 必 须 提 供 相 应 的 密 钥 。 如 果 不 指 定 特 定 的 计 算 机 , 可 以 使 用 符 号 * 来 表 示 所 有 的 计 算 机 。 任 何 知 道 密 钥 的 计 算 机 都 能 够 与 你 的 系 统 进 行 连 接 。 在下 面 的 例 子 中 的 第 一 项 , 服 务 器 是 用 户 本 身 的 系 统 , turtle.trek.com , 它 允 许 主机 pango1.train.com 在 提 供 正 确 的 密 钥 的 情 况 下 连 接 到 系 统 上 。 在 第 二 个 记 录

项 中 , 任 何 系 统 只 要 知 道 密 钥 confirmed tickets 就 能 够 连 接 到 turtle.trek.com 。pango1.train.comturtle.trek.com"my new hat"

*turtle.trek.com"confirmed tickets"

你 也 必 须 为 你 要 访 问 的 远 程 系 统 创 建 相 应 的 记 录 项 。 在 那 种 情 况 下 , 远 程系 统 就 是 PPP 服 务 器 , 而 你 的 系 统 就 成 为 客 户 端 。 在 下 面 的 例 子 中 , turtle 能够 连 接 到 pango1 , 对 应 的 密 钥 是 trek on again 。

turtle.trek.com pango1.train.com"trek on again"

20.7.3 SLIP 和 CSLIP:dip

存 在 两 种 类 型 的 SLIP 连 接 , 标 准 的 被 称 为 SLIP , 此 外 还 有 更 新 的 压 缩SLIP , 被 称 作 为 CSLIP 。 一 定 要 清 楚 Internet 服 务 供 应 商 为 你 提 供 的 是 哪 种 类型 的 连 接 。 你 一 定 要 在 连 接 模 式 中 选 择 一 种 或 另 一 种 作 为 协 议 。 除 了 连 接 模 式不 同 之 外 , 它 们 的 其 它 方 面 都 是 一 样 的 。

通 过 dip 程 序 来 管 理 和 设 置 SLIP 连 接 。 如 果 有 合 适 的 信 息 , dip 就 会 为 你创 建 到 ISP 的 连 接 。之 后 ,你 就 可 以 使 用 所 有 的 Internet 服 务 了 ,例如 Netscape 或 者 ftp 。

dip 程 序 的 执 行 类 似 于 一 个 解 释 器 。 在 一 个 称 为 dip 脚 本 的 文 件 中 , 你 指 定一 些 命 令 , 这 些 命 令 将 登 录 到 ISP , 并 创 建 连 接 。 dip 程 序 之 后 读 取 这 个 文 件 中的 命 令 , 分 步 地 执 行 这 些 命 令 。 例 如 , 命 令 dial 会 通 过 你 的 调 制 解 调 器 拨 号 给你 的 ISP 。 dip 脚 本 的 文 件 扩 展 名 是 .dip , 一 旦 创 建 好 了 dip 脚 本 , 就 可 以 用 dip 命 令 调 用 这 个 文 件 。 也 可 以 使 用 -v 选 项 来 在 每 个 命 令 被 处 理 时 都 显 示 对 应 的 结

果 。 下 面 的 内 容 显 示 了 启 动 dip 程 序 的 最 基 本 的 语 法 。

$ dip -v scriptfile.dip

表 20-8 列 出 了 dip 脚 本 中 可 以 使 用 的 各 种 命 令 。 这 里 几 个 比 较 重 要 的 命 令是 port,speed,dial,get,modem 和 default 。 dip 还 使 用 一 些 特 殊 变 量 来 包 含 连 接信 息 , 例 如 $rmtip , 它 存 放 远 程 系 统 的 IP 地 址 。

根 据 各 个 Internet 服 务 供 应 商 的 登 录 过 程 的 不 同 , 脚 本 文 件 的 内 容 也 有 所不 同 , 各 个 ISP 的 登 录 提 示 符 、 电 话 号 码 和 连 接 字 符 串 都 可 能 不 同 , 但 是 有 两种 非 常 重 要 的 不 同 的 格 式 , 这 取 决 于 你 的 ISP 提 供 的 是 静 态 IP 地 址 还 是 动 态 IP 地 址 。 在 设 置 SLIP 连 接 之 前 , 要 首 先 确 定 你 的 ISP 提 供 的 是 何 种 IP 地 址 。

如 果 通 过 dip 脚 本 文 件 进 行 连 接 时 有 困 难 ,可 以 以 交 互 的 方 式 运 行 dip 程 序 , 对 应 的 选 项 参 数 是 -t。 在 这 种 方 式 下 , dip 程 序 产 生 自 己 的 shell , 这 个 shell 的提 示 符 是 D IP> 。 在 这 个 提 示 符 下 , 每 次 输 入 一 个 dip 命 令 。 如 果 另 外 再 加 上 -v 选 项 , dip 会 显 示 每 个 动 作 的 详 细 描 述 。 对 于 登 录 过 程 , 还 可 以 使 用 term 命 令 。这 会 进 入 到 终 端 模 式 , 这 种 模 式 下 ISP 会 直 接 提 示 你 输 入 用 户 标 识 符 和 口 令 。一 旦 获 得 了 连 接 , CTRL- ] 会 返 回 到 dip 的 shell 提 示 符 下 。 之 后 可 以 继 续 设 置路 由 和 模 式 。 term 模 式 下 , 会 准 确 地 看 到 远 程 ISP 发 送 给 你 的 登 录 提 示 和 口 令提 示 。 一 旦 完 成 了 连 接 过 程 , 当 然 会 更 易 于 使 用 dip 脚 本 。

# dip -t -v D IP>

如 果 你 需 要 剪 切 dip 连 接 , 可 以 使 用 带 有 -k 参 项 的 dip 命 令 。 此 外 还 可 以 使

用 -l 选 项 来 剪 切 某 个 特 定 的 连 接 。 dip 的 -k 选 项 会 剪 切 最 近 一 次 的 连 接 。 如 果 你

成 功 地 创 建 了 连 接 , 但 由 于 某 些 原 因 未 能 登 录 或 创 建 线 式 模 式 , 那 么 -k 选 项 是很 有 帮 助 的 。 这 个 连 接 将 保 持 激 活 状 态 , 直 到 用 -k 选 项 的 dip 命 令 剪 切 这 个 连接 。

$ dip -k

dip 脚 本 文 件 中 的 静 态 IP 地 址

静 态 IP 地 址 是 ISP 提 供 给 你 的 需 要 保 存 的 IP 地 址 。 你 的 计 算 机 正 是 由 这个 地 址 来 标 识 的 。 在 通 过 SLIP 连 接 到 ISP 的 远 程 计 算 机 时 , 你 是 通 过 这 个 静态 IP 地 址 来 标 识 你 的 系 统 的 ,在 通 过 静 态 IP 地 址 创 建 的 连 接 中 ,要 为 变 量 Plocal 赋 值 为 这 个 静 态 IP 地 址 , 并 为 变 量 $remote 赋 值 为 ISP 的 远 程 主 机 的 IP 地 址 。你 可 以 使 用 get 命 令 来 为 变 量 赋 值 。 在 每 次 dip 脚 本 的 开 始 处 进 行 这 些 变 量 的赋 值 。dip 程 序 会 从 这 些 变 量 中 查 找 各 自 的 IP 地 址 。一 旦 这 些 IP 地 址 被 设 置 好 , 你 就 可 以 继 续 登 录 过 程 的 命 令 。 在 表 20-9 中 列 出 了 dip 程 序 承 认 的 各 种 变 量 。

get $local static-IP-address

get $remote remote-IP-address

dip 脚 本

下 面 是 一 个 使 用 静 态 地 址 的 dip 脚 本 文 件 的 例 子 , 这 个 例 子 可 以 在 dip 命 令的 联 机 手 册 中 找 到 。 这 个 脚 本 文 件 的 开 始 部 分 是 一 系 列 设 置 调 制 解 调 器 的 命 令 。首 先 , 要 判 断 调 制 解 调 器 对 应 的 设 备 。 COM1 、 COM2 、 COM 3 、 和 COM4 端

口 对 应 的 设 备 文 件 分 别 是 / dev / cua0 ,/ dev / cua1 ,/ dev / cua2 和 / dev / cua3 。 注 意 设 备 文 件 是 从 0 开始的,因此 COM4 对 应 于 设 备 文 件 / de v/ cua3 。调 制 解 调 器 的 速 度 被 设 置 为 S7600 , 这 是 标 准 的 V128 调 制 解 调 器 的 设 置 。 init 命 令 指 定 调 制 解 调 器 的 初 始 化 字 符 串 。 在 此 处 要 输 入 针 对 调 制 解 调 器 特 定 的 代码 。 reset 命 令 接 收 这 个 字 符 串 并 通 过 这 个 字 符 串 来 初 始 化 调 制 解 调 器 。

#For a static IP address assign your system's IP address to the variable

$local

get $local 199.35.209.72

#For a static IP address assign the remote system's IP address to the variable

$remote

get $remote 163.179.4.22

#Set the netmask to 255.255.255.0 netmask 255.255.255.0

#Set port and speed.

port cua3 speed 57600

init AT&F2V1M0

reset

# The Standard errlvl values: #0-OK

#1-CONNECT #2-ERROR #3-BUSY

#4-NO CARRIER

#5-NO DIALTONEwait OK 2

if $errlvl !=0 goto modem_trouble dial 555-8888

if $errlvl !=1 goto modem_trouble #Connection made,now login to the system. wait ogin:20

if $errlvl!=0 goto error

send mylogin \ n wait ord:20

if $errlvl!=0 goto error send mylogin \ n

# W e are now logged in. wait CONNECT 15

if $errlvl!=0 goto error

#Set up the SLIP operating parameters. get $mtu 296

#Sets up SLIP connection as default route.

default mode CSLIP

print You are now connected to $locip as $rmtip goto exit

modem_trouble:

print Trouble occurred with the modem... error:

print CONNECT FAILED to $remote quit 1

exit:

exit

下 一 步 , 静 态 的 IP 地 址 和 远 程 主 机 的 IP 地 址 就 分 别 赋 值 给 变 量 $local 和

$remote 。 实 际 的 登 录 过 程 在 此 处 开 始 。 dial 命 令 拨 指 定 的 号 码 。 如 果 拨 号 过 程失 败 , 会 返 回 错 误 信 息 给 $errlvl 变 量 。 对 这 个 变 量 的 值 进 行 检 查 的 工 作 放 在 dial 命 令 之 后 , 从 而 实 际 出 现 错 误 时 的 处 理 。 wait 命 令 等 待 连 接 字 符 串 , 这 部 分 内容 可 能 会 随 ISP 的 不 同 而 有 所 不 同 。 对 有 的 ISP , 可 能 是 单 词 CONNEC T ; 有的 可 能 是 波 特 率 , 例 如 ST600 , wait 会 一 直 等 待 远 程 主 机 发 送 过 来 的 字 符 串 的出 现 。 在 连 接 字 符 串 后 面 的 数 字 是 要 等 待 的 时 间 , 单 位 是 秒 。 如 果 超 过 这 个 时间 , wait 命 令 会 退 出 , 而 不 是 无 限 地 继 续 等 待 。 同 样 , 再 做 一 次 变 量 $errlvl 的检 查 , 以 查 看 是 否 出 现 了 错 误 。 一 定 要 确 保 知 道 这 个 连 接 字 符 串 , 如 果 不 知 道 , 则 询 问 ISP , 或 者 尝 试 使 用 终 端 模 式 来 交 互 地 进 行 登 录 并 查 看 远 程 主 机 发 送 给

你 的 内 容 。 作 为 对 连 接 字 符 串 的 响 应 , 你 可 以 发 送 一 个 回 车 。 回 车 符 的 代 码 是

\ n 。 对 有 些 远 程 主 机 , 你 还 要 使 用 DOS 版 本 的 回 车 符 , 它 是 由 \ r\ n 两 个 字符 来 表 示 的 。

下 一 个 wait 命 令 会 等 待 远 程 主 机 发 送 给 你 登 录 提 示 符 。 你 只 需 要 提 示 符 的

后 面 部 分 ,而 不 是 全 部 的 单 词 。通 常 ,这 个 登 录 提 示 符 是 login: ,你 只 要 指 定 ogin: 就 行 了 。 在 接 收 登 录 提 示 符 之 后 , send 命 令 会 发 送 用 户 的 登 录 名 称 给 远 程 主 机 。必 须 在 登 录 名 称 的 后 面 加 上 回 车 符 , 例 如 : mylogin \ n 。 有 些 ISP 要 求 给 出 完整 的 登 录 名 称 。 下 一 个 wait 命 令 会 等 待 发 送 来 的 口 令 提 示 符 , 它 通 常 是password , 而 你 只 需 要 后 面 的 几 个 字 符 , word :。 之 后 , 你 通 过 send 命 令 发 送你 的 口 令 , 在 口 令 后 面 不 要 忘 记 加 上 回 车 符 , \ n 。

print 命 令 可 以 显 示 出 远 程 主 机 的 地 址 。 现 在 就 可 以 配 置 连 接 , 设 置 路 由 及连 接 类 型 。 default 命 令 会 使 当 前 这 个 连 接 成 为 你 的 缺 省 路 由 。 mode 命 令 会 判断 连 接 的 类 型 ,这 取 决 于 你 的 ISP 为 你 提 供 的 连 接 类 型 。你 可 能 使 用 标 准 的 SLIP 连 接 , 它 用 CSLIP 来 表 示 , 也 可 能 使 用 压 缩 的 SLIP 连 接 , 它 用 CSLIP 来 表 示 。在 mode 命 令 中 使 用 适 当 的 类 型 , 来 创 建 TC P / IP 连 接 。

dip 的 动 态 IP 地 址

动 态 IP 地 址 是 你 的 ISP 在 你 连 接 时 为 你 提 供 的 一 个 IP 地 址 。 ISP 保 存 一个 IP 地 址 池 , 在 用 户 进 行 连 接 的 时 候 为 用 户 分 配 。 这 意 味 着 , 在 你 每 次 进 行 连接 的 时 候 , 这 个 IP 地 址 都 可 能 是 不 同 的 , 你 不 可 能 事 先 就 知 道 你 的 IP 地 址 。作 为 连 接 过 程 的 一 部 分 , 你 的 ISP 会 发 送 给 你 这 个 IP 地 址 , 之 后 你 可 以 找 到 这

个 地 址 , 并 使 用 这 个 地 址 作 为 你 的 本 地 的 IP 地 址 。

在 你 已 经 与 ISP 建 立 连 接 并 且 已 经 登 录 , ISP 会 向 你 的 系 统 发 送 你 的 IP 地址 。 这 时 必 须 获 取 这 个 地 址 , 并 将 变 量 中 local 赋 值 与 这 个 地 址 , 带 有 remote 选 项 的 get 命 令 会 为 从 远 程 主 机 得 来 的 变 量 赋 值 , 在 本 例 子 中 则 为 你 要 连 接 的ISP 的 远 程 主 机 。 在 你 发 送 口 令 给 远 程 主 机 之 后 , 而 在 设 置 缺 省 路 由 和 模 式 之前 , 需 要 输 入 下 面 的 get 命 令 , 首 先 , 获 取 本 地 主 机 的 IP 地 址 , 之 后 是 远 程 系统 的 IP 地 址 。

get $local remote get $local remote

在 这 些 命 令 的 后 面 还 可 以 加 入 过 时 数 字 , 以 防 止 远 程 系 统 没 有 发 送 的 情 况 。下 面 的 例 子 显 示 了 在 dip 脚 本 文 件 中 远 程 和 本 地 get 命 令 应 处 的 位 置 。

# We are now logged in. wait CONNECT 15

if $errlv1 !=0 goto error

# get the dynamically provided IP address for the remote system get $remote remote

# get the dynamically provided IP address assigned for the local system,your system

get $local remote

# Set up the SLIP operating parameters. get $mtu 1500

# Sets up SLIP connection as default route. default

通 过 Netcfg 程 序 , 你 可 以 更 方 便 更 简 单 地 配 置 dip 脚 本 。 netcfg 窗 口 的 左上 角 框 中 显 示 了 系 统 上 所 有 的 网 络 接 口 。 对 SLIP 连 接 , 你 可 以 增 加 一 个 新 的接 口 , 并 选 择 SLIP 类 型 。 有 三 种 选 择 : Ethernet,SLIP 和 PPP 。 需 要 为 接 口 命名 , SLIP 接 口 名 称 是 sl 后 接 一 个 数 字 , 由 0 开 始 , 例 如 sl0 。 可 以 通 过 dip 程序 来 配 置 PPP 连 接 , 但 通 过 在 前 面 讲 述 的 pppd 程 序 来 配 置 会 更 可 靠 。

命 名 接 口 之 后 , 就 会 出 现 一 个 窗 口 , 里 面 列 出 了 dip 脚 本 要 使 用 的 各 种 值 , 包 括 电 话 号 码 、 IP 地 址 、 口 令 和 登 录 用 户 名 称 。 在 各 个 域 中 输 入 相 应 的 值 , 之后 按 下 OK 按 钮 , 这 些 值 被 一 个 专 门 的 dip 脚 本 使 用 , 这 个 脚 本 文 件 是 / etc / dip-scrip t。 激 活 SLIP 接 口 的 时 候 , 会 自 动 执 行 这 个 文 件 。 如 果 有 必 要 , 你 还可 以 编 辑 文 件 / etc / dip-scrip t。 你 还 可 以 拷 贝 , 修 改 这 个 文 件 。

文 件 / etc / dip-script 是 专 门 用 于 静 态 IP 地 址 的 。如 果 你 的 ISP 提 供 动 态 IP 地 址 , 必 须 修 改 文 件 / etc / dip-scrip t。 必 须 删 除 这 个 文 件 顶 部 的 两 个 get local 和 get remote 项 ,并 输 入 get $local 和 get $remote ,这 两 个 命 令 要 放 在 get mtu 命 令 之 前 。

wait @@@connect-string@@ @ 30 if $errlv1 !=0 goto error

loggedin:

# Lines for dynamic addressing get $local remote

get $remote remote

get $mtu @ @ @ m tu @ @ @ default

done:

print CONNECTED to $remote with address $rmtip

提 供 SLIP 接 入 服 务 : diplogin

通 过 Linux 操 作 系 统 , 你 不 仅 可 以 通 过 SLIP 与 远 程 主 机 进 行 连 接 , 而 且 远程 主 机 还 可 以 通 过 SLIP 与 你 的 系 统 进 行 连 接 。 其 它 的 主 机 可 以 拨 号 进 入 你 的系 统 , 并 创 建 一 个 SLIP 连 接 。 如 果 为 远 程 主 机 上 的 用 户 在 本 地 创 建 一 个 帐 号 , 则 该 用 户 就 能 够 拨 号 进 入 SLIP 连 接 并 以 对 应 的 帐 号 登 录 。 这 种 远 程 拨 号 SLIP 连 接 可 以 通 过 带 有 -i 选 项 的 dip 程 序 来 管 理 , 这 种 选 项 将 使 dip 进 入 拨 入 模 式 , 从 而 接 收 进 入 的 连 接 。 这 种 方 式 的 dip 启 动 , 也 可 以 通 过 diplogin 程 序 来 完 成 , 它 是 dip 文 件 的 一 个 符 号 链 接 。 在 拨 入 模 式 下 , dip 会 提 示 远 程 用 户 输 入 用 户 ID 和 口 令 , 从 而 创 建 SLIP 连 接 。

首 先 , 需 要 在 本 地 主 机 为 远 程 用 户 创 建 一 个 用 户 帐 号 , 可 以 通 过 Lisa 实 用工 具 , usercfg 或 adduser 命 令 创 建 用 户 帐 号 , 如 果 想 使 系 统 更 加 安 全 , 可 以将 用 户 的 主 目 录 设 置 为 一 个 特 殊 的 你 更 容 易 控 制 的 目 录 , 例 如 / tem 。 在 下 面的 内 容 是 / etc / passwd 文 件 中 用 户 robert 的 记 录 项 , 该 用 户 的 口 令 是 starg , 主 目 录 是 / tm p 。

robert:starq:204:12:UUNET :/ tmp :/ usr / sbin / diplogin

在 该 记 录 项 中 最 后 一 个 域 将 指 定 用 户 的 登 录 shell , 在 本 例 子 中 , robert 用户 的 shell 是 diplogin , 它 是 dip 程 序 的 符 号 链 接 。 dip 将 在 / etc / diphosts 文件 中 查 找 用 户 名 , 从 而 获 取 登 录 仅 配 置 信 息 。

  • 旦 创 建 了 用 户 帐 号 , 下 一 步 就 要 配 置 它 的 SLIP 连 接 。 这 些 配 置 信 息 存 放在 / etc / diphosts 文 件 中 , 在 该 文 件 中 , 每 个 记 录 项 由 7 个 域 组 成 , 各 个 域 之间 用 冒 号 分 隔 。 第 一 个 域 是 用 户 ID , 下 一 个 是 口 令 。 第 三 个 域 是 主 机 名 或 IP 地 址 ( 远 程 主 机 的 地 址 ), 后 面 一 个 域 是 本 地 主 机 的 主 机 名 或 者 IP 地 址 , 第 五 个域 是 网 络 掩 码 , 第 六 个 域 是 注 释 的 信 息 域 , 最 后 一 个 域 是 该 用 户 的 连 接 参 数 , 例 如 协 议 (CSLIP 或 者 SLIP )以 及 MTU 值 。

如 果 指 定 了 第 二 个 辅 助 口 令 , diplogin 程 序 会 在 标 准 用 户 登 录 过 程 前 提 示 输入 该 口 令 。

总 结 : 网 络 管 理

TC P / IP 网 络 是 通 过 一 组 工 具 来 配 置 和 管 理 的 ,例 如 netcfg 、ifconfig 、route 和 netstat。 ifconfig 工 具 在 超 级 用 户 状 态 下 运 行 , 允 许 你 完 全 地 配 置 系 统 上 的网 络 接 口 , 新 增 网 络 接 口 , 以 及 修 改 网 络 接 口 配 置 信 息 。 相 应 的 修 改 会 自 动 放到 对 应 的 配 置 文 件 记 录 项 中 。 在 表 20-2 中 列 出 了 各 种 网 络 配 置 文 件 。 ifconfig 命 令 和 route 命 令 是 较 低 层 的 程 序 , 要 有 效 地 使 用 它 们 需 要 你 对 网 络 配 置 有 效深 的 了 解 。 netstat 命 令 为 你 提 供 了 有 关 当 前 网 络 连 接 状 态 的 各 种 信 息 。

如 果 系 统 上 没 有 直 接 连 接 网 络 上 的 硬 件 , 例 如 以 太 网 网 卡 , 而 你 要 通 过 调制 解 调 器 拨 入 到 远 程 系 统 上 , 则 需 要 配 置 SLIP 或 PPP 连 接 。 如 果 你 在 使 用Internet 服 务 供 应 商 提 供 的 服 务 , 则 必 须 配 置 这 种 连 接 。 通 过 dip 程 序 和 dip 脚本 文 件 , 可 以 容 易 方 便 地 设 置 SLIP 连 接 。 PPP 连 接 使 用 chat 脚 本 和 一 个 选 项 。PPP 是 一 个 新 的 协 议 , 目 前 正 在 越 来 越 广 泛 地 应 用 。

表 20-1TCP / IP 协 议

协 议 描述

传 输

TCP 传 输 控 制 协 议 ; 系 统 之 间 进 行 直 接 通 信

UDP 用 户 数 据 报 协 议路 由

ICMP Internet 控 制 报 文 协 议 ; IP 协 议 使 用 的 状 态 报 文

IP Internet 协 议 ; 传 输 数 据

R IP 路 由 信 息 协 议 ; 决 定 路 由

OSPF 开 放 式 首 次 最 短 路 径 , 决 定 路 由网 络 地 址

ARP 地 址 解 析 协 议 ; 决 定 系 统 唯 一 的 IP 地址

DNS 域 名 服 务 ; 将 主 机 名 解 析 为 IP 地 址

RARP 反 向 地 址 解 析 协 议 ; 决 定 系 统 的 物 理 地 址用 户 服 务

FTP 文 件 传 输 协 议 ; 在 不 同 主 机 间 通 过 TCP 进 行 文 件 的 传 输TFTP 缩 小 文 件 传 输 协 议 ; 通 过 UDP 在 不 同 系 统 间 传 输 文 件TELNET 远 程 登 录

SMTP 简 单 邮 件 传 输 协 议 ; 在 不 同 主 机 之 间 传 输 电 子 邮 件网 关

续 表

EGP 外 部 网 关 协 议 ; 为 外 部 网 络 提 供 路 由 信 息

G G P 网 关 到 网 关 协 议 ; 在 因 特 网 网 关 之 间 提 供 路 由 信 息

IGP 内 部 网 关 协 议网 络 服 务

NFS 网 络 文 件 系 统 ; 允 许 加 载 远 程 系 统 上 的 文 件 系 统

N IS 网 络 信 息 服 务 ; 在 网 络 在 维 护 用 户 帐 号 信 息

RPC 远 程 过 程 调 用 ; 允 许 程 序 调 用 远 程 主 机 上 提 供 的 服 务 函 数

BOOTP 启 动 协 议 ; 通 过 网 络 上 提 供 启 动 信 息 服 务 的 主 机 启 动 本 地主机

SNMP 简 单 网 络 管 理 协 议 ; 提 供 TCP / IP 配 置 上 的 状 态 报 文

表 20-2TCP / IP 配 置 地 址 与 文 件

地 址 描 述

主 机 地 址 系 统 的 IP 地 址 ; 由 此 地 址 来 唯 一 地 标 识 一 台主 机

网 络 地 址 网 络 的 IP 地 址 (IP 地 址 中 网 络 部 分 )

广 播 地 址 一 次 性 向 网 络 中 所 有 主 机 发 送 信 息 所 对 应 的

IP 地 址

网 关 地 址 网 络 中 网 关 对 应 的 IP 地 址域 名 服 务 器 地 址

续 表

网 络 掩 码文 件

/ etc / hosts 将 IP 地 址 与 主 机 地 址 相 联 系

/ etc / networks 将 域 名 与 网 络 地 址 相 联 系

/ etc / rc.d / init.d / inet 启 动 时 用 于 配 置 以 太 网 接 口 的 初 始 化 文 件

/ etc / host.conf 解 析 地 址 选 项

/ etc / resolver.conf 列 出 域 名 服 务 器 的 IP 地 址

/ etc / protocols 列 出 系 统 中 存 在 的 协 议

/ etc / services 列 出 系 统 中 提 供 的 服 务

/ etc / hostnome 主 机 的 主 机 名 称

表 20-3 网 络 管 理 程 序

程 序 描 述

netcfg 超 级 用 户 桌 面 上 的 用 于 配 置 网 络 接 口 的 程 序

ifconfig 配 置 网 络 接 口

route 配 置 路 由 信 息

ping 检 查 是 否 可 以 与 另 一 台 主 机 进 行 通 信

netstat 检 查 当 前 网 络 状 态

hostname 显 示 主 机 名 称

dip 为 远 程 连 接 建 立 SLIP 连 接

pppd 创 建 调 制 解 调 器 的 PPP 连 接

表 20-4ifconfig 选 项

选 项 描 述

interface 接 口 的 名 称 ; 通 常 位 于 / dev 目 录 下 , 例 如

/ dev / eth0

aftype 用 于 解 析 协 议 地 址 的 地 址 家 族 ; 缺 省 的 是

inet

up 激 活 某 个 网 络 接 口

down 关 闭 某 个 网 络 接 口

-arp 打 开 或 关 闭 ARP ; 在 前 面 加 - 号 表 示 关 闭

-trailers 打 开 或 关 闭 以 太 网 帧 中 的 跟 踪 位

-allmulti 打 开 或 关 闭 混 合 模 式 ; 该 选 项 用 于 网 络 监 听

metric n 路 由 成 本 (目 前 还 不 支 持 )

m tu n 每 次 传 输 的 最 大 字 节 数

dstaddr address 点 对 点 连 接 的 目 标 IP 地址

netmask address IP 网 络 掩 码

broadcast address 广 播 地 址

point-to-point address 接 口 的 点 对 点 模 式

hw 设 置 硬 件 地 址

表 20-5netstat 选 项

选 项 描 述

-a 显 示 所 有 Internet 套 接 字 的 信 息

-I 显 示 所 有 网 络 设 备 的 统 计 数 字

-c 不 断 地 显 示 当 前 网 络 状 态 , 直 到 该 程 序 被 中 断

-n 显 示 IP 地 址

-o 显 示 定 时 的 状 态 , 过 期 时 间

-r 显 示 核 心 路 由 表 信 息

-t 显 示 TCP 套 接 字 的 信 息

-u 显 示 UDP 套 接 字 的 信 息

-v 显 示 版 本 信 息

-w 显 示 原 始 套 接 字 信 息

-x 显 示 Unix 域 套 接 字 信 息

表 20-6chat 选 项 及 特 殊 字 符

选 项 描 述

-f floname 在 chat 脚 本 中 执 行 由 filename 指 定 的 文 件 -l

lockfile 通 过 lockfile 创 建 UUCP 风 格 的 文 件

-t num 设 置 为 num 秒 的 时 间 期 限

-v 所 有 输 出 到 / log / messages 文 件 中 的 chat 动 作的 描 述 ;

特 殊 字 符

续 表

BREAK 向 调 制 解 调 器 发 送 中 断

'' 发 送 空 字 符 串

\ b 删 除 符

\ c 在 响 应 字 符 串 后 不 输 出 换 行 符

\ d 使 chat 等 待 一 秒 钟

\ k 发 送 中 断

\ n 发 送 换 行 符

\ N 发 送 空 字 符

\ p 暂 停 1 / 10 秒

\ q 字 符 串 不 输 出 到 syslog 文 件 中

\ r 发 送 或 等 待 一 个 换 行 符

\ s 发 送 或 等 待 一 个 空 格 符

\ t 发 送 或 等 待 一 个 制 表 符

\ \ 发 送 或 等 待 一 个 \ 符 号

\ num 指 定 八 进 制 的 字 符

^C 指 定 一 个 控 制 字 符

表 20-7pppd 选 项

选 项 描述

设 备 名 使 用 指 定 的 设 备 ; 如 果 设 备 名 没 有 在 前 面 出 现

/ de v, pppd 会 为 其 自 动 加 上

续 表

speed num 设 置 调 制 解 调 器 速 度 ( 波 特 率 )

asgncamp map 设 置 异 步 字 符 映 射

auth 设 置 远 程 主 机 认 证

connect 连 接 选 项 设 置 连 接 选 项 ,在 Linux 中 ,此 处 一 般 是 cha t, 它 完 成 正 的 连 接

crtscts 使 用 硬 件 流 控 制

xonxof 使 用 软 件 流 控 制

defaultroute 设 置 缺 省 路 由

disconnect Linux-command 在 pppd 后 运 行 指 定 的 命 令

escape c,c,... 使 指 定 的 字 符 在 传 输 时 被 忽 略

file filename 从 指 定 的 文 件 中 读 取 pppd 选 项

lock 在 串 行 设 备 上 使 用 UUCP 风 格 的 加 锁

mru num 设 置 最 大 接 收 单 元

netmask mask 指定 PPP 网 络 接 口 掩 码

noipdefault 在 ISP 提 供 动 态 IP 地 址 时 使 用 。

Passive 使 pppd 等 待 有 效 的 连 接 , 而 不 是 在 不 能 立 即创 建 连 接 时 退 出 来

Silent pppd 等 待 远 程 主 机 创 建 连 接

表 20-8dip 选 项 及 命 令

选 项 描 述

-v 冗 长 的 模 式 ; 显 示 所 有 动 作 的 描 述

-t 测 试 模 式 ; 将 使 dip 处 于 交 互 的 状 态 下 , 对 应 的

shell 提 示 符 是 D IP >

-p mode 设 置 模 式 , 线 协 议 为 CSLIP 或 SLIP

-a 提 示 用 户 输 入 用 户 名 和 口 令

-I 充 当 拨 入 服 务 器

-k 杀 掉 dip 进 程

-l tly-line 指 定 某 条 线 路 被 杀 掉 ( 需 要 与 -k 选 项 配 合 使 用 )

-m mtu 设 置 最 大 传 输 单 元 (MTU ), 缺 省 值 是 296 chatkey keyboard code 增 加 关 键 字 和 错 误 级 别 代 码

config args 直 接 配 置 SLIP 接 口

databito bits 连 接 时 使 用 的 位 数 ( 缺 省 值 是 8)

default 设 置 缺 省 路 由

dial telephone number 指 定 远 程 电 话 号 码

echo on / off 打 开 或 关 闭 回 显 ; 如 果 打 开 回 显 , 则 dip 会 将 所有 发 送 和 接 收 的 数 据 显 示 出 来

flush 删 掉 调 制 解 调 器 中 未 读 的 响 应

get $var value 设 置 变 量 $var 的 值 为 value

get $var 设 置 变 量 $var 的 值 为 从 连 接 中 接 收 的 下 一 个 值

续 表

get $var ask 提 示 用 户 输 入 变 量 的 值

goto label 在 dip 脚 本 中 跳 转 到 label 行

help 列 出 dip 命 令

if $var operator number 测 试 变 量 的 值 ; 数 字 number 必 须 是 一 个 整 数

init string 为 调 制 解 调 器 初 始 化 字 符 串

model SLIP / CSLIP 设 置 连 接 使 用 的 协 议 模 式 并 将 dip 放 入 守 护 进 程

的 运 行 状 态

modem type 设 置 调 制 解 调 器 类 型 : HAYES

netmask 为 dip 使 用 的 路 由 设 置 网 络 掩 码

parity E / o / N 设 置 奇 偶 校 验 为 偶 / 奇 / 无

password 提 示 用 户 输 入 口 令

print 显 示 信 息

port dev 设 置 dip 将 使 用 的 端 口

quit 退 出 dip 程 序

reset 向 调 制 解 调 器 发 送 init 字 符 串

send text 向 远 程 主 机 发 送 text 字 符 串

sleep number 睡 眠 number 秒

speed number 为 连 接 设 置 波 特 率 : 2400.9600.38400.56700 stopbit bits 设 置 停 止 位 的 个 数

timeout number 设 置 过 时 秒 数

续 表

term 将 dip 置 为 终 端 仿 真 模 式

wait word numberdip 等 待 指 定 秒 数 内 出 现 指 定 的 字 符 串 接 收

表 20-9dip 变量

变 量 描 述

$loca1 本 地 的 主 机 名

$locip 本 地 主 机 的 IP 地 址

$remote 远 程 系 统 的 主 机 名

$rmtip 远 程 系 统 的 IP 地 址

$mtu 最 大 传 输 单 元

$modem 使 用 的 调 制 解 调 器 类 型 ( 只 读 的 )

$portdip 使 用 的 串 行 设 备 名 称 ( 只 读 的 )

$speed 串 行 设 备 的 传 输 速 度 ( 只 读 的 )

$errlvl 包 含 上 一 个 命 令 返 回 的 结 果 码 ; 通 过 它 可 以 测 试 命 令运 行 的 结 果 ; 0 表 示 成 功 ( 只 读 的 )