UNIX Style Proxy Server-----中 小 型 办 公 室 网 路 的 Internet解 决 方 案 ( 下 )

本 文 作 者 : 黄 力 尧


上 一 期 专 栏 我 们 已 经 讲 解 完 成 内 部 网 路 的 TCP/IP网 路 环 境 设 定 , 本 期 我 们 将 继 续 讲 解 Proxy Server- UNIX主 机 端 的 TCP/IP网 路 设 定 。

UNIX主 机 端 网 路 设 定

假 设 您 已 经 向 HiNet申 请 专 线 , 决 定 使 用 finny作 为 您 公 司 以 及 主 机 的 名 称 , 申 请 的 结 果 得 到 finny. hinet.net这 个 主 机 名 称 ( 你 也 可 以 依 您 单 位 的 性 质 选 择 finny.com.tw,finny.org.tw之 类 的 , 如 果 你 不 喜 欢 主 机 名 称 挂 在 HiNet下 ) 与 168.95.109.222这 个 IP Address.。

现 在 我 们 这 台 Proxy Server共 使 用 两 种 网 路 设 备 : 数 据 机 与 网 路 卡 。 其 中 数 据 机 用 来 连 到 Internet, 而 网 路 卡 用 来 连 区 域 网 路 上 的 工 作 站 。 设 定 网 路 组 态 时 以 网 路 卡 为 主 , 因 为 数 据 机 拨 接 / 固 接 的 连 线 部 份 可 以 藉 由 dip或 是 其 他 的 连 线 程 式 将 Internet上 的 IP位 址 ( 168.95.109.222) 配 给 到 数 据 机 上 , 并 且 设 为 Default Route, 网 路 卡 连 结 的 区 域 网 路 工 作 站 便 可 以 藉 由 Proxy Server上 的 数 据 机 连 上 Internet了 。 以 下 介 绍 在 此 种 情 况 下 的 网 路 设 定 方 式 :

在 您 的 Linux主 控 台 输 入 netconfig.tty, 依 次 输 入 以 下 资 讯 : ( 在 此 使 用 netconfig.tty是 为 了 杂 志 版 面 说 明 方 便 , 您 可 以 使 用 netconfig会 有 全 萤 幕 的 画 面 , 较 容 易 使 用 。 在 此 范 例 中 的 中 文 部 份 为 笔 者 的 注 解 )

netconfig.tty

NETWORK CONFIGURATION

Now we will attempt to configure your mail and TCP/IP. This process

probably won’ t work on all possible network configurations, but should

give you a good start. You will be able to reconfigure your system at any

time by typing:

netconfig

First, we’ ll need the name you’ d like to give your host. Only the base hostname is needed right now. (not the domain)

Enter hostname: finny ( 输 入 主 机 名 称 )

Now, we need the domain name. Do not supply a leading ‘ .’

Enter domain name for finny: hinet.net ( 输 入 领 域 名 称 )

If you only plan to use TCP/IP through loopback, then your IP address will be 127.0.0.1 and we can skip a lot of the following questions.

Do you plan to ONLY use loopback ([y]es, [n]o)? n ( 答 n, 表 示 要 使 用 实 际

的 网 路 功 能 )

Enter your IP address for the local machine. Example: 111.112.113.114

Enter IP address for finny (aaa.bbb.ccc.ddd): 10.1.1.1 ( 我 们 将 这 台 机 器 给 定 为 10.1.1.1)

Enter your gateway address, such as 111.112.113.1

If you don’ t have a gateway, you can edit /etc/rc.d/rc.inet1 later,

or you can probably get away with entering your own IP address here.

Enter gateway address (aaa.bbb.ccc.ddd): 10.1.1.1 ( 本 身 即 为 通 讯 主 机 , 故 再 输 入 一 次 自 己 的 位 址 )

Enter your netmask. This will generally look something

like this: 255.255.255.0

Enter netmask (aaa.bbb.ccc.ddd): 255.0.0.0 ( 10.1.1.1 为 Class A 网 路 , 故 输 入 255.0.0.0)

Setting up TCP/IP...

Creating /etc/rc.d/rc.inet1...

Creating /etc/networks...

Creating /etc/hosts...

Creating /var/lib/elm/elm.rc...

Will you be accessing a nameserver ([y]es, [n]o)? y ( 答 y, 设 定 DNS)

Here is your current IP address, full hostname, and base hostname:

10.1.1.1 finny.hinet.net finny

Please give the IP address of the name server to use.

You can add more Domain Name Servers by editing /etc/resolv.conf.

Name Server for domain hinet.net (aaa.bbb.ccc.ddd): 168.95.192.1

( 输 入 HiNet 的 DNS)

现 在 在 你 的 UNIX主 机 上 有 了 两 个 网 路 设 备 : 连 接 区 域 网 路 的 EtherNet网 路 卡 ( eth0) 以 及 通 到 HiNet( Internet) 的 数 据 机 ( ppp0或 是 sl0, 看 你 用 PPP还 是 用 SLIP连 到 HiNet) 。 UNIX主 机 连 接 了 这 两 个 设 备 , 并 且 将 成 为 一 台 Proxy Server, 使 eth0所 连 接 的 设 备 能 透 过 ppp0或 是 sl0连 接 到 Internet。

输 入 ifconfig, 看 看 是 否 能 看 到 类 似 的 画 面 ; ( 您 必 须 先 拨 接 或 是 固 接 上 Internet)

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:3584 Metric:1

RX packets:58 errors:0 dropped:0 overruns:0

TX packets:58 errors:0 dropped:0 overruns:0

eth0 Link encap:10Mbps Ethernet HWaddr 90:09:EC:00:02:21

inet addr:10.1.1.1 Bcast:10.255.255.255 Mask:255.0.0.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:1470 errors:0 dropped:0 overruns:0

TX packets:863 errors:0 dropped:0 overruns:0

Interrupt:5 Base address:0x340

sl0 Link encap:Serial Line IP

inet addr:168.95.109.222 P-t-P:168.95.104.223 Mask:255.255.0.0

UP POINTOPOINT RUNNING MTU:512 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0

TX packets:0 errors:0 dropped:0 overruns:0

在 这 里 我 们 可 以 看 到 , 除 了 lo这 个 Loopback 设 备 和 实 际 的 网 路 连 线 无 关 以 外 , 我 们 的 Proxy主 机 上 有 eth0( EtherNet网 路 卡 ) 连 上 区 域 网 路 , sl0( 以 数 据 机 和 HiNet固 接 的 SLIP连 线 ) 连 上 Internet, 而 整 台 主 机 就 在 这 两 个 介 面 中 作 桥 梁 , 负 责 衔 接 内 外 部 网 路 的 交 通 。

图 一 网 路 架 构 图

接 着 输 入 route不 加 任 何 参 数 可 以 看 到 目 前 核 心 封 包 绕 路 表 的 状 况 , 可 以 发 现 EtherNet网 路 为 LocalNet, 而 透 过 168.95.104.223作 为 Gateway 的 SLIP连 线 也 已 经 成 为 default route了 。

route

Kernel routing table

Destination Gateway Genmask Flags MSS Window Use Iface

168.95.104.223 * 255.255.255.255 UH 512 0 0 sl0

loopback * 255.0.0.0 U 3584 0 4 lo

localnet * 255.0.0.0 U 1500 0 2 eth0

default 168.95.104.223 * UG 512 0 2 sl0

default * * U 1500 0 0 eth0

上 一 期 专 栏 我 们 已 经 讲 解 完 成 内 部 网 路 的 TCP/IP网 路 环 境 设 定 , 本 期 我 们 将 继 续 讲 解 Proxy Server- UNIX主 机 端 的 TCP/IP网 路 设 定 。

UNIX主 机 端 网 路 设 定

假 设 您 已 经 向 HiNet申 请 专 线 , 决 定 使 用 finny作 为 您 公 司 以 及 主 机 的 名 称 , 申 请 的 结 果 得 到 finny.

hinet.net这 个 主 机 名 称 ( 你 也 可 以 依 您 单 位 的 性 质 选 择 finny.com.tw,finny.org.tw之 类 的 , 如 果 你 不 喜 欢 主 机 名 称 挂 在 HiNet下 ) 与 168.95.109.222这 个 IP Address.。

现 在 我 们 这 台 Proxy Server共 使 用 两 种 网 路 设 备 : 数 据 机 与 网 路 卡 。 其 中 数 据 机 用 来 连 到 Internet, 而 网 路 卡 用 来 连 区 域 网 路 上 的 工 作 站 。 设 定 网 路 组 态 时 以 网 路 卡 为 主 , 因 为 数 据 机 拨 接 / 固 接 的 连 线 部 份 可 以 藉 由 dip或 是 其 他 的 连 线 程 式 将 Internet上 的 IP位 址 ( 168.95.109.222) 配 给 到 数 据 机 上 , 并 且 设 为 Default Route, 网 路 卡 连 结 的 区 域 网 路 工 作 站 便 可 以 藉 由 Proxy Server上 的 数 据 机 连 上 Internet了 。

以 下 介 绍 在 此 种 情 况 下 的 网 路 设 定 方 式 :

在 您 的 Linux主 控 台 输 入 netconfig.tty, 依 次 输 入 以 下 资 讯 : ( 在 此 使 用 netconfig.tty是 为 了 杂 志 版 面 说 明 方 便 , 您 可 以 使 用 netconfig会 有 全 萤 幕 的 画 面 , 较 容 易 使 用 。 在 此 范 例 中 的 中 文 部 份 为 笔 者 的 注 解 )

现 在 在 你 的 UNIX主 机 上 有 了 两 个 网 路 设 备 : 连 接 区 域 网 路 的 EtherNet网 路 卡 ( eth0) 以 及 通 到 HiNet( Internet) 的 数 据 机 ( ppp0或 是 sl0, 看 你 用 PPP还 是 用 SLIP连 到 HiNet) 。 UNIX主 机 连 接 了 这 两 个 设 备 , 并 且 将 成 为 一 台 Proxy Server, 使 eth0所 连 接 的 设 备 能 透 过 ppp0或 是 sl0连 接 到 Internet。

输 入 ifconfig, 看 看 是 否 能 看 到 类 似 的 画 面 ; ( 您 必 须 先 拨 接 或 是 固 接 上 Internet)

在 这 里 我 们 可 以 看 到 , 除 了 lo这 个 Loopback 设 备 和 实 际 的 网 路 连 线 无 关 以 外 , 我 们 的 Proxy主 机 上 有 eth0( EtherNet网 路 卡 ) 连 上 区 域 网 路 , sl0( 以 数 据 机 和 HiNet固 接 的 SLIP连 线 ) 连 上 Internet, 而 整 台 主 机 就 在 这 两 个 介 面 中 作 桥 梁 , 负 责 衔 接 内 外 部 网 路 的 交 通 。

接 着 输 入 route不 加 任 何 参 数 可 以 看 到 目 前 核 心 封 包 绕 路 表 的 状 况 , 可 以 发 现 EtherNet网 路 为 LocalNet, 而 透 过 168.95.104.223作 为 Gateway 的 SLIP连 线 也 已 经 成 为 default route了 。

最 好 还 可 以 由 UNIX主 机 去 ping一 些 Internet 上 的 电 脑 , 确 认 连 线 已 经 成 功 了 。

设 定 Proxy Server以 及 各 工 作 站 使 用Proxy Server的 方 式

如 果 前 面 的 部 份 一 切 正 常 , 那 麽 您 的 Windows 95或 是 其 他 的 工 作 站 都 应 该 可 以 ping得 到 新 的 proxy主 机 并 且 可 以 连 线 了 吧 ! 现 在 , 针 对 各 工 作 站 的 各 种 Internet需 求 , 在 这 里 逐 项 教 导 您 如 何 去 使 用 这 台 Proxy Server。 示 范 的 工 作 站 软 体 环 境 如 下 :

喔 , 对 了 ! 在 您 让 各 位 工 作 站 的 用 户 连 上 Proxy Server之 前 , 记 得 先 帮 他 们 开 好 帐 号 喔 !

各 工 作 站 使 用 Proxy Server对 外 连 线 之 方 式

1.Telnet Proxy

在 以 前 使 用 PPP拨 号 连 线 的 时 候 , 要 连 到 哪 边 去 都 是 直 接 输 入 对 方 主 机 的 IP位 址 就 可 以 了 。 现 在 您 必 须 先 连 线 到 10.1.1.1, 也 就 是 您 Proxy Server 的 位 址 , 然 後 Log in, 再 使 用 UNIX下 的 telnet功 能 即 可 。 如 果 有 读 写 中 文 的 需 求 , 您 就 必 须 去 找 一 个 ctelnet.gz, 然 後 将 它 安 装 在 系 统 上 , 取 代 原 有 的 telnet才 能 使 中 文 输 入 正 常 动 作 。

2.FTP Proxy

同 第 一 项 的 做 法 , 先 telnet到 Proxy Server, 再 利 用 Proxy Server的 ftp指 令 去 抓 档 案 。 和 以 前 不 同 的 是 , 现 在 档 案 可 不 是 直 接 抓 到 自 己 电 脑 的 硬 碟 上 , 而 是 放 在 Proxy Server上 的 硬 碟 目 录 中 。 若 您 想 要 取 回 自 己 的 电 脑 , 比 较 慢 的 方 法 就 是 另 外 再 开 一 个 FTP Client到 Proxy Server然 後 再 取 回 档 案 。 但 是 现 在 有 个 更 快 的 办 法 , 像 Netterm或 是 Telix( 如 果 你 用 拨 接 或 是 序 列 电 缆 连 线 的 方 式 连 上 Proxy Server的 话 ) 这 种 具 有 ZModem传 输 功 能 的 终 端 机 模 拟 软 体 , 您 可 以 直 接 叫 Proxy Server 将 档 案 以 ZModem传 到 您 自 个 儿 的 硬 碟 上 。 使 用 语 法 如 下 :

其 中 档 案 名 称 可 以 配 合 *, ? 等 万 用 字 元 一 次 传 多 个 档 案 。 若 您 传 的 是 二 进 位 格 式 的 档 案 , 如 可 执 行 档 , 那 麽 尚 须 加 上 一 个 “ -b” 的 选 项 强 制 ZModem使 用 二 进 位 传 输 模 式 , 否 则 您 的 执 行 档 传 完 以 後 可 就 报 销 了 喔 ! 若 您 要 将 档 案 上 传 到 Proxy Server, 那 麽 只 要 在 UNIX下 输 入 “ rz” , Netterm 就 会 自 动 出 现 对 话 框 要 求 您 选 择 要 上 传 的 档 案 , 方 便 吧 ! 经 由 区 域 网 路 , 速 度 也 相 当 的 快 喔 ! 本 例 中 传 送 vmlinux这 个 Linux Kernel档 案 , 可 达 到 99328 CPS的 效 能 。 ZModem在 LAN上 比 起 以 往 一 般 用 在 “ Modem” 拨 接 连 线 的 1000-2000 CPS 是 不 是 快 多 了 呢 ? ( 如 图 二 )

3.Mail Proxy

和 平 常 使 用 单 机 的 PPP拨 接 方 式 不 同 , 使 用 Mail Proxy Server您 必 须 有 另 外 的 设 定 方 式 。 在 这 里 我 们 以 Eudora为 范 例 , 但 其 实 其 他 的 邮 件 软 体 亦 是 大 同 小 异 。

首 先 , 设 定 POP Account, 在 这 边 除 非 您 还 在 区 域 网 路 上 设 了 一 个 自 己 的 Domain Name Server, 否 则 必 须 以 下 列 的 格 式 来 设 定 。

若 原 来 的 POP3 Account为 finny@finnyhinet.net( finny.hinet.net对 内 部 网 路 来 说 , 位 址 为 10.1.1.1) 则 您 不 能 填 finny@finny.hinet.net , 因 为 您 内 部 网 路 没 有 Domain Name Server好 将 finny.hinet.net翻 成 10.1.1.1, 所 以 您 必 须 输 入 finny@10.1.1.1, 好 让 Eudora知 道 POP3 Server 在 10.1.1.1。 ( 如 图 叁 )

但 是 , 别 人 收 到 时 , 可 不 能 用 finny@10.1.1.1这 种 邮 件 地 址 , 因 为 对 於 Internet来 说 , finny.hinet.net的 位 址 为 168.95.109.222, 而 且 有 DNS的 翻 译 , 不 须 直 接 用 IP Address。 故 在 设 定 Eudora时 必 须 填 入 Return Address, 这 样 收 件 人 收 到 信 的 时 候 原 发 信 人 还 是 finny@finny.hinet.net , 这 样 就 不 会 造 成 混 淆 了 。 ( 请 读 者 特 别 注 意 图 四 中 POP Account与 Return Address两 个 项 目 的 差 别 )

注 意 : 若 您 的 Internet连 接 为 拨 接 式 而 非 固 接 式 , 那 麽 可 能 您 是 在 员 工 有 Internet需 求 时 才 会 开 启 至 Internet的 连 线 以 节 省 连 线 费 用 。 若 是 此 种 情 况 , 在 您 Down Internet Link之 前 请 先 用 ps指 令 来 check一 下 是 否 还 有 信 件 在 寄 送 中 。 ( 如 下 )

在 这 里 我 们 可 以 看 到 , 编 号 273的 Process正 在 尝 试 送 信 给 ms4.hinet.net的 主 机 , 若 是 您 这 时 将 Internet Connection给 砍 了 , 那 这 封 信 就 无 法 即 时 送 出 。 请 稍 等 一 下 , 等 到 所 有 sendmail的 行 程 都 已 经 消 失 了 再 结 束 Internet连 线 。

4. WWW浏 览 器

安 装 WWW Proxy软 体

    在 使 用 WWW Proxy之 前 , 必 须 先 安 装 上 WWW的 Proxy软 体 。 此 软 体 能 个 别 辨 认 48位 元 的 区 域 网 路 卡 之 实 体 位 址 ( MAC Address) 并 且 由 一 个 单 一 的 主 机 , 单 一 联 外 通 道 来 服 务 各 个 工 作 站 的 HTTP Request。 因 此 , 就 算 联 外 主 机 端 只 有 一 个 对 外 连 线 的 通 道 , 也 就 够 了 。 在 这 里 我 们 使 用 的 是 Willy Tarreau所 写 的 Webroute 1.2.1版 , 这 是 目 前 笔 者 看 过 设 定 最 简 便 的 WWW Proxy软 体 - 事 实 上 , 根 本 就 没 有 设 定 可 言 。

    您 只 要 解 开 Webroute的 包 装 , 编 译 程 式 , 然 後 直 接 执 行 Webroute执 行 档 就 可 以 了 , 就 是 这 麽 简 单 , Nothing More。

    请 先 找 到 一 个 Webroute的 压 缩 档 , 档 名 为 webroute.tar.gz您 可 以 用 Archie来 找 , 或 者 是 前 几 期 的 光 碟 月 刊 也 有 附 上 这 一 个 档 案 。 解 开 之 後 , 应 该 会 有 如 下 的 档 案 :

在 编 译 之 前 , 请 先 将 Makefile稍 作 修 改 以 适 合 您 机 器 的 情 况 。 笔 者 所 使 用 的 Linux核 心 为 2.0.0 版 , 如 果 不 修 改 Makefile就 直 接 make, 虽 然 在 编 译 过 程 中 会 出 现 些 许 错 误 讯 息 , 但 不 影 响 程 式 编 译 结 果 。 如 果 您 的 系 统 不 是 Linux, 您 不 使 用 gcc, 或 者 您 的 中 央 处 理 机 不 是 80486的 情 况 , 您 就 会 需 要 修 改 Makefile 。

编 译 完 成 後 , 直 接 执 行 产 生 出 来 的 webroute 这 一 个 执 行 档 即 可 。 执 行 後 会 出 现 下 列 讯 息 :

如 此 便 可 确 认 WWW Proxy软 体 已 经 成 功 的 执 行 了 , 接 下 来 让 我 们 设 定 工 作 站 端 WWW浏 览 器 的 部 份 。 您 可 以 将 webroute放 在 /etc/rc.d中 的 设 定 档 让 其 开 机 自 动 执 行 , 或 是 放 置 在 一 个 公 众 的 目 录 下 , 有 需 要 使 用 时 再 执 行 它 以 节 约 部 份 记 忆 体 空 间 。 值 得 一 提 的 是 , webroute这 个 软 体 并 不 强 制 必 须 是 root才 能 执 行 , 因 此 放 置 在 公 众 的 目 录 下 , 使 得 有 需 要 时 user可 以 自 行 取 用 。

设 定 MicroSoft Internet Explorer

开 启 工 作 站 端 的 MicroSoft Internet Explorer , 然 後 选 取 [检 视 ] -> [选 项 ], 然 後 选 取 「 连 线 」 栏 , 点 选 「 使 用 Proxy伺 服 器 」 , 然 後 设 定 Proxy 伺 服 器 的 设 定 值 。 ( 如 右 图 五 )

将 HTTP Proxy的 主 机 设 为 10.1.1.1, 也 就 是 我 们 的 Proxy Server。 Port的 部 份 请 设 定 为 8080, 这 是 Webroute软 体 的 内 定 值 。 设 定 完 成 後 , 只 要 您 的 Proxy Server已 经 连 上 Internet, 各 工 作 站 皆 可 透 过 Proxy Server作 Homepage的 浏 览 作 业 , 和 以 前 单 点 连 结 时 毫 无 差 异 。 如 果 您 的 联 外 线 路 为 非 固 接 式 的 拨 接 线 路 , 若 是 此 种 情 况 , 您 的 主 机 就 不 能 成 为 一 台 Mail Server 了 。 因 为 连 线 时 间 非 固 定 , 所 以 没 有 办 法 收 到 Internet上 其 他 主 机 所 发 送 过 来 的 Mail( 但 发 送 信 件 不 受 影 响 , 只 要 内 部 有 信 件 要 外 送 时 拨 接 线 路 已 经 连 上 Internet即 可 ) 。 而 且 现 在 一 般 的 ISP所 分 配 到 的 IP位 址 有 限 , 不 太 可 能 给 每 个 拨 接 用 户 都 分 配 一 个 固 定 的 IP位 址 。 在 您 每 次 拨 接 时 IP位 址 都 会 变 动 的 情 况 下 , 您 的 主 机 根 本 不 可 能 成 为 一 台 Server, 因 为 他 人 根 本 无 从 得 知 您 这 次 拨 接 被 分 配 到 哪 一 个 位 址 。 就 算 是 像 HiNet这 种 大 型 ISP, 也 不 再 配 发 固 定 的 IP位 址 了 ( 笔 者 所 用 168.95.109.222这 个 固 定 式 的 IP位 址 是 很 早 以 前 申 请 的 ) 。

    当 然 为 了 一 台 主 机 的 功 能 完 整 性 , 还 是 建 议 您 在 经 费 充 裕 的 情 况 下 申 请 一 条 数 据 专 线 。

但 若 您 只 是 想 要 实 验 , 评 估 看 看 Proxy Server 的 可 行 性 , 或 是 一 般 学 生 宿 舍 内 想 要 一 条 电 话 线 大 家 同 时 上 BBS, 看 WWW的 情 况 下 , 依 然 有 办 法 接 到 外 界 的 信 件 。 为 了 此 种 目 的 , 以 下 就 介 绍 getpop3这 套 软 体 的 使 用 方 式 。

在 此 范 例 中 , 使 用 者 finny在 某 ISP有 一 个 名 为 finny@variox.com.tw的 邮 件 帐 号 , 且 variox. com.tw支 援 pop3邮 件 传 送 协 定 ( Post Office Protocol 3) 。 由 於 variox.com.tw是 一 个 固 定 在 Internet上 的 主 机 , 因 此 没 有 邮 件 收 送 上 的 问 题 。

现 在 下 面 的 范 例 , 将 可 以 使 位 於 本 地 端 的 Linux主 机 在 拨 接 时 去 variox.com.tw将 finny的 信 件 取 回 , 就 像 该 信 件 是 直 接 寄 到 本 地 端 的 拨 接 主 机 一 样 。 finny的 密 码 是 shinfang.。 ( 注 : 以 上 各 帐 号 、 密 码 、 主 机 名 称 均 为 虚 构 ) 取 得 getpop3 档 案 与 安 装

档 名 为 getpop3.tgz, 在 前 几 期 的 Hope Net 光 碟 中 有 附 , 亦 可 由 Internet取 得 。

由 於 本 档 案 已 经 将 包 装 内 各 档 案 , 包 括 执 行 档 , 说 明 档 等 安 排 在 系 统 中 适 当 的 地 方 , 因 此 请 您 将 getpop3.tgz在 系 统 根 目 录 下 解 压 缩 , 而 不 要 在 自 己 的 工 作 目 录 下 。

设 定 getpop3

请 在 /etc下 建 立 一 个 档 案 名 称 为 getpop3rc的 档 案 , 档 案 内 容 以 下 列 格 式 建 立 :

user [使 用 者 名 称 ] [pop3 主 机 位 址 ] [使 用 者 的 帐 号 ] [使 用 者 的 密 码 ] [信 件 存 放 目 录 ]则 /etc/getpop3rc应 该 有 一 行 这 样 的 叙 述 :

在 这 里 我 们 并 没 有 填 入 「 信 件 存 放 目 录 」 这 一 个 项 目 , 因 为 getpop3这 个 程 式 会 自 动 去 使 用 /usr/spool/uidl这 个 目 录 , 并 且 将 各 个 user的 信 件 存 放 於 此 。 除 非 您 有 特 殊 需 求 。 否 则 采 用 内 定 值 就 可 以 了 。

要 特 别 注 意 的 是 , 由 於 getpop3rc档 案 中 内 含 了 各 个 user的 真 实 密 码 , 因 此 请 将 getpop3rc这 个 档 案 的 Owner、 group均 设 为 root, 且 设 定 为 只 有 root可 以 读 取 ( mode 600) 。 当 您 要 取 信 时 , 先 拨 接 上 Internet, 然 後 root 就 可 以 直 接 输 入 getpop3, 接 着 会 启 动 如 下 的 取 信 动 作 :

在 此 次 的 取 信 动 作 中 , finny位 於 variox.com. tw的 主 机 上 有 一 封 给 她 的 信 件 , 大 小 为 13271 Bytes。 接 着 getpop3会 实 行 pop3指 令 将 信 件 取 回 , 然 後 本 地 端 主 机 的 procmail、 sendmail等 邮 件 收 送 程 式 合 作 。 待 处 理 完 毕 之 後 , 您 就 可 以 由 工 作 站 端 , 如 Eudora读 信 程 式 来 读 取 信 件 了 。 由 於 使 用 代 理 信 件 转 送 的 方 式 来 收 信 , 经 由 此 种 方 法 收 取 的 信 件 开 头 会 有 以 下 的 标 注 :

表 示 信 件 是 经 由 root转 送 的 ( getpop3之 owner为 root且 为 root所 启 动 ) 。

本 期 讲 解 了 Proxy Server对 於 一 般 办 公 室 , 中 小 型 网 路 的 应 用 , 希 望 在 各 种 场 合 的 应 用 上 能 对 您 有 帮 助 。 本 期 内 容 亦 会 在 中 华 民 国 UNIX系 统 协 会 之 课 程 中 实 地 操 作 及 讲 解 。

Telnet 软 体 : InterSoft International Inc. 的 Netterm 软 体

FTP 软 体 : Windows 95 内 附 的 文 字 模 式 FTP Client

Mail 软 体 : Qualcomm Incorporated 的 Eudora 读 信 软 体

WWW 浏 览 器 : MicroSoft Internet Explorer 3.0

喔 , 对 了 ! 在 您 让 各 位 工 作 站 的 用 户 连 上 Proxy Server之 前 , 记 得 先 帮 他 们 开 好 帐 号 喔 !

各 工 作 站 使 用 Proxy Server对 外 连 线 之 方 式

1.Telnet Proxy

在 以 前 使 用 PPP拨 号 连 线 的 时 候 , 要 连 到 哪 边 去 都 是 直 接 输 入 对 方 主 机 的 IP位 址 就 可 以 了 。 现 在 您 必 须 先 连 线 到 10.1.1.1, 也 就 是 您 Proxy Server 的 位 址 , 然 後 Log in, 再 使 用 UNIX下 的 telnet功 能 即 可 。 如 果 有 读 写 中 文 的 需 求 , 您 就 必 须 去 找 一 个 ctelnet.gz, 然 後 将 它 安 装 在 系 统 上 , 取 代 原 有 的 telnet才 能 使 中 文 输 入 正 常 动 作 。

2.FTP Proxy

同 第 一 项 的 做 法 , 先 telnet到 Proxy Server, 再 利 用 Proxy Server的 ftp指 令 去 抓 档 案 。 和 以 前 不 同 的 是 , 现 在 档 案 可 不 是 直 接 抓 到 自 己 电 脑 的 硬 碟 上 , 而 是 放 在 Proxy Server上 的 硬 碟 目 录 中 。 若 您 想 要 取 回 自 己 的 电 脑 , 比 较 慢 的 方 法 就 是 另 外 再 开 一 个 FTP Client到 Proxy Server然 後 再 取 回 档 案 。 但 是 现 在 有 个 更 快 的 办 法 , 像 Netterm或 是 Telix( 如 果 你 用 拨 接 或 是 序 列 电 缆 连 线 的 方 式 连 上 Proxy Server的 话 ) 这 种 具 有 ZModem传 输 功 能 的 终 端 机 模 拟 软 体 , 您 可 以 直 接 叫 Proxy Server 将 档 案 以 ZModem传 到 您 自 个 儿 的 硬 碟 上 。 使 用 语 法 如 下 :

sz [-b] ( 档 案 名 称 )

其 中 档 案 名 称 可 以 配 合 *, ? 等 万 用 字 元 一 次 传 多 个 档 案 。 若 您 传 的 是 二 进 位 格 式 的 档 案 , 如 可 执 行 档 , 那 麽 尚 须 加 上 一 个 “ -b” 的 选 项 强 制 ZModem使 用 二 进 位 传 输 模 式 , 否 则 您 的 执 行 档 传 完 以 後 可 就 报 销 了 喔 ! 若 您 要 将 档 案 上 传 到 Proxy Server, 那 麽 只 要 在 UNIX下 输 入 “ rz” , Netterm 就 会 自 动 出 现 对 话 框 要 求 您 选 择 要 上 传 的 档 案 , 方 便 吧 ! 经 由 区 域 网 路 , 速 度 也 相 当 的 快 喔 ! 本 例 中 传 送 vmlinux这 个 Linux Kernel档 案 , 可 达 到 99328 CPS的 效 能 。 ZModem在 LAN上 比 起 以 往 一 般 用 在 “ Modem” 拨 接 连 线 的 1000-2000 CPS 是 不 是 快 多 了 呢 ? ( 如 图 二 )

图 二

3.Mail Proxy

和 平 常 使 用 单 机 的 PPP拨 接 方 式 不 同 , 使 用 Mail Proxy Server您 必 须 有 另 外 的 设 定 方 式 。 在 这 里 我 们 以 Eudora为 范 例 , 但 其 实 其 他 的 邮 件 软 体 亦 是 大 同 小 异 。

首 先 , 设 定 POP Account, 在 这 边 除 非 您 还 在 区 域 网 路 上 设 了 一 个 自 己 的 Domain Name Server, 否 则 必 须 以 下 列 的 格 式 来 设 定 。

若 原 来 的 POP3 Account为 finny@finny. hinet.net( finny.hinet.net对 内 部 网 路 来 说 , 位 址 为 10.1.1.1) 则 您 不 能 填 入 finny@finny.hinet.net , 因 为 您 内 部 网 路 没 有 Domain Name Server好 将 finny.hinet.net翻 成 10.1.1.1, 所 以 您 必 须 输 入 finny@10.1.1.1, 好 让 Eudora知 道 POP3 Server 在 10.1.1.1。 ( 如 图 叁 )

图 叁

但 是 , 别 人 收 到 时 , 可 不 能 用 finny@10.1. 1.1这 种 邮 件 地 址 , 因 为 对 於 Internet来 说 , finny.hinet.net的 位 址 为 168.95.109.222, 而 且 有 DNS的 翻 译 , 不 须 直 接 用 IP Address。 故 在 设 定 Eudora时 必 须 填 入 Return Address, 这 样 收 件 人 收 到 信 的 时 候 原 发 信 人 还 是 finny@finny.hinet.net , 这 样 就 不 会 造 成 混 淆 了 。 ( 请 读 者 特 别 注 意 图 四 中 POP Account与 Return Address两 个 项 目 的 差 别 )

图 叁

注 意 : 若 您 的 Internet连 接 为 拨 接 式 而 非 固 接 式 , 那 麽 可 能 您 是 在 员 工 有 Internet需 求 时 才 会 开 启 至 Internet的 连 线 以 节 省 连 线 费 用 。 若 是 此 种 情 况 , 在 您 Down Internet Link之 前 请 先 用 ps指 令 来 check一 下 是 否 还 有 信 件 在 寄 送 中 。 ( 如 下 )

在 这 里 我 们 可 以 看 到 , 编 号 273的 Process正 在 尝 试 送 信 给 ms4.hinet.net的 主 机 , 若 是 您 这 时 将 Internet Connection给 砍 了 , 那 这 封 信 就 无 法 即 时 送 出 。 请 稍 等 一 下 , 等 到 所 有 sendmail的 行 程 都 已 经 消 失 了 再 结 束 Internet连 线 。

ps

PID TTY STAT TIME COMMAND

1 ? S 0:01 init [3]

2 ? SW 0:00 (kflushd)

3 ? SW< 0:00 (kswapd)

4 ? SW 0:00 (nfsiod)

5 ? SW 0:00 (nfsiod)

6 ? SW 0:00 (nfsiod)

7 ? SW 0:00 (nfsiod)

13 ? S 0:00 update (bdflush)

32 ? S 0:00 /usr/sbin/crond -l10

48 ? S 0:00 /usr/sbin/klogd

52 ? S 0:00 /usr/sbin/inetd

54 ? S 0:00 /usr/sbin/rpc.mountd

56 ? S 0:00 /usr/sbin/rpc.nfsd

62 ? S 0:00 sendmail:accepting

connections

67 ? S 0:00 /usr/sbin/tcplog

69 ? S 0:00 /usr/sbin/icmplog

71 ? S 0:00 /usr/sbin/webroute

73 ? S 0:00 /usr/sbin/httpd

80 ? S 0:00 /usr/sbin/named

81 1 S 0:00 /sbin/agetty 38400 tty1 linux

82 2 S 0:00 /sbin/agetty 38400 tty2 linux

83 3 S 0:00 /sbin/agetty 38400 tty3 linux

84 4 S 0:00 /sbin/agetty 38400 tty4 linux

85 5 S 0:00 /sbin/agetty 38400 tty5 linux

86 6 S 0:00 /sbin/agetty 38400 tty6 linux

88 p6 R 74:46 login -h ipc1.variox.intra -p

89 p1 S 0:01 -tcsh

273 ? S 0:00 sendmail:WAA00272

ms4.hinet.net.: user open

421 ? S 0:00 in.telnetsnoopd

422 p0 S 0:00 login -h ipc1.variox.intra -p

423 p2 S 0:00 -tcsh

430 p2 R 0:00 ps

4. WWW浏 览 器

安 装 WWW Proxy软 体

    在 使 用 WWW Proxy之 前 , 必 须 先 安 装 上 WWW的 Proxy软 体 。 此 软 体 能 个 别 辨 认 48位 元 的 区 域 网 路 卡 之 实 体 位 址 ( MAC Address) 并 且 由 一 个 单 一 的 主 机 , 单 一 联 外 通 道 来 服 务 各 个 工 作 站 的 HTTP Request。 因 此 , 就 算 联 外 主 机 端 只 有 一 个 对 外 连 线 的 通 道 , 也 就 够 了 。 在 这 里 我 们 使 用 的 是 Willy Tarreau所 写 的 Webroute 1.2.1版 , 这 是 目 前 笔 者 看 过 设 定 最 简 便 的 WWW Proxy软 体 - 事 实 上 , 根 本 就 没 有 设 定 可 言 。

    您 只 要 解 开 Webroute的 包 装 , 编 译 程 式 , 然 後 直 接 执 行 Webroute执 行 档 就 可 以 了 , 就 是 这 麽 简 单 , Nothing More。     请 先 找 到 一 个 Webroute的 压 缩 档 , 档 名 为 webroute.tar.gz您 可 以 用 Archie来 找 , 或 者 是 前 几 期 的 光 碟 月 刊 也 有 附 上 这 一 个 档 案 。 解 开 之 後 , 应 该 会 有 如 下 的 档 案 :

4. WWW浏 览 器

安 装 WWW Proxy软 体

    在 使 用 WWW Proxy之 前 , 必 须 先 安 装 上 WWW的 Proxy软 体 。 此 软 体 能 个 别 辨 认 48位 元 的 区 域 网 路 卡 之 实 体 位 址 ( MAC Address) 并 且 由 一 个 单 一 的 主 机 , 单 一 联 外 通 道 来 服 务 各 个 工 作 站 的 HTTP Request。 因 此 , 就 算 联 外 主 机 端 只 有 一 个 对 外 连 线 的 通 道 , 也 就 够 了 。 在 这 里 我 们 使 用 的 是 Willy Tarreau所 写 的 Webroute 1.2.1版 , 这 是 目 前 笔 者 看 过 设 定 最 简 便 的 WWW Proxy软 体 - 事 实 上 , 根 本 就 没 有 设 定 可 言 。

    您 只 要 解 开 Webroute的 包 装 , 编 译 程 式 , 然 後 直 接 执 行 Webroute执 行 档 就 可 以 了 , 就 是 这 麽 简 单 , Nothing More。     请 先 找 到 一 个 Webroute的 压 缩 档 , 档 名 为 webroute.tar.gz您 可 以 用 Archie来 找 , 或 者 是 前 几 期 的 光 碟 月 刊 也 有 附 上 这 一 个 档 案 。 解 开 之 後 , 应 该 会 有 如 下 的 档 案 :

在 编 译 之 前 , 请 先 将 Makefile稍 作 修 改 以 适 合 您 机 器 的 情 况 。 笔 者 所 使 用 的 Linux核 心 为 2.0.0 版 , 如 果 不 修 改 Makefile就 直 接 make, 虽 然 在 编 译 过 程 中 会 出 现 些 许 错 误 讯 息 , 但 不 影 响 程 式 编 译 结 果 。 如 果 您 的 系 统 不 是 Linux, 您 不 使 用 gcc, 或 者 您 的 中 央 处 理 机 不 是 80486的 情 况 , 您 就 会 需 要 修 改 Makefile 。

编 译 完 成 後 , 直 接 执 行 产 生 出 来 的 webroute 这 一 个 执 行 档 即 可 。 执 行 後 会 出 现 下 列 讯 息 :

webroute

Webroute v 1.2.1 - (C) 1996 Willy Tarreau < tarreau@aemiaif.ibp.fr>

Webroute is ready and running on port 8080

如 此 便 可 确 认 WWW Proxy软 体 已 经 成 功 的 执 行 了 , 接 下 来 让 我 们 设 定 工 作 站 端 WWW浏 览 器 的 部 份 。 您 可 以 将 webroute放 在 /etc/rc.d中 的 设 定 档 让 其 开 机 自 动 执 行 , 或 是 放 置 在 一 个 公 众 的 目 录 下 , 有 需 要 使 用 时 再 执 行 它 以 节 约 部 份 记 忆 体 空 间 。 值 得 一 提 的 是 , webroute这 个 软 体 并 不 强 制 必 须 是 root才 能 执 行 , 因 此 放 置 在 公 众 的 目 录 下 , 使 得 有 需 要 时 user可 以 自 行 取 用 。

设 定 MicroSoft Internet Explorer

开 启 工 作 站 端 的 MicroSoft Internet Explorer , 然 後 选 取 [检 视 ] -> [选 项 ], 然 後 选 取 「 连 线 」 栏 , 点 选 「 使 用 Proxy伺 服 器 」 , 然 後 设 定 Proxy 伺 服 器 的 设 定 值 。 ( 如 右 图 五 )

将 HTTP Proxy的 主 机 设 为 10.1.1.1, 也 就 是 我 们 的 Proxy Server。 Port的 部 份 请 设 定 为 8080, 这 是 Webroute软 体 的 内 定 值 。 设 定 完 成 後 , 只 要 您 的 Proxy Server已 经 连 上 Internet, 各 工 作 站 皆 可 透 过 Proxy Server作 Homepage的 浏 览 作 业 , 和 以 前 单 点 连 结 时 毫 无 差 异 。 如 果 您 的 联 外 线 路 为 非 固 接 式 的 拨 接 线 路 , 若 是 此 种 情 况 , 您 的 主 机 就 不 能 成 为 一 台 Mail Server 了 。 因 为 连 线 时 间 非 固 定 , 所 以 没 有 办 法 收 到 Internet上 其 他 主 机 所 发 送 过 来 的 Mail( 但 发 送 信 件 不 受 影 响 , 只 要 内 部 有 信 件 要 外 送 时 拨 接 线 路 已 经 连 上 Internet即 可 ) 。 而 且 现 在 一 般 的 ISP所 分 配 到 的 IP位 址 有 限 , 不 太 可 能 给 每 个 拨 接 用 户 都 分 配 一 个 固 定 的 IP位 址 。 在 您 每 次 拨 接 时 IP位 址 都 会 变 动 的 情 况 下 , 您 的 主 机 根 本 不 可 能 成 为 一 台 Server, 因 为 他 人 根 本 无 从 得 知 您 这 次 拨 接 被 分 配 到 哪 一 个 位 址 。 就 算 是 像 HiNet这 种 大 型 ISP, 也 不 再 配 发 固 定 的 IP位 址 了 ( 笔 者 所 用 168.95.109.222这 个 固 定 式 的 IP位 址 是 很 早 以 前 申 请 的 ) 。

    当 然 为 了 一 台 主 机 的 功 能 完 整 性 , 还 是 建 议 您 在 经 费 充 裕 的 情 况 下 申 请 一 条 数 据 专 线 。

但 若 您 只 是 想 要 实 验 , 评 估 看 看 Proxy Server 的 可 行 性 , 或 是 一 般 学 生 宿 舍 内 想 要 一 条 电 话 线 大 家 同 时 上 BBS, 看 WWW的 情 况 下 , 依 然 有 办 法 接 到 外 界 的 信 件 。 为 了 此 种 目 的 , 以 下 就 介 绍 getpop3这 套 软 体 的 使 用 方 式 。

图 五

在 此 范 例 中 , 使 用 者 finny在 某 ISP有 一 个 名 为 finny@variox.com.tw的 邮 件 帐 号 , 且 variox. com.tw支 援 pop3邮 件 传 送 协 定 ( Post Office Protocol 3) 。 由 於 variox.com.tw是 一 个 固 定 在 Internet上 的 主 机 , 因 此 没 有 邮 件 收 送 上 的 问 题 。 现 在 下 面 的 范 例 , 将 可 以 使 位 於 本 地 端 的 Linux主 机 在 拨 接 时 去 variox.com.tw将 finny的 信 件 取 回 , 就 像 该 信 件 是 直 接 寄 到 本 地 端 的 拨 接 主 机 一 样 。 finny的 密 码 是 shinfang.。 ( 注 : 以 上 各 帐 号 、 密 码 、 主 机 名 称 均 为 虚 构 ) 取 得 getpop3 档 案 与 安 装

档 名 为 getpop3.tgz, 在 前 几 期 的 Hope Net 光 碟 中 有 附 , 亦 可 由 Internet取 得 。

由 於 本 档 案 已 经 将 包 装 内 各 档 案 , 包 括 执 行 档 , 说 明 档 等 安 排 在 系 统 中 适 当 的 地 方 , 因 此 请 您 将 getpop3.tgz在 系 统 根 目 录 下 解 压 缩 , 而 不 要 在 自 己 的 工 作 目 录 下 。

设 定 getpop3

请 在 /etc下 建 立 一 个 档 案 名 称 为 getpop3rc的 档 案 , 档 案 内 容 以 下 列 格 式 建 立 :

user [使 用 者 名 称 ] [pop3 主 机 位 址 ] [使 用 者 的 帐 号 ] [使 用 者 的 密 码 ] [信 件 存 放 目 录 ]则 /etc/getpop3rc应 该 有 一 行 这 样 的 叙 述 :

user finny variox.com.tw finny shinfang

在 这 里 我 们 并 没 有 填 入 「 信 件 存 放 目 录 」 这 一 个 项 目 , 因 为 getpop3这 个 程 式 会 自 动 去 使 用 /usr/spool/uidl这 个 目 录 , 并 且 将 各 个 user的 信 件 存 放 於 此 。 除 非 您 有 特 殊 需 求 。 否 则 采 用 内 定 值 就 可 以 了 。

要 特 别 注 意 的 是 , 由 於 getpop3rc档 案 中 内 含 了 各 个 user的 真 实 密 码 , 因 此 请 将 getpop3rc这 个 档 案 的 Owner、 group均 设 为 root, 且 设 定 为 只 有 root可 以 读 取 ( mode 600) 。

当 您 要 取 信 时 , 先 拨 接 上 Internet, 然 後 root 就 可 以 直 接 输 入 getpop3, 接 着 会 启 动 如 下 的 取 信 动 作 :

getpop3

getpop3 1.01 Copyright 1996 Double Precision, Inc.

See README.getpop3 for distribution and installation notes.

Looking up variox.com.tw

Connecting...

Connected.

+OK VarioxSoft Incorporated Pop server at variox.com.tw starting.

USER finny

+OK Password required for finny

PASS ****

+OK finny has 1 message(s) (13271 octets).

STAT

+OK 1 13271

UIDL

+OK uidl command accepted.

1 858741354.000

.

RETR 1

+OK 13271 octets

Retrieving message...

DELE 1

+OK Message 1 has been deleted.

QUIT

+OK Pop server at variox.com.tw signing off.

在 此 次 的 取 信 动 作 中 , finny位 於 variox.com. tw的 主 机 上 有 一 封 给 她 的 信 件 , 大 小 为 13271 Bytes。 接 着 getpop3会 实 行 pop3指 令 将 信 件 取 回 , 然 後 本 地 端 主 机 的 procmail、 sendmail等 邮 件 收 送 程 式 合 作 。 待 处 理 完 毕 之 後 , 您 就 可 以 由 工 作 站 端 , 如 Eudora读 信 程 式 来 读 取 信 件 了 。 由 於 使 用 代 理 信 件 转 送 的 方 式 来 收 信 , 经 由 此 种 方 法 收 取 的 信 件 开 头 会 有 以 下 的 标 注 :

X-POP3-Rcpt: finny@finny

Return-Path: root 表 示 信 件 是 经 由 root转 送 的 ( getpop3之owner为 root且 为 root所 启 动 ) 。

本 期 讲 解 了 Proxy Server对 於 一 般 办 公 室 , 中 小 型 网 路 的 应 用 , 希 望 在 各 种 场 合 的 应 用 上 能 对 您 有 帮 助 。