FreeRouter V2 完全手册
|
|
- 衾步 缪
- 7 years ago
- Views:
Transcription
1 FreeRouter V2 完 全 手 册
2 ii 关 于 一 切 这 本 手 册 的 基 本 定 性 是 FreeRouterV2 项 目 的 完 全 手 册, 包 含 项 目 的 背 景 介 绍, 涉 及 的 原 理, 使 用 到 的 技 术, 以 及 具 体 的 实 现 方 法 但 也 可 以 作 为 普 通 网 民 了 解 GFW 1 工 作 原 理, 以 及 与 之 对 抗 的 入 门 手 册 我 希 望 的 结 果 是 这 本 手 册 写 完 之 后 可 以 解 释 项 目 中 的 所 有 问 题, 让 所 有 人 都 有 能 力 自 己 去 做 翻 墙 路 由 器, 并 且 解 决 碰 到 的 问 题, 所 以 我 可 能 不 得 不 去 解 释 一 些 在 专 业 人 士 看 来 很 简 单 的 基 本 概 念, 借 着 latex 的 优 势, 我 会 把 文 章 的 章 节 分 的 很 细, 你 可 以 很 轻 松 的 跳 过 你 觉 得 自 己 很 清 楚 的 概 念, 不 过, 你 最 好 确 定 你 真 的 清 楚 但 是 考 虑 到 文 科 生 的 电 脑 知 识, 基 本 来 自 大 一 的 «计 算 机 基 础»; 而 大 部 分 非 计 算 机 专 业 的 理 工 科 学 生 的 电 脑 知 识, 来 自 他 们 从 来 没 看 懂 的 讲 了 一 堆 他 们 这 辈 子 都 没 用 上 的 X86 汇 编 的 «计 算 机 原 理» 这 个 残 酷 的 事 实 ( 这 是 个 长 句 ), 如 果 你 们 在 阅 读 全 书 后 觉 得 有 什 么 内 容 依 然 是 不 可 理 解, 完 全 没 有 概 念 的, 欢 迎 反 馈 和 老 罗 不 同 的 是, 我 不 怎 么 爱 这 个 世 界, 所 以, 本 手 册 不 推 荐 以 下 人 类 阅 读 : 1. 绝 对 不 肯 在 翻 墙 上 花 一 分 钱, 同 时 还 没 朋 友 肯 帮 你 的 人,FreeRouter 里 的 Free= 自 由 免 费 2. 过 去 三 年 内 都 没 有 完 整 看 完 过 一 本 书 的 人, 因 为 你 可 能 也 看 不 完 本 书 3. 觉 得 我 欠 你 很 多 钱 或 者 觉 得 我 爱 你, 但 实 际 上 我 根 本 不 认 识 你 的 人 因 为 翻 墙 路 由 本 身 拥 有 对 你 网 络 的 绝 对 控 制 能 力, 而 我 并 没 有 借 此 项 目 进 行 任 何 盈 利 的 目 的, 更 不 想 把 她 变 成 另 一 套 私 人 GFW, 所 以 一 切 可 能 涉 及 到 商 业 利 益 和 主 观 判 定 的 数 据 / 选 择 / 方 法, 我 最 多 可 能 会 作 为 选 项 给 你 们 介 绍, 但 不 会 导 入 FreeRouter V2 项 目 本 身 基 于 同 样 的 原 因, 我 不 会 向 我 不 认 识 的 任 何 人, 发 布 任 何 现 成 的 路 由 器 固 件, 我 只 会 教 你 们 方 法 本 手 册 的 版 权 归 毕 勤 所 有, 任 何 人 都 可 以 自 由 分 发 和 传 播, 但 不 得 做 任 何 修 改, 亦 不 可 用 于 任 何 商 业 目 的 我 知 道 在 中 国 谈 版 权 没 什 么 现 实 意 义, 但 对 于 尊 重 版 权 的 人 来 说, 给 他 们 一 个 明 确 的 说 明 是 一 种 基 本 的 尊 重 如 果 你 还 不 知 道 FreeRouter V2 的 地 址, 同 时 还 不 小 心 没 注 意 本 文 开 始 时 的 链 接, 那 么 FreeRouter V2 当 前 的 项 目 地 址 是 : 我 说 了 这 是 当 前 地 址, 如 果 我 觉 得 这 个 项 目 不 再 适 合 公 开 发 布, 或 者 有 其 他 计 划 都 可 能 导 致 地 址 变 更, 但 是 作 者 的 Blog 在 10 年 内 都 不 会 变 更 地 址, 在 Blog 上 你 们 可 以 找 到 我 的 联 系 方 式 1 China s Great FireWall, 中 国 国 家 防 火 墙 简 称
3 目 录 第 一 章 网 络 基 础 知 识 你 的 上 网 过 程 什 么 是 IP? 什 么 是 端 口? 什 么 是 DHCP? 什 么 是 域 名? 什 么 是 DNS? 什 么 是 TCP 和 UDP? 什 么 是 VPN? 网 卡 / 接 口 / 适 配 器? 什 么 是 网 关? 第 二 章 GFW 的 工 作 方 式 DNS 劫 持 和 污 染 虚 假 IP 劫 持 空 包 劫 持 轻 松 的 扩 散 污 染 敏 感 词 过 滤 IP 阻 断 第 三 章 常 用 的 辅 助 工 具 Ping 和 TCPing 命 令 traceroute 命 令 route 命 令 Dig 命 令 正 则,SED,AWK iii
4 目 录 iv 第 四 章 FreeRouter V2 的 技 术 原 理 IP 命 令 table 概 念 把 数 据 添 加 到 table 让 table 数 据 走 VPN 接 口 IPTables 防 火 墙 IPSET 概 念 iptables 的 mark 功 能 iptables 的 m32 模 块 iptables 的 string 模 块 Dnsmasq 解 析 器 IPSET 功 能 为 Dnsmasq 指 定 DNS 添 加 多 个 DNS 屏 蔽 运 营 商 的 DNS 广 告 限 定 范 围 的 解 析 DNSSEC 的 原 理 和 实 用 性 简 介 传 统 DNS 系 统 的 弱 点 公 钥 / 私 钥 加 密 的 基 本 原 理 DNSSEC 中 公 钥 私 钥 的 应 用 DNSSEC 的 最 大 问 题, 是 域 名 签 名 部 署 的 缺 失 对 未 签 名 的 域 名,DNSSEC 几 乎 不 能 提 供 任 何 保 护 对 签 名 的 域 名, 中 间 人 攻 击 依 然 有 可 能 进 行 国 内 支 持 DNSSEC 的 DNS 服 务 器 极 度 缺 乏 给 Dnsmasq 启 用 DNSSEC 域 名 客 户 端 服 务 器 Dnsmsq 的 配 置 : DNSSEC 的 效 果 : 年 后 的 DNS 污 染 对 应 策 略 背 景 和 策 略 实 际 操 作 一 个 小 脚 本
5 目 录 v 第 章 FreeRouter 实 战 FreeRouter V2 的 工 作 流 程 OpenWRT 基 础 OpenWRT 是 什 么? 我 的 路 由 能 刷 OpenWRT 吗? 我 的 路 由 需 要 多 大 ROM? 我 应 该 下 载 选 哪 个 版 本 的 固 件? 如 何 刷 固 件? 为 什 么 刷 了 固 件 后 打 不 开 路 由 管 理 界 面? 如 何 安 装 各 种 package? FreeRouter V2 需 要 的 组 件 部 署 FreeRouterV 系 统 的 基 本 设 置 PPTP VPN 接 口 设 定 Open VPN 接 口 设 定 部 署 文 件 通 用 部 分 部 署 文 件 PPTP VPN 部 分 部 署 文 件 Open VPN 部 分 调 试 和 检 查 自 己 打 包 固 件
6 第 一 章 网 络 基 础 知 识 最 强 大 的 防 火 墙, 是 十 三 亿 中 国 人 的 自 我 审 查 与 自 我 阉 割 1.1 你 的 上 网 过 程 我 需 要 在 这 里 把 你 的 上 网 过 程 先 描 述 一 遍, 以 打 开 一 个 网 页 ( 例 如 twitter.com) 为 例 子, 这 中 间 可 能 涉 及 到 很 多 你 不 了 解 的 专 业 术 语, 但 没 关 系, 这 些 我 们 都 会 在 后 面 慢 慢 解 释 图 1.1: 浏 览 器 如 何 访 问 网 站 1. 在 你 打 开 浏 览 器 之 后, 在 地 址 栏 输 入 这 个 地 址 1 2. 浏 览 器 会 自 动 先 识 别 出 这 是 位 于 域 名 twitter.com 下 的 一 个 页 面, 需 要 访 问 twitter.com 这 个 域 名 对 应 的 服 务 器 1 你 们 早 晚 会 知 道 这 是 什 么 地 址 1
7 第 一 章 网 络 基 础 知 识 2 3. 接 着, 浏 览 器 会 调 用 相 应 的 的 操 作 系 统 的 API 去 解 析 这 个 域 名, 然 后 你 的 Windows 系 统 会 向 电 脑 连 着 的 路 由 发 送 解 析 请 求 4. 路 由 器 上 如 果 之 前 有 个 域 名 的 解 析 结 果, 并 保 留 在 了 缓 存 里, 就 可 以 直 接 返 回 解 析 结 果 了 5. 如 果 路 由 器 没 有 关 于 这 个 域 名 的 缓 存, 那 路 由 就 会 向 之 前 在 路 由 器 里 设 置 好 的 DNS 服 务 器 请 求 解 析 这 个 域 名 6. 一 般 的 DNS 服 务 器 会 经 过 一 个 递 归 解 析 过 程, 把 解 析 到 的 twitter.com 的 IP 返 回 给 路 由, 路 由 再 返 回 给 你 的 电 脑 7. 最 后, 你 的 电 脑 就 可 以 通 过 IP 地 址, 直 接 访 问 twitter.com 的 服 务 器 了, 然 后 向 服 务 器 的 443 端 口 请 求 这 个 地 址 的 内 容 8. 如 果 网 络 通 畅 的 话,twitter.com 的 服 务 器 在 收 到 请 求 后 就 会 把 结 果 返 回 给 你 的 电 脑, 网 页 就 打 开 了 专 业 词 汇 太 多 看 不 懂?OK, 一 个 个 解 释 1.2 什 么 是 IP? 我 想 这 是 困 住 很 多 人 的 第 一 个 问 题, 我 觉 得 你 们 知 道 twitter 是 什 么 的 可 能 性 都 比 这 个 高 IP, 准 确 的 说 是 IP 地 址, 解 释 过 来 就 是 Internet Protocol Address,Internet 协 议 地 址 你 可 以 把 它 假 想 成 各 家 各 户 的 门 牌 号, 你 要 找 一 个 地 址, 最 靠 谱 的 方 法 就 是 知 道 准 确 的 门 牌 号 IP 地 址 又 分 为 公 网 地 址 和 内 网 地 址 两 种, 这 个 怎 么 理 解 呢? 你 可 以 认 为 长 安 街 1 号 这 种 地 址 是 公 网 地 址, 因 为 通 过 所 有 人 都 可 以 走 2 的 公 共 道 路, 人 人 都 可 以 到 达 这 里 而 长 安 街 1 号 里 面, 2 号 楼 3F302 这 个 地 址 就 是 内 网 地 址 了, 因 为 那 是 别 人 的 私 有 领 地, 你 可 以 通 过 长 安 街 到 他 家 门 口, 但 未 必 可 以 进 入 这 个 私 有 领 地 但 私 有 领 地 的 人 却 完 全 可 以 走 出 来 访 问 公 共 道 路 上 的 任 何 其 他 地 址, 就 像 你 可 以 从 你 家 的 路 由 后 面 访 问 微 博 一 样, 但 他 们 也 同 样 不 能 直 接 进 入 别 人 的 私 有 领 地 实 用 点 说 的 话, 你 通 过 ADSL 拨 号, 光 纤 猫 接 入, 这 些 方 法 分 配 到 的 IP 一 般 都 是 公 网 IP, 直 接 接 在 电 脑 上, 别 人 通 过 这 个 IP 可 以 访 问 到 你 的 电 脑 了 但 是 一 般 你 都 会 在 猫 后 面 接 个 路 由, 然 后 分 配 出 一 些 类 似 XXX 的 地 址, 你 的 电 脑 上 往 往 是 通 过 这 些 地 址 接 入 互 联 网 的, 这 些 都 是 内 网 IP, 隔 着 路 由 别 人 是 无 法 直 接 访 问 到 你 的 电 脑 的, 因 为 这 个 内 网 地 址 对 外 面 的 人 来 说 根 本 不 可 见 内 网 地 址 的 范 围 是 有 规 范 的, 而 公 网 地 址 绝 对 不 能 使 用 这 些 地 址, 范 围 如 下 : / 好 吧, 到 后 面 你 会 知 道 公 共 道 路 也 未 必 人 人 都 能 走
8 第 一 章 网 络 基 础 知 识 / / / 上 面 的 表 格 中, 右 边 的 表 示 也 许 比 较 直 观, 而 左 边 用 的 掩 码 表 示 方 法 看 起 来 有 点 费 解, 但 这 却 是 实 际 网 络 应 用 中 最 常 用 的 格 式 首 先 我 们 要 知 道, 一 个 IP 地 址 是 计 算 机 中 的 一 个 32 位 的 2 进 制 数, 分 成 4 段, 每 段 8 位, 所 以 你 看 到 IP 地 址 每 段 的 最 大 值 是 255, 但 实 际 上 255 是 用 于 表 示 广 播 地 址 不 会 分 配 给 任 何 主 机 的, 而 0 是 用 于 表 示 整 个 网 络 号 的, 也 不 会 分 配 给 主 机, 所 以 一 般 你 路 由 能 分 配 的 IP 最 后 一 段 肯 定 是 1 254( 在 DHCP 3 支 持 的 情 况 下 ) 图 1.2: IPV4 的 IP 地 址 有 32 位 图 1.3: IP 地 址 包 含 网 络 号 和 主 机 号 一 个 IP 地 址 看 起 来 是 4 段, 其 实 是 两 个 部 分, 分 别 是 网 络 号 和 主 机 号, 按 网 络 号 范 围 的 不 同,IP 地 址 分 为 ABCDE5 类,DE 类 为 特 殊 地 址 类 我 们 不 考 虑, 现 在 看 看 A 类 地 址 是 怎 么 定 义 的 : A 类 地 址 的 网 络 号 由 一 段 (8 位 ) 数 字 表 示, 网 络 地 址 最 高 位 必 须 是 0, 所 以 A 类 地 址 有 2 7 2(126) 个 网 3 这 个 概 念 我 们 后 面 会 说
9 第 一 章 网 络 基 础 知 识 4 段 ; 剩 下 的 3 段 (24 位 ) 表 示 主 机 号, 每 个 网 段 有 ( ) 类 似 的 可 以 知 道 B 类 和 C 类 地 址 的 计 算 方 法, 如 果 还 不 清 楚 可 以 去 参 考 百 度 百 科 的 相 关 页 面 大 概 知 道 了 IP 的 格 式 和 分 类, 掩 码 表 示 法 要 怎 么 理 解 呢? 我 们 看 一 下 /12 的 解 释 过 程 1. 我 们 说 了 0 表 示 网 络 号, 准 确 的 说 应 该 是 0 提 示 网 络 号, 前 面 的 就 是 网 络 号, 这 段 是 固 定 的 值 2. 最 后 的 12 表 示 采 用 的 是 12 位 掩 码 这 个 掩 码 是 什 么 意 思? 位 掩 码 表 示 IP 地 址 的 高 12 位 和 1 进 行 与 (AND) 操 作 ( 也 就 是 不 变 ), 剩 下 低 20 位 的 空 间 和 0 进 行 与 操 作, 清 空 出 来 分 配 IP 4. 也 就 是 说, 从 开 始, 分 配 2 20 个 IP 地 址, 算 一 下 你 就 知 道 刚 好 到 了 我 们 说 了 0 和 255 分 别 表 示 网 络 号 和 广 播 地 址, 是 不 能 分 配 给 具 体 设 备 的, 所 以 实 际 可 用 范 围 是 两 者 中 间 的 值 以 上 是 关 于 IPV4 体 系 下 的 IP 地 址 的 介 绍, 也 是 我 们 现 在 基 本 都 在 用 的 体 系 但 是 你 可 能 也 看 到 了, IPV4 体 系 下 IP 地 址 的 范 围 非 常 有 限 ( 理 论 值 也 就 是 30 多 亿 ), 加 上 一 些 大 型 企 业 和 机 构 占 用 大 量 地 址, 全 球 的 IPV4 地 址 其 实 已 经 分 配 完 毕 ( 不 一 定 全 部 被 使 用 了, 但 已 经 被 分 配 完 毕 了 ) 所 以 就 有 了 新 的 IPV6 体 系,IPV6 体 系 下 的 IP 格 式 大 致 如 下 : 2a03:2880:2110: df07:face:b00c:0:1 可 以 看 到 IPV6 地 址 高 达 128 位, 总 数 就 是 个, 这 个 数 量 已 经 绝 对 不 需 要 担 心 耗 尽 的 可 能 了 具 体 的 关 于 IPV6 的 问 题, 在 我 们 的 翻 墙 过 程 中 只 有 一 小 部 分 涉 及 到, 这 里 就 不 再 讲 更 多 了 1.3 什 么 是 端 口? 在 讲 上 网 过 程 1.1 的 时 候, 我 们 提 到 了 最 后 浏 览 器 要 访 问 的 是 twitter.com 的 服 务 器 的 443 端 口, 那 么 什 么 是 端 口 呢? 专 业 上 讲 这 是 传 输 层 的 TSAP 寻 址 方 式, 不 过 你 肯 定 不 满 意 这 个 解 释 我 们 知 道 一 台 电 脑 要 联 网 的 软 件 ( 进 程 ) 其 实 是 很 多 的, 这 就 需 要 给 不 同 的 软 件 分 配 不 同 的 通 道 以 区 别 他 们 的 数 据, 否 则 所 有 的 进 程 都 在 一 条 通 道 上 收 发 数 据, 那 么 不 同 协 议 不 同 规 范 的 数 据 毫 无 规 则 的 混 在 在 一 起, 就 完 全 没 有 意 义 了, 或 者 代 价 就 是 每 个 进 程 都 要 把 所 有 数 据 都 先 截 获 下 来, 再 慢 慢 提 取 出 属 于 自 己 的 那 部 分 数 据, 这 显 然 是 不 可 能 的 那 么 端 口 就 起 了 这 样 的 作 用, 端 口 为 不 同 的 进 程 / 协 议 分 配 了 不 同 的 端 口, 例 如 针 对 浏 览 器 的 http 服 务 器 协 议 是 80 端 口,https 是 443 端 口,ftp 数 据 传 输 是 21 端 口,ssh 远 程 登 录 是 22 端 口,telnet 是 23 端 口,
10 第 一 章 网 络 基 础 知 识 5 DNS 解 析 是 53 端 口, 不 同 的 协 议 使 用 不 同 的 端 口, 数 据 就 很 清 晰 了, 对 于 一 个 端 口 上 的 数 据 就 肯 定 有 一 个 统 一 的 协 议 来 解 析 了 这 就 好 像 紫 禁 城 的 N 个 城 门, 每 个 门 都 有 自 己 特 殊 的 用 途, 给 不 同 的 人 和 不 同 的 车 走 一 样, 这 些 门 就 是 紫 禁 城 的 端 口 图 1.4: 不 同 的 服 务 对 应 不 同 的 端 口 注 意, 以 上 列 出 的 标 准 端 口 都 是 针 对 服 务 器 而 言 的, 因 为 很 多 通 信 协 议 默 认 都 是 使 用 这 些 标 准 端 口, 你 如 果 擅 自 改 成 别 的 端 口, 客 户 端 并 不 知 晓, 就 不 知 道 该 向 哪 里 请 求 了 例 如 有 些 网 站 给 自 己 的 内 部 管 理 服 务 器 改 成 了 8080 端 口 或 者 别 的 端 口, 这 样 可 以 避 免 别 人 发 现 后 台 的 地 址 ( 其 实 别 人 要 扫 描 端 口 也 可 以 发 现 ), 只 有 知 道 端 口 的 人 才 能 访 问 按 照 规 定 端 口 都 是 预 留 给 特 定 协 议 的 端 口 范 围, 其 他 的 应 用 和 私 有 的 协 议 不 应 该 使 用 这 个 范 围 内 的 关 口, 否 则 可 能 和 现 有 的 服 务 协 议 造 成 端 口 冲 突 端 口 的 连 接 是 双 方 的, 服 务 器 有 一 个 端 口, 客 户 端 要 连 接 也 必 须 有 一 个 对 应 的 端 口 服 务 器 的 端 口 一 般 要 固 定, 以 便 让 别 人 连 接 ; 而 在 客 户 端 这 里, 就 完 全 可 以 用 各 种 不 同 的 端 口 了,DNS 协 议 为 了 增 强 安 全 性, 客 户 端 的 端 口 甚 至 应 该 鼓 励 增 强 随 机 性, 最 好 每 次 都 不 同 好 比 皇 帝 出 去 祭 天 要 走 特 定 的 门 不 能 变, 可 是 要 微 服 私 访 就 得 灵 活 一 点 了, 不 然 行 踪 就 容 易 暴 露 了 1.4 什 么 是 DHCP? 我 们 前 面 说 了 一 个 问 题, 一 般 路 由 能 分 配 的 最 后 一 段 IP 一 般 是 1 254, 这 是 在 DHCP 允 许 的 条 件 下, 那 么 DHCP 是 什 么 东 西?
11 第 一 章 网 络 基 础 知 识 6 简 单 来 说,DHCP 是 一 个 自 动 分 配 IP 的 系 统 例 如 你 的 电 脑 在 不 联 网 的 时 候 是 不 会 有 任 何 IP 的, 在 接 入 一 个 路 由 器 之 后, 你 可 以 自 己 手 动 设 置 IP, 但 这 很 繁 琐, 而 且 万 一 两 个 人 设 置 了 一 样 的 IP, 就 会 导 致 网 络 冲 突 所 以 普 遍 的 做 法 是 让 路 由 自 动 分 配 IP 给 机 器 DHCP 的 实 现 过 程 大 概 是 这 样 的 : 1. 你 的 电 脑 接 入 路 由 后, 就 向 路 由 器 下 的 整 个 网 络 ( 所 有 主 机 和 设 备 ) 发 送 一 个 DHCP Discover 请 求, 查 询 看 有 没 有 DHCP 服 务 器 2. 你 的 路 由 收 到 这 个 请 求 之 后, 就 反 馈 给 你 的 电 脑 一 个 DHCP Offer, 告 诉 它 老 子 就 是 DHCP 服 务 器 3. 也 许 网 络 中 还 有 别 的 也 提 供 DHCP 服 务 的 主 机 ( 这 个 情 况 一 般 比 较 少 ), 但 一 般 来 说 你 的 电 脑 会 选 择 响 应 最 快 的 那 个 Offer, 然 后 发 送 一 个 DHCP Request 请 求 给 他 4. 路 由 收 到 这 个 DHCP Request 之 后, 就 会 开 始 和 主 机 进 行 一 些 列 握 手 协 议, 然 后 发 送 相 应 的 IP 配 置 给 他 图 1.5: Windows 通 过 DHCP 自 动 获 取 IP 和 DNS 其 实 呢,DHCP 不 光 是 分 配 IP 的, 他 同 时 还 会 分 配 DNS 服 务 器, 网 关 地 址 这 些 东 西 给 你 所 以 你 看 一 个 网 卡 的 IPV4 或 者 IPV6 协 议 属 性 的 时 候,IP 和 DNS 都 是 可 以 自 动 获 取 的, 这 就 是 通 过 DHCP 实 现 的
12 第 一 章 网 络 基 础 知 识 什 么 是 域 名? 你 可 能 也 看 到 了,IP 地 址 其 实 是 很 难 记 忆 的 一 个 东 西,30 多 亿 的 地 址 对 人 类 的 记 忆 来 说 根 本 就 是 开 玩 笑 如 果 你 要 访 问 一 台 服 务 器, 难 道 还 先 打 个 电 话 去 问 他 们 IP 是 什 么 吗? 当 然 不 可 能, 所 以 就 有 了 域 名? 没 这 么 快, 首 先 有 的 是 HOST 系 统 对 于 windows 用 户 来 说,c:/windows/system32/etc/drivers/hosts 文 件 里 一 般 只 有 一 行 内 容, 就 是 localhost 这 个 是 告 诉 计 算 机, 当 访 问 localhost 这 个 名 称 的 主 机 的 时 候, 实 际 就 是 要 访 问 , 也 就 是 计 算 机 的 本 机 IP( 访 问 自 己 ) 类 似 的, 你 可 以 把 mailserver 写 入 host 文 件, 这 样 就 告 诉 了 计 算 机, 邮 件 服 务 器 mailserver 的 IP 是 , 这 样 人 类 的 记 忆 就 稍 微 轻 松 了 一 些 可 是 随 着 互 联 网 的 发 展, 很 快 人 们 就 发 现 hosts 文 件 根 本 就 不 够 用, 而 且 很 多 主 机 你 更 根 本 不 知 道 他 的 存 在, 或 者 哪 台 服 务 器 换 了 IP 也 没 通 知 别 人, 旧 的 host 文 件 就 一 直 让 你 去 访 问 错 误 的 IP 了 终 于, 域 名 系 统 出 现 了 图 1.6: 各 种 不 同 的 顶 级 域 名 基 本 概 念 上 你 可 以 把 域 名 和 Host 文 件 等 效 起 来 理 解, 但 是 域 名 是 一 个 多 级 系 统, 它 有 着 不 同 的 域 例 如 mail.lifetyper.com 表 示 lifetyper.com 这 个 域 下 面 的 一 台 叫 mail 的 主 机, 这 样 一 个 域 就 可 以 有 了 很 多 主 机 记 录, 这 些 主 机 记 录 我 们 可 以 叫 做 lifetyper.com 这 个 父 域 的 子 域 而 lifetyper.com 其 实 也 是 com 这 个 父 域 下 面 的 一 个 子 域 你 不 知 道 的 可 能 是,com 的 完 整 写 法 应 该 是 com., 表 示 com 是. 这 个 父 域 下 的 一 个 子 域 这 个. 就 是 我 们 称 之 为 根 域 的 东 西,.net,.org,.cn 这 些 顶 级 域 名 域 其 实 都 是 根 域 的 子 域 就 像 你 用 文 件 搜 索 器 查 找 一 个 文 件 一 样, 它 除 了 告 诉 你 文 件 在 哪 里, 一 般 还 会 告 诉 你 文 件 的 大 小, 最 近 的 修 改 日 期, 文 件 的 所 有 者 等 等 同 样 的, 一 个 域 名 中 往 往 包 含 了 很 多 条 记 录, 我 们 常 用 的 几 个 记 录 有 : 1. A 记 录, 告 诉 你 这 个 域 名 对 应 的 IPV4 IP 地 址 2. AAAA 记 录, 对 应 的 是 域 名 的 IPV6 IP 地 址 ( 当 然, 目 前 很 多 域 名 并 没 有 IPV6 地 址 )
13 第 一 章 网 络 基 础 知 识 8 3. NS 记 录, 告 诉 你 这 个 域 名 的 名 称 服 务 器 4. CNAME 记 录, 也 叫 别 名 记 录 这 个 记 录 是 把 一 个 域 名 指 向 另 一 个 域 名, 例 如 给 lifetyper.com 设 置 一 个 abc.lifetyper.com 的 CNAME 记 录, 把 这 个 记 录 设 置 为 那 么 访 问 abc.lifetyper.com 实 际 上 就 是 要 去 访 问 注 意 这 个 和 单 纯 的 跳 转 不 同, 应 该 理 解 为 转 译 上 面 提 到 了 一 个 Name Server 名 称 服 务 器 ( 以 后 简 称 NS) 的 概 念, 这 个 NS, 就 是 负 责 设 置 一 个 域 名 几 乎 全 部 记 录 的 服 务 器, 并 且 在 别 人 查 询 的 时 候 把 这 些 记 录 告 诉 别 人, 就 像 一 个 传 达 室 大 爷 例 如 他 可 以 设 置 A 记 录 为 , 这 样 就 把 域 名 指 向 了 这 个 IP 上 的 服 务 器 ( 服 务 器 鸟 不 鸟 它 就 是 另 一 个 问 题 了 ) 为 什 么 说 是 几 乎 全 部 记 录, 而 不 是 全 部 呢? 因 为 NS 记 录 他 设 置 不 了, 相 反 的,NS 记 录 设 置 了 他 这 个 NS 记 录 一 般 只 有 在 域 名 的 注 册 商 那 里 才 可 以 设 置, 就 好 像 传 达 室 大 爷 可 以 负 责 告 诉 你 哪 个 教 室 美 女 多 教 务 处 在 哪 里, 但 谁 当 传 达 室 大 爷 那 是 村 长 校 长 说 了 算 的 而 且 NS 记 录 会 同 时 存 放 在 更 高 一 级 域 的 NS 服 务 器 中, 例 如 lifetyper.com 的 NS 记 录 会 存 放 在 com 域 的 NS 服 务 器 上, 否 则 一 但 lifetyper.com 的 NS 服 务 器 自 己 都 挂 了, 你 去 哪 里 查 NS 记 录 呢? 查 不 到 NS 记 录 就 找 不 到 NS 服 务 器, 那 又 怎 么 查 域 名 的 其 他 记 录 呢? 除 了 多 级 域 概 念 之 外, 域 名 系 统 最 重 要 的 一 点 是 不 需 要 人 们 自 己 去 记 录 这 些 域 名 对 应 什 么 IP, 而 是 通 过 DNS 系 统 去 查 询 就 好 像 你 打 开 windows 的 文 件 搜 索, 通 过 文 件 名 就 可 以 查 到 一 个 文 件 的 所 在 位 置 一 样 那 么 下 一 节 的 标 题 你 也 猜 到 了 1.6 什 么 是 DNS? 这 是 我 们 翻 墙 过 程 中 涉 及 到 的 一 个 非 常 重 要 的 问 题, 这 里 只 做 基 本 介 绍, 具 体 的 很 多 内 容 后 面 会 展 开 本 书 中 发 起 最 初 DNS 解 析 请 求 的 设 备 或 软 件, 我 们 统 称 为 DNS 解 析 器, 例 如 电 脑 就 是 一 个 解 析 器 我 们 说 了, 想 要 知 道 一 个 域 名 对 应 的 IP, 就 要 向 DNS 服 务 器 查 询 DNS 就 是 Domain Name Server 的 简 称 ( 域 名 称 服 务 器 ), 你 们 熟 知 的 Google DNS( ) 和 114DNS( ) 就 是 这 类 服 务 器 我 们 还 是 用 一 个 流 程 例 子 来 描 述 DNS 的 工 作 方 式 ( 这 里 以 递 归 DNS 方 式 准 ) 1. 你 的 浏 览 器 调 用 windows 的 相 关 函 数 接 口, 让 windows 发 出 了 解 析 twitter.com 的 请 求 2. 这 个 请 求 先 发 送 到 了 你 的 路 由 器, 但 路 由 器 没 有 关 于 twitter.com 的 记 录 缓 存, 就 继 续 向 路 由 器 上 设 定 的 DNS( 假 设 是 ) 请 求 解 析 这 个 域 名 收 到 解 析 请 求, 发 现 他 也 没 有 这 个 域 名 的 记 录 ( 虽 然 现 实 中 不 太 可 能 ), 他 就 会 向 根 域 ( 也 就 是. 域 ) 的 NS 服 务 器 查 询
14 第 一 章 网 络 基 础 知 识 9 4. 根 域 的 NS 服 务 器 说, 我 不 知 道, 不 过 com 域 的 NS 服 务 器 知 道, 这 是 com 域 的 NS 服 务 器 地 址 ( 例 如 是 ), 你 去 问 他 5. 然 后 就 向 com 域 的 NS 服 务 器 发 出 解 析 请 求, 说 妈 蛋, 我 也 不 知 道, 不 过 我 知 道 twitter.com 的 NS 是 啥 ( ), 你 去 问 他 吧 灰 溜 溜 的 跑 去 问 , 这 是 twitter.com 的 NS, 当 然 知 道 twitter.com 的 IP 是 什 么, 终 于 大 喊 一 声 你 咋 才 来 啊! 然 后 告 诉 了 它 twitter.com 的 IP 7. 然 后 告 诉 路 由, 路 由 告 诉 你 的 电 脑,windows 告 诉 浏 览 器, 不 出 意 外 的 话, 你 还 是 没 打 开 twitter.com( 谁 让 你 生 在 中 国!) 图 1.7: DNS 递 归 解 析 过 程 上 面 这 个 递 归 解 析 方 式, 是 目 前 最 常 见 的 DNS 服 务 器 工 作 方 式, 大 部 分 工 作 都 由 DNS 服 务 器 完 成 还 有 一 种 很 蛋 疼 的 解 析 方 式 叫 做 迭 代 解 析, 那 么 这 个 过 程 有 什 么 不 同 呢? 1. 你 的 浏 览 器 调 用 windows 的 相 关 函 数 接 口, 让 windows 发 出 了 解 析 twitter.com 的 请 求 2. 这 个 请 求 先 发 送 到 了 你 的 路 由 器, 但 路 由 器 没 有 关 于 twitter.com 的 记 录 缓 存, 就 继 续 向 路 由 器 上 设 定 的 DNS( 假 设 是 ) 请 求 解 析 这 个 域 名 收 到 解 析 请 求, 发 现 他 也 没 有 这 个 域 名 的 记 录, 然 后 蛋 疼 的 过 程 开 始 了 说 那 个 啥, 地 址 我 不 知 道, 这 个 是 根 域 名 称 服 务 器 的 地 址, 你 自 己 那 个 啥 吧 5. 然 后 你 就 得 自 己 把 上 面 干 的 那 些 活, 那 一 次 次 被 人 戏 弄 的 过 程 自 己 重 复 一 遍, 直 到 查 到 IP 为 止 怎 么 样, 这 活 挺 好 干 吧, 返 回 个 根 域 的 名 称 服 务 器 地 址 就 行 了, 这 样 的 DNS 服 务 器 到 底 有 啥 用? 我 觉 得 没 啥 用, 因 为 根 服 务 器 就 那 几 台, 我 还 需 要 你 来 告 诉 我? 所 以 基 本 已 经 没 几 个 DNS 服 务 器 是 迭 代 查
15 第 一 章 网 络 基 础 知 识 10 询 了, 基 本 都 是 递 归 解 析 1.7 什 么 是 TCP 和 UDP? 哎 呀, 怎 么 忽 然 跳 到 这 么 专 业 的 两 个 词 汇 上 了? 好 吧, 这 可 能 是 本 章 最 后 两 个 概 念 了, 你 先 忍 忍 吧, 我 尽 量 用 不 专 业 的 语 句 描 述 ( 太 专 业 的 我 也 不 会 啊 ) TCP 和 UDP 都 是 网 络 传 输 层 的 概 念, 是 两 种 机 制 不 同 的 传 输 协 议, 他 们 的 主 要 区 别 是 TCP 是 面 向 连 接 的, 而 UDP 是 无 连 接 的, 怎 么 理 解 呢? 比 如 你 要 从 上 海 送 一 件 东 西 到 北 京, 你 可 以 先 打 个 电 话 过 去 通 知 北 京 那 边 的 接 收 人, 告 诉 他 我 现 在 要 寄 东 西 过 去 了, 北 京 那 边 也 会 给 你 一 个 响 应, 告 诉 你 他 知 道 你 要 开 始 寄 送 了 打 电 话 这 个 事 情 本 身 首 先 就 在 收 发 双 方 同 步 了 一 个 寄 东 西 的 时 间, 如 果 打 完 电 话 后 3 天 东 西 都 没 到, 那 么 双 方 通 过 电 话 一 确 认 就 可 以 知 道 这 中 间 出 问 题 了, 应 该 重 新 发 送, 如 果 收 到 了, 北 京 那 边 可 以 给 你 一 个 回 复 告 诉 你 收 到 了 因 为 双 方 有 电 话 这 个 连 接 的 存 在, 就 可 以 对 寄 送 包 裹 的 信 息 和 结 果 作 确 认, 所 以 几 乎 可 以 肯 定 的 保 证 要 寄 送 的 东 西 一 定 会 到 达, 现 实 世 界 有 些 东 西 丢 了 就 没 了, 而 数 字 世 界 数 据 丢 了 重 发 的 成 本 是 极 低 的 这 种 有 电 话 这 个 沟 通 方 式 作 为 连 接 的 传 输 协 议, 就 类 似 TCP 而 UDP 就 简 单 多 了, 事 先 不 需 要 电 话 联 系, 直 接 写 个 地 址 就 把 东 西 送 过 去 了, 这 中 间 如 果 东 西 丢 了, 双 方 也 没 有 什 么 方 法 来 确 认, 只 能 看 快 递 公 司 的 良 心 了 那 你 也 许 会 问 为 什 么 要 用 UDP 这 种 看 起 来 靠 天 吃 饭 的 协 议? 一 个 包 裹 一 次 电 话 你 也 许 觉 得 没 什 么, 如 果 一 千 个 包 裹 呢? 一 万 个 呢? 如 果 送 一 个 包 括 要 两 天, 而 这 个 电 话 本 身 打 通 的 时 间 都 要 3 个 小 时 呢, 如 果 电 话 每 分 钟 5 美 元 话 费 呢? 所 以, 如 果 要 寄 送 的 东 西 并 不 是 那 么 贵 重 必 须 保 证 准 确 到 达, 而 快 递 公 司 毕 竟 也 没 有 不 靠 谱 到 10 个 包 丢 8 个 的 地 步, 这 个 电 话 连 接 过 程 就 显 得 有 些 影 响 效 率 了 就 好 像 一 家 卖 袜 子 的 淘 宝 店 一 天 如 果 要 发 1000 件 货, 一 双 袜 子 1 块 9 毛 9 包 邮 他 才 不 会 每 件 发 货 前 都 跟 你 打 电 话 通 知 一 下, 到 货 了 再 跟 你 电 话 确 认 一 下 东 西 到 了 没 ; 他 只 负 责 把 货 发 出 去, 剩 下 送 货 和 确 认 收 货 就 不 管 了, 真 要 管 的 话 打 个 电 话 可 能 就 要 赔 钱 了 这 里 我 们 归 纳 一 下 TCP 和 UDP 的 区 别 : 特 点 TCP UDP 可 靠 性 面 向 连 接, 高 无 连 接, 低 按 序 传 输 按 先 后 顺 序 到 达 随 机 实 现 难 度 需 要 进 行 数 据 重 组 恢 复, 复 杂 不 在 乎 顺 序, 简 单 传 输 单 位 数 据 流 ( 水 管 ) 数 据 包 ( 包 裹 ) 应 用 范 围 HTTP,FTP,MAIL DNS,TFTP,VOIP
16 第 一 章 网 络 基 础 知 识 什 么 是 VPN? 不 是 说 好 最 后 两 概 念 了 吗? 怎 么 又 来 一 个! 我 不 是 说 了 可 能 嘛, 章 节 规 划 这 种 事 我 从 来 都 不 擅 长 其 实 你 想 想, 做 个 翻 墙 路 由 如 果 连 VPN 4 是 啥 都 不 先 说 清 楚, 可 能 吗? 如 果 你 经 常 玩 海 外 服 的 游 戏, 你 可 能 已 经 用 过 VPN 了, 很 多 游 戏 加 速 器 什 么 的 其 本 质 就 是 VPN, 只 不 过 一 般 他 们 会 控 制 一 下 路 由 表 ( 算 了, 路 由 表 以 后 再 说 吧 ), 让 你 的 机 器 只 对 游 戏 服 务 器 走 VPN 线 路, 而 对 其 他 服 务 器 的 访 问 还 是 走 你 原 来 的 线 路, 这 其 实 已 经 类 似 一 个 FreeRouter 了, 只 不 过 翻 墙 的 范 围 不 是 你 自 己 决 定 的 如 果 你 认 为 VPN 就 是 一 个 代 理 那 就 错 了, 纯 粹 的 VPN 本 身 不 能 提 供 任 何 代 理 作 用 VPN 的 全 名 是 Virtual Private Network, 就 是 虚 拟 私 有 网 络 中 间 的 实 现 原 理 我 们 就 不 管 了, 其 结 果 就 是 : 在 客 户 端 建 立 了 一 个 虚 拟 的 网 卡, 这 个 虚 拟 的 网 卡 和 服 务 器 的 虚 拟 网 卡 之 间 建 立 了 一 条 虚 拟 的 专 用 通 道 图 1.8: VPN 等 效 结 构 所 有 经 过 这 个 通 道 传 输 的 数 据, 都 会 经 过 不 同 的 VPN 协 议 加 密 打 包 最 后 封 装 成 可 以 被 现 实 网 络 接 收 的 数 据 格 式, 通 过 现 实 的 网 络 接 口 传 达 到 对 方 之 后 5, 再 以 之 前 建 立 连 接 时 商 量 好 的 的 VPN 协 议, 对 数 据 进 行 拆 包 和 解 密 那 你 能 看 出 这 个 过 程 哪 里 像 个 代 理 吗? 当 然 没 有 4 本 文 默 认 只 讨 论 PPTP VPN 这 一 种 类 型, 其 他 类 型 的 原 理 不 同, 但 在 FreeRouter 上 的 应 用 方 式 基 本 一 样 5 虚 拟 的 始 终 是 虚 拟 的, 只 是 让 操 作 系 统 看 起 来 以 为 有 一 个 网 卡 而 已, 实 际 在 物 理 上 并 不 存 在
17 第 一 章 网 络 基 础 知 识 12 纯 粹 的 VPN 配 置, 就 是 让 你 和 服 务 器 之 间 建 立 了 一 个 连 接, 如 果 其 他 人 再 连 进 服 务 器 来, 你 和 其 他 人 就 类 似 处 于 同 一 个 局 域 网 内 了 那 么 通 过 VPN 远 程 访 问 办 公 室 的 服 务 器 资 源, 或 者 实 现 翻 墙, 游 戏 代 理 是 怎 么 实 现 的 呢? 在 Linux 系 统 上, 这 个 是 借 助 系 统 防 火 墙 的 转 发 功 能 实 现 的 VPN 建 立 之 后 相 当 于 一 个 局 域 网, 而 VPN 服 务 器 就 是 这 个 局 域 网 的 网 关, 所 有 局 域 网 客 户 端 的 数 据 都 会 先 发 送 到 服 务 器 这 个 虚 拟 网 关 上 那 么 在 防 火 墙 规 则 里, 就 可 以 把 所 有 来 自 这 个 虚 拟 局 域 网 IP 的 数 据, 全 部 转 发 到 一 个 现 实 的 网 卡 上 去, 如 果 这 个 网 卡 连 接 了 办 公 室 的 网 络, 那 么 你 就 可 以 通 过 VPN 访 问 办 公 室 网 络 了 如 果 你 还 是 觉 得 VPN 的 概 念 太 玄 幻, 你 就 把 VPN 当 做 你 计 算 机 / 路 由 上 接 入 的 另 一 条 网 线 好 了 谈 到 这 里 我 觉 得 又 不 得 不 再 补 充 两 个 概 念 了, 因 为 你 可 能 已 经 对 上 一 段 话 的 一 些 语 句 感 到 迷 茫 了, 放 心, 这 两 个 概 念 都 会 说 得 很 简 洁 ( 因 为 真 的 不 简 单 ) 1.9 网 卡 / 接 口 / 适 配 器? 网 卡 是 现 实 世 界 的 概 念, 是 你 看 的 见 摸 得 着 的 东 西 也 许 你 也 听 说 过, 对 于 Linux 系 统 来 说 一 切 事 物 都 是 文 件, 同 样 的,Linux 系 统 对 网 卡 的 操 作, 包 括 数 据 收 发 也 都 是 通 过 一 个 网 卡 的 文 件 形 式 化 身 来 实 现 的, 这 个 化 身 在 操 作 系 统 里 就 被 叫 做 接 口 在 Linux 终 端 里 输 入 ifconfig 命 令 就 可 以 看 到 你 的 机 器 有 哪 些 接 口 了 : 图 1.9: OpenWRT 路 由 下 的 接 口 可 以 看 到, 建 立 VPN 连 接 之 后, 我 的 路 由 里 有 一 个 叫 pptp-vpn 的 接 口, 这 对 路 由 的 系 统 来 说 就 是
18 第 一 章 网 络 基 础 知 识 13 一 个 可 用 的 网 卡 在 windows 里 面, 这 个 一 般 被 叫 做 网 络 适 配 器, 可 以 通 过 ipconfig /all 来 查 看 你 可 以 把 网 卡 / 接 口 / 适 配 器 看 做 是 护 照, 当 你 有 了 一 国 的 护 照, 你 至 少 就 有 了 在 这 个 国 家 行 走 的 权 利, 在 这 个 国 家 行 走 的 权 利 就 是 这 本 护 照 对 应 着 的 网 络 1.10 什 么 是 网 关? 我 们 速 战 速 决 解 决 这 个 概 念, 因 为 真 的 展 开 起 来 将 非 常 麻 烦 汉 子 汉 字 是 非 常 美 妙 的 ( 一 不 小 心 差 点 出 柜 了 ), 网 关 这 两 个 字 其 实 就 已 经 告 诉 了 你 们 它 的 含 义 : 一 个 网 络 的 关 卡 我 们 说 了 接 口 好 像 护 照, 颁 发 护 照 的 国 家 就 是 对 应 的 网 络, 但 你 如 果 想 要 出 国, 就 必 须 通 过 出 入 境 关 卡 才 行, 哪 怕 你 要 去 的 国 家 是 免 签 的, 这 个 出 入 境 关 卡 就 是 网 关 默 认 网 关, 顾 名 思 义, 就 是 当 一 个 访 问 网 络 的 请 求 没 有 被 指 定 要 走 哪 个 特 定 网 关 的 时 候, 就 走 默 认 网 关, 就 好 像 日 本 人 进 出 国 门 一 般 都 走 成 田 机 场 一 样 但 那 并 不 是 强 制 要 求, 谁 还 禁 止 你 从 东 京 飞 洛 杉 矶 吗 一 般 来 说, 当 你 连 接 上 路 由 之 后, 路 由 就 是 你 的 默 认 网 关, 你 所 有 的 数 据 都 是 通 过 路 由 收 发 的 如 6 果 有 人 进 行 ARP 欺 骗 让 你 误 以 为 他 的 机 器 是 默 认 网 关, 那 么 你 所 有 的 网 络 数 据 都 会 通 过 他 的 机 器, 对 于 FTP 和 SMTP 这 种 连 密 码 都 是 明 文 的 协 议, 他 就 可 以 在 自 己 机 器 上 完 全 截 获, 轻 松 获 得 你 的 密 码 我 们 也 说 了, 默 认 网 关 是 当 网 络 请 求 没 有 指 定 网 关 的 时 候 走 的 通 路, 如 果 你 愿 意, 你 也 可 以 要 求 走 其 他 的 网 关 例 如 你 可 以 设 定 访 问 某 个 IP 的 时 候, 不 走 默 认 网 关 而 走 特 定 的 网 关 当 然, 同 时 伴 随 着 的 是, 你 肯 定 要 使 用 这 个 网 关 所 对 应 的 接 口 来 使 用 这 个 网 关 例 如 你 现 在 在 太 平 洋 中 间 的 公 海, 你 要 去 看 兵 马 俑, 你 就 可 以 拿 着 中 国 护 照 ( 接 口 ) 从 北 京 出 入 境 关 卡 ( 网 关 ) 进 入 中 国 ; 而 如 果 你 要 去 看 自 由 女 神, 你 就 可 以 拿 着 美 国 护 照 ( 另 一 个 接 口 ) 从 纽 约 ( 另 一 个 网 关 ) 入 境 你 也 可 以 在 使 用 一 个 接 口 访 问 网 络 的 时 候 不 指 定 这 个 接 口 的 网 关, 这 个 时 候 就 会 使 用 这 个 接 口 的 默 认 网 关, 我 们 一 般 面 对 的 都 是 这 个 情 况 而 针 对 不 同 的 目 的 地, 选 择 性 的 使 用 网 关 / 接 口, 这 个 其 实 就 是 FreeRouter 实 现 针 对 网 站 ( 准 确 的 说 是 域 名 ) 选 择 性 翻 墙 的 关 键 所 在 6 这 个 真 不 能 再 讲 了, 自 己 搜
19 第 二 章 GFW 的 工 作 方 式 你 可 以 很 轻 易 的 欺 骗 全 世 界, 但 你 这 辈 子 也 骗 不 了 自 己 在 有 了 一 些 基 本 的 网 络 知 识 之 后, 我 们 现 在 讲 讲 GFW 的 工 作 方 式, 所 谓 知 己 知 彼 百 战 不 殆 嘛 不 过 GFW 本 身 是 一 个 人 人 都 知 道 它 存 在, 却 从 来 不 会 被 官 方 承 认 的 机 构, 就 好 像 秘 密 警 察 部 门 一 样 所 以 对 于 它 的 工 作 方 式, 各 方 也 都 只 能 是 通 过 分 析 和 模 拟 来 大 致 猜 测, 也 许 已 经 接 近 真 相, 但 永 远 都 不 等 于 真 相 首 先 你 要 明 白 GFW 的 目 的 是 什 么, 它 不 是 要 阻 止 你 访 问 所 有 的 境 外 网 站, 也 不 是 允 许 你 访 问 所 有 的 境 内 网 站 如 果 一 个 国 内 网 站 出 现 它 不 想 看 到 的 东 西, 基 于 现 在 中 国 宽 带 网 络 的 现 状, 网 警 要 动 手 清 理 一 个 境 内 网 站 实 在 太 容 易 了, 不 过 这 就 不 在 我 们 的 关 心 范 围 里 了 话 说 回 来, 在 国 内 开 反 动 网 站 的 话, 这 种 智 商 的 确 令 人 心 痛 对 于 境 外 的 网 站,GFW 的 封 锁 重 点 是 : 新 闻, 社 交, 政 治, 色 情, 文 件 共 享 类 网 站 其 他 几 种 很 好 理 解, 社 交 类 的 原 因 是 因 为 阿 拉 伯 之 春 的 很 多 串 联 都 是 通 过 facebook 完 成 的, 而 twitter 又 是 实 际 上 的 最 大 的 即 时 新 闻 发 布 站 点, 文 件 共 享 类 网 站 可 以 让 人 们 很 方 便 的 传 播 一 些 它 不 想 看 到 的 东 西 对 于 GFW 来 说, 最 有 效 的 方 式 是 什 么? 请 参 考 第 一 章 的 题 注 一 2.1 DNS 劫 持 和 污 染 如 果 从 技 术 实 现 上 来 说,GFW 做 有 效 的 方 式 当 然 是 DNS 劫 持 和 污 染 了, 也 许 你 对 这 个 东 西 完 全 没 概 念, 但 实 际 上 你 这 么 多 年 来 可 能 一 直 在 被 这 东 西 祸 害 着 在 这 里 先 教 你 一 个 简 单 的 命 令 :nslookup 开 始 菜 单, 运 行 (win8 用 户 win+r 键 ), 输 入 cmd, 回 车 分 别 用 nslookup 查 一 下 facebook.com(nslookup facebook.com) 和 twitter.com(nslookup twitter.com) 的 域 名, 重 复 几 次 是 不 是 发 现 点 问 题? 这 两 个 网 站 怎 么 IP 是 一 样 的?facebook 准 备 收 购 twitter 了? 你 再 试 试 14
20 第 二 章 GFW 的 工 作 方 式 15 youtube.com, 嗯, 你 总 不 会 觉 得 Google 要 把 youtube 卖 给 facebook 吧 之 所 以 会 看 到 这 种 奇 怪 的 景 象, 就 是 GFW 的 DNS 污 染 在 作 怪 我 们 前 面 已 经 说 了, 要 访 问 一 个 网 站, 首 先 的 步 骤 是 通 过 DNS 服 务 器 解 析 这 个 网 站 域 名 对 应 的 IP, 可 是 如 果 DNS 服 务 器 返 回 给 你 的 IP 都 是 错 的, 你 又 怎 么 可 能 访 问 到 网 站 呢? 好 比 你 想 从 广 州 去 北 京, 阻 止 你 的 最 好 办 法 不 是 半 路 截 杀 你, 而 是 告 诉 你 上 船 一 路 往 南 走 GFW 的 DNS 劫 持 是 造 成 劫 持 和 污 染 的 根 源! 很 多 人 可 能 对 GFW 的 DNS 污 染 的 概 念 始 终 停 留 在 DNS 缓 存 投 毒 这 个 概 念 上, 什 么 叫 缓 存 投 毒? 首 先 要 了 解 什 么 是 DNS 缓 存 因 为 DNS 系 统 设 计 的 时 候, 就 考 虑 到 这 是 一 个 需 要 频 繁 响 应 的 系 统, 所 以 一 条 域 名 记 录 被 查 询 到 之 后, 都 会 在 DNS 服 务 器 的 缓 存 中 驻 留 一 段 时 间, 这 样 下 次 查 询 的 时 候 就 直 接 从 缓 存 中 读 取 记 录 而 不 需 要 再 次 进 行 递 归 查 询 了 如 果 错 误 的 记 录 进 入 了 DNS 服 务 器, 这 个 错 误 的 记 录 就 会 被 保 持 一 段 时 间 1, 如 果 在 缓 存 过 期 后 又 有 一 次 错 误 的 信 息 进 入, 那 么 还 是 继 续 保 留 这 错 误 的 记 录, 这 个 过 程 如 果 一 直 重 复, 服 务 器 就 永 远 无 法 返 回 正 确 的 记 录 了, 这 就 成 了 缓 存 中 毒 而 一 般 意 义 上 的 黑 客 的 缓 存 投 毒, 是 通 过 生 日 攻 击 2 这 种 方 式 进 行 的,GFW 需 要 用 这 么 低 级 的 手 段 吗? 黑 客 需 要 发 送 生 日 攻 击, 目 的 是 通 过 两 边 大 量 的 数 据 碰 撞 猜 到 查 询 者 发 起 的 查 询 的 Transaction ID, 因 为 只 有 响 应 包 的 Transaction ID 和 请 求 包 的 一 样 才 会 被 查 询 者 接 受 但 是 GFW 完 全 控 制 了 中 国 网 络 的 对 外 出 口 网 关, 他 还 需 要 猜 你 的 Transaction ID 吗? 他 只 要 直 接 嗅 探 就 行 了, 就 好 像 你 在 自 己 的 路 由 上 用 TcpDump 抓 取 所 有 通 过 路 由 的 网 路 数 据 一 样, 既 然 可 以 嗅 探 到 你 全 部 的 DNS 查 询 数 据,GFW 想 要 伪 造 一 个 响 应 包 也 就 完 全 没 有 困 难 了 除 了 嗅 探 DNS 查 询 数 据, 其 实 所 有 的 明 文 传 输 的 密 码 (FTP,SMTP 等 ) 都 是 可 以 轻 松 被 嗅 探 到 的 我 们 前 面 已 经 说 了,DNS 是 基 于 UDP 协 议 的, 而 UDP 这 种 不 面 向 连 接 的 协 议 是 极 度 缺 乏 安 全 性 的, 你 完 全 不 能 保 证 当 你 向 一 个 服 务 器 查 询 DNS 记 录 后, 返 回 记 录 给 你 的 真 的 就 是 那 台 DNS 服 务 器 我 们 知 道,13 套 根 域 名 服 务 器 系 统 没 有 一 套 是 在 中 国 的, 中 国 只 有 镜 像, 而.com,.net 这 些 顶 级 域 名 称 服 务 器 在 中 国 连 镜 像 都 没 有, 而 twitter facebook youtube 这 些 域 名 的 权 威 名 称 服 务 器 更 是 毫 无 疑 问 的 全 部 在 国 外, 所 以 DNS 服 务 器 在 递 归 查 询 这 些 网 站 域 名 的 A 记 录 的 时 候, 信 息 一 定 会 经 过 GFW 到 国 外 现 在 GFW 知 道 了 你 ( 某 台 DNS 服 务 器 ) 要 向 国 外 的 某 个 服 务 器 查 询 twitter.com 的 A 记 录, 在 国 外 服 务 器 返 回 正 确 的 信 息 给 你 之 前,GFW 就 伪 造 一 个 响 应 包 给 你, 告 诉 你 twitter.com 的 服 务 器 在 新 疆 某 个 山 沟 里,IP 是 什 么 什 么 再 强 调 一 次,UDP 包 是 无 法 判 断 来 源 的 真 实 性 的, 而 GFW 伪 造 的 包 里 所 有 信 息 都 符 合 DNS 协 议 规 范,DNS 服 务 器 就 接 受 了 这 个 错 误 的 记 录 1 不 光 是 服 务 器, 我 们 自 己 的 机 器 也 会 对 DNS 记 录 有 一 个 缓 存, 可 以 用 命 令 ipconfig /flushdns 来 清 空 这 个 缓 存 2 一 边 向 服 务 器 发 动 大 量 未 知 域 名 的 解 析 请 求, 促 使 服 务 器 向 上 级 名 称 服 务 器 也 发 出 大 量 请 求, 一 边 同 时 伪 造 大 量 响 应 数 据 给 服 务 器, 当 数 目 足 够 大 的 时 候, 伪 造 响 应 的 Transaction ID 就 可 能 和 服 务 器 查 询 的 Tranaction ID 重 合, 使 得 伪 造 的 响 应 被 服 务 器 接 受
21 第 二 章 GFW 的 工 作 方 式 16 图 2.1: DNS 劫 持 流 程 那 么 国 外 的 服 务 器 就 不 会 返 回 正 确 的 信 息 过 来 了 吗? 会, 一 定 会, 因 为 UDP 虽 然 不 安 全, 但 基 本 上 还 是 可 以 送 达 的 但 是 你 别 忘 了, 错 误 的 信 息 已 经 抢 先 进 入 了 DNS 服 务 器 的 缓 存, 后 面 再 过 来 的 数 据 DNS 服 务 器 已 经 完 全 当 它 不 存 在 了 谁 先 到 谁 就 是 对 的, 这 就 是 扯 淡 的 DNS 逻 辑, 而 国 外 服 务 器 再 快, 也 不 可 能 快 过 守 在 边 境 的 GFW 网 关, 所 以 你 在 用 配 合 dig 这 些 工 具 查 询 域 名 的 时 候 会 发 现, 也 许 解 析 taobao.com 花 了 200 毫 秒, 而 解 析 twitter.com 只 花 了 30 毫 秒, 那 是 因 为 这 个 根 本 就 是 GFW 在 国 内 发 回 给 你 的 以 上 所 描 述 的,GFW 抢 先 于 境 外 服 务 器 返 回 给 你 一 个 错 误 结 果 的 行 为, 就 叫 做 DNS 劫 持 根 据 我 的 观 察 分 析,GFW 这 个 劫 持 行 为 是 发 生 在 所 有 对 国 外 IP 进 行 敏 感 域 名 查 询 的 时 候, 不 是 说 只 有 你 在 往 这 些 知 名 国 外 DNS 查 询 的 时 候 才 会 发 生 劫 持, 你 也 不 要 指 望 说 能 不 能 找 到 个 比 较 低 调 没 被 GFW 发 现 的 DNS 服 务 器 IP 可 以 不 被 劫 持, 没 用 的 GFW 甚 至 都 不 用 判 断 目 标 IP 是 什 么, 只 要 是 通 过 出 口 网 关 往 外 面 跑 的, 查 询 敏 感 域 名 的 全 部 劫 持, 这 个 我 可 以 很 明 确 的 告 诉 你 说 到 这 个 什 么 低 调 的 没 被 GFW 发 现 的 DNS, 我 又 忍 不 住 要 说 个 题 外 话 Google 被 封 锁 之 后, 有 些 人 知 道 可 以 通 过 查 找 未 被 封 锁 IP 的 方 式 访 问 Google, 这 本 来 没 什 么, 各 有 各 的 方 法 可 偏 偏 有 些 人, 自 己 知 道 了 这 些 IP 之 后 就 把 这 些 信 息 当 成 了 自 己 的 私 有 财 产 你 不 肯 分 享 给 别 人 就 算 了, 还 要 去 攻 击 那 些 分 享 这 些 IP 的 人, 说 什 么 这 会 让 GFW 赶 尽 杀 绝 的 我 只 想 说 这 几 条 : 1. 没 别 人 的 分 享, 你 他 妈 哪 里 知 道 这 些 IP 的? 真 正 自 己 去 找 到 这 些 IP 的 人 根 本 不 会 说 这 种 话 2. 你 他 妈 真 以 为 GFW 会 需 要 你 来 告 诉 他 哪 些 IP 没 被 封? 真 要 想 动 手, 全 国 局 域 网 + 白 名 单 模 式 早 就
22 第 二 章 GFW 的 工 作 方 式 17 可 以 启 动 了 3. 自 我 阉 割 的 人 只 有 做 太 监 一 条 路 可 以 走, 还 未 必 做 得 成 4. Google 的 IP 从 来 就 不 是 你 的 私 有 财 产, 这 种 想 法 的 本 质, 除 了 自 私 还 是 自 私 好 吧 我 骂 完 了, 关 于 DNS 劫 持 的 具 体 发 生 阶 段 和 一 些 实 例 分 析, 可 以 参 考 我 网 站 上 的 文 章 : 重 新 理 解 GFW 的 DNS 污 染 和 劫 持 策 略 虚 假 IP 劫 持 那 么,GFW 会 返 回 一 些 什 么 样 的 错 误 信 息 给 你 呢? 就 目 前 各 方 面 统 计 的 信 息 来 看,GFW 返 回 给 你 的 虚 假 信 息, 其 实 就 是 篡 改 了 域 名 的 A 记 录 部 分, 把 你 指 引 导 错 误 的 IP 就 行 了 准 确 的 说, 不 只 是 A 记 录, 对 于 记 录 IPV6 地 址 的 AAAA 记 录 他 们 也 是 一 样 会 劫 持 的, 相 关 信 息 参 考 本 站 文 章 :GFW 的 DNS 劫 持 也 会 干 扰 IPV6 的 AAAA 记 录 目 前 还 值 的 庆 幸 的 是,GFW 返 回 的 虚 假 记 录 只 用 了 一 些 特 定 的 IP, 我 们 可 以 通 过 一 些 手 段 3 来 过 滤 掉 这 些 信 息, 从 而 获 得 正 确 的 解 析 结 果 3 目 前 已 知 的,GFW 用 于 DNS 劫 持 污 染 的 IP 有 48 个 4, 如 下 表 : 第 三 章 iptables 部 分 会 提 到 4 从 2015 年 年 初 开 始, 这 个 数 字 已 经 达 到 几 千, 对 应 的 防 污 染 办 法 也 跟 随 着 修 改, 传 统 的 依 靠 防 火 墙 过 滤 规 则 挡 住 污 染 的 方 法 已 经 失 效
23 第 二 章 GFW 的 工 作 方 式 关 于 为 什 么 使 用 特 定 IP 而 不 是 随 机 IP, 可 能 的 原 因 有 以 下 几 点 : 1. 因 为 劫 持 工 作 量 巨 大, 如 果 使 用 随 机 数 的 话, 生 成 随 机 数 的 计 算 负 担 会 更 重 2. 随 机 IP 可 能 指 向 正 常 工 作 的 网 站, 加 上 这 种 解 析 请 求 的 数 量 巨 大, 会 破 坏 全 球 网 络 的 稳 定 性 3. 部 分 IP 指 向 的 是 制 作 自 由 门 等 翻 墙 软 件 的 公 司, 通 过 这 种 方 式 实 际 上 是 对 他 们 发 起 DDOS 5 攻 击 空 包 劫 持 除 了 返 回 错 误 的 信 息 之 外, 我 还 观 察 到 一 次 很 特 殊 的 GFW 对 境 内 DNS 的 空 包 劫 持 没 错, 境 内, 这 也 在 提 醒 我 们 GFW 不 是 简 单 的 只 工 作 在 出 国 网 关 上, 而 是 同 时 也 分 部 在 全 国 各 个 骨 干 网 络 上 的 这 次 劫 持 发 生 在 我 用 114DNS 查 询 instagram 的 一 个 CDN 节 点 域 名 scontent-a.cdninstagram.com 的 时 候 我 们 的 查 询 包 默 认 是 要 求 服 务 器 做 递 归 查 询 的, 按 标 准 服 务 器 在 返 回 包 中 也 应 该 注 明 它 知 道 了 你 发 出 了 递 归 的 请 求, 可 是 GFW 劫 持 了 我 向 114 的 这 个 请 求, 返 回 了 一 个 不 需 要 递 归 请 求 的 响 应 包, 同 时 没 有 任 何 A 记 录, 而 Reply Code 中 的 错 误 代 码 是 没 有 错 误 5 分 布 式 拒 绝 服 务 攻 击
24 第 二 章 GFW 的 工 作 方 式 19 和 不 检 查 返 回 源 的 真 实 性 一 样,DNS 甚 至 都 不 会 检 查 应 答 包 中 关 于 递 归 请 求 的 部 分 是 否 发 生 了 变 化, 这 样 一 个 不 需 递 归 请 求, 没 有 A 记 录, 没 有 无 错 误 代 码 的 结 果 就 被 DNS 的 解 析 器 ( 客 户 端, 我 们 的 路 由 或 者 电 脑 ) 接 受 了, 因 为 格 式 完 全 符 合 协 议 规 范 啊, 然 后 一 个 明 明 存 在 的 域 名 就 成 了 找 不 到 IP 的 域 名 了 关 于 这 个 问 题, 具 体 细 节 参 考 文 章 GFW 的 DNS 劫 持 中 的 空 包 污 染 问 题 空 包 劫 持 的 问 题, 因 DNS ISP 不 同 有 很 大 的 区 别, 且 针 对 的 域 名 很 少, 总 的 来 说 这 种 行 为 是 GFW 的 DNS 劫 持 中 的 少 数 派 而 对 于 空 包 污 染 的 过 滤, 规 则 很 容 易 和 迭 代 查 询 的 数 据 包 匹 配 上, 所 以 会 阻 止 本 地 发 起 的 迭 代 查 询 的 结 果 但 我 们 的 OS 所 发 出 的 DNS 请 求 默 认 都 是 递 归 请 求, 基 本 上 不 用 担 心 这 个 问 题, 如 果 你 在 使 用 某 些 调 试 工 具 ( 例 如 Dig+trace 选 项 ) 的 时 候 发 现 没 有 数 据 返 回, 请 先 禁 用 这 个 空 包 过 滤 规 则 轻 松 的 扩 散 污 染 GFW 劫 持 搞 定 了 所 有 对 境 外 服 务 器 发 起 的 DNS 解 析 请 求 的, 就 从 源 头 上 保 证 了 我 们 的 递 归 DNS 服 务 器 只 可 能 获 得 敏 感 域 名 的 错 误 IP 那 剩 下 的 工 作 就 是 扩 散 污 染 了 我 们 前 面 说 过,DNS 服 务 器 有 两 种 工 作 方 式 1.6, 分 别 是 递 归 和 迭 代, 迭 代 是 一 种 很 蛋 疼 的 工 作 方 式, 但 现 实 中 总 还 是 有 部 分 DNS 服 务 器 是 在 以 迭 代 的 方 式 工 作 的 按 理 说, 这 些 DNS 服 务 器 几 乎 是 没 有 什 么 解 析 能 力 的 可 实 际 上 呢, 大 部 分 情 况 下 他 们 又 可 以 对 几 乎 所 有 域 名 的 解 析 请 求 都 做 出 响 应 那 么 他 们 自 己 不 能 做 递 归 查 询 去 获 取 域 名 的 各 种 记 录, 这 些 记 录 是 哪 里 来 的 呢?DNS 体 系 里, 还 有 一 个 东 西 叫 做 Zone Transfer 普 通 的 DNS 查 询, 一 般 只 是 查 询 域 名 的 A 记 录 1.5,DNS 服 务 器 也 只 是 响 应 一 条 A 记 录 但 是 DNS 中 还 有 一 种 特 殊 的 记 录 查 询, 叫 做 AXFR 记 录 当 一 个 DNS 服 务 器 接 收 到 这 种 记 录 查 询 的 时 候, 如 果 系 统 的 配 置 没 有 禁 止 这 条 命 令 的 查 询, 他 就 会 把 自 己 服 务 器 内 所 存 储 的 全 部 域 名 的 全 部 记 录 都 传 输 给 请 求 者, 这 个 过 程 因 为 数 据 量 庞 大 需 要 进 行 持 久 的 连 续 传 输, 且 安 全 性 要 求 高, 一 般 是 通 过 TCP 协 议 传 输 的, 如 果 走 UDP 的 话 可 以 被 黑 客 用 于 实 现 能 量 恐 怖 的 DNS 放 大 攻 击 7 这 样 一 个 查 询 AXFR 记 录, 并 取 得 另 一 台 DNS 服 务 器 上 所 有 记 录 的 过 程, 就 叫 做 Zone Transfer 不 过 一 般 来 说 DNS 服 务 器 都 不 会 支 持 或 允 许 你 任 意 查 询 AXFR 记 录, 否 则 负 担 会 大 的 不 可 思 议, 一 般 他 们 会 有 防 火 墙 策 略 只 允 许 特 定 的 主 机 查 询 AXFR 记 录 进 行 Zone Transfer 对 于 那 些 不 支 持 递 归 的 ISP 的 DNS 服 务 器, 只 可 能 是 以 这 样 的 形 式 取 得 域 名 记 录 的 ( 别 跟 我 说 拿 U 盘 拷 啊 ) 那 么 好 了, 支 持 递 归 解 析 的 DNS 服 务 器 已 经 被 劫 持 了, 而 只 能 迭 代 的 DNS 服 务 器 又 只 能 从 递 归 服 务 器 那 里 通 过 Zone Transfer 复 制 记 录, 毫 无 疑 问 复 制 到 的 也 是 被 污 染 的 数 据, 那 么 全 国 的 DNS 就 已 经 被 6 具 体 的 规 则 会 在 后 面 的 章 节 讨 论 7 指 利 用 伪 造 UDP 包 的 查 询 源 ( 被 攻 击 者 的 IP), 通 过 DNS 查 询 数 据 量 大 的 域 名 记 录 ( 例 如 TXT 记 录 ), 最 终 让 DNS 服 务 器 把 这 个 庞 大 的 响 应 包 返 回 到 被 攻 击 者 的 过 程, 而 庞 大 的 DNS 响 应 一 般 会 转 以 TCP 协 议 传 送, 这 就 造 成 了 被 攻 击 者 的 TCP 端 口 阻 塞
25 第 二 章 GFW 的 工 作 方 式 20 GFW 搞 定 了 你 也 许 会 说, 万 一 我 从 国 外 的 DNS 服 务 器 进 行 Zone Transfer 呢, 你 不 是 说 Zone Transfer 还 是 走 TCP 的 吗, 这 一 般 不 会 被 劫 持 了 吧 我 很 感 激 你 有 这 么 聪 明, 这 的 确 是 个 办 法 ( 其 实 我 也 是 临 时 想 到 的 ) 但 是 我 们 也 说 了, 绝 大 部 分 DNS 主 机 不 会 允 许 你 做 Zone Transfer, 这 个 负 担 太 重 了, 基 本 上 你 只 能 自 己 去 国 外 架 设 服 务 器, 搜 集 递 归 数 据, 然 后 Zone Transfer 到 国 内 了, 所 以 国 内 确 实 有 些 私 人 的 DNS 是 没 被 污 染 的 啊 当 然 我 觉 得 他 们 更 可 能 的 是 在 服 务 器 上 用 写 死 hosts 的 方 式 实 现 的, 这 种 方 式 怎 么 说 呢, 事 实 正 义, 而 程 序 不 正 义, 任 何 人 为 干 预 修 改 域 名 记 录 的 行 为 我 觉 得 本 质 都 是 劫 持 而 对 于 各 大 ISP 8 的 DNS 来 说, 你 觉 得 国 营 企 业, 有 这 可 能 吗? 2.2 敏 感 词 过 滤 我 对 这 种 技 术 的 研 究 比 较 少, 只 能 大 概 的 介 绍 一 下, 如 果 需 要 具 体 的 细 节, 可 以 在 你 能 翻 墙 之 后 参 考 这 篇 文 章, 还 有 这 篇 文 章, 或 者 wikipedia 上 关 于 TCP 重 置 攻 击 的 描 述 我 们 平 常 浏 览 网 页 所 用 的 协 议 叫 做 HTTP 协 议, 基 本 上 你 在 每 个 网 页 的 开 头 都 可 以 看 到 的 字 样 HTTP 协 议 本 身 是 一 个 比 TCP,UDP 更 高 一 层 的 ( 更 贴 近 用 户 ) 的 应 用 层 协 议, 但 上 层 协 议 最 终 都 是 要 以 封 包 后 以 更 底 层 传 输 层 的 方 式 进 行 传 输 例 如 DNS 协 议 是 用 UDP 协 议 传 输,HTTP 协 议 使 用 的 就 是 TCP 协 议 我 们 说 TCP 相 对 UDP 来 说 是 更 为 安 全 的, 但 这 只 是 相 对 的,TCP 数 据 依 然 是 可 以 被 中 间 人 修 改 的 最 简 单 的 例 子, 就 是 你 们 可 能 用 过 的 一 些 屏 蔽 优 酷, 土 豆 视 频 广 告 的 插 件 和 脚 本, 这 些 东 西 的 原 理 就 是 拦 截 并 修 改 HTTP 数 据 流, 将 涉 及 广 告 的 部 分 代 码 进 行 替 换 这 说 明 了 两 点,TCP 协 议 的 内 容 是 可 以 被 感 知 和 识 别 的 ( 比 如 找 到 广 告 代 码 的 部 分 ), 也 是 可 以 被 修 改 的 ( 替 换 成 无 广 告 的 代 码 ) 虽 然 TCP 协 议 不 会 像 UDP 那 么 容 易 让 第 三 方 伪 造 和 修 改 数 据, 但 肯 定 位 于 你 和 境 外 服 务 器 中 间 的 GFW 还 是 可 以 做 到 的, 没 见 过 圣 旨 的 情 况 下 伪 造 圣 旨 有 困 难, 可 是 让 传 旨 太 监 拿 着 现 成 的 圣 旨 改 个 字 还 是 很 容 易 的 8 Internet Service Provider, 网 络 服 务 提 供 商, 也 就 是 电 信, 联 通, 长 宽, 铁 通 之 类 的
26 第 二 章 GFW 的 工 作 方 式 21 图 2.2: TCP 重 置 注 入 HTTP 连 接 的 建 立, 有 一 个 著 名 的 三 次 握 手 过 程 : 客 户 端 先 向 服 务 器 发 出 连 接 请 求, 服 务 器 返 回 一 个 连 接 许 可, 客 户 端 再 发 起 连 接 确 认 如 果 GFW 检 测 到 你 要 访 问 的 某 个 地 址 中 包 含 了 敏 感 信 息 ( 域 名 本 身 可 能 就 是 敏 感 信 息 ), 他 就 修 改 或 冒 充 服 务 器 返 回 的 连 接 许 可, 告 诉 你 服 务 器 拒 绝 连 接, 这 样 客 户 端 就 会 自 己 放 弃 连 接, 你 们 平 常 上 网 经 常 看 到 的 大 部 分 网 络 连 接 被 重 置 就 是 这 个 的 结 果, 当 然, 少 数 情 况 下 可 能 服 务 器 真 的 出 问 题 也 会 拒 绝 连 接 你 也 许 会 问 我 们 能 不 能 忽 略 这 个 重 置 (RST) 消 息? 当 然 可 以, 可 是 GFW 比 你 想 得 更 多, 他 不 光 发 送 RST 给 你, 还 发 送 RST 给 服 务 器, 这 样 服 务 器 也 会 认 为 你 已 经 断 开 连 接 了, 就 不 再 发 送 数 据 给 你 了 GFW 这 种 做 法 的 优 势 很 明 显 : 不 需 要 对 完 整 的 HTTP 页 面 数 据 进 行 检 测, 只 要 发 现 URL( 网 页 地 址 ) 中 有 敏 感 信 息, 就 直 接 断 开 了 你 和 服 务 器 之 间 的 连 接, 大 大 减 轻 了 他 自 己 系 统 的 负 担 但 这 种 做 法 的 缺 点 也 很 明 显, 检 测 力 度 太 弱 了 大 家 最 熟 悉 的 例 子 莫 过 于 SexInSex 和 草 榴 这 些 色 情 网 站, 你 直 接 输 入 他 们 的 主 站 域 名 一 般 都 是 连 接 被 重 置, 但 只 要 找 个 其 他 的 IP 替 代 域 名, 一 点 问 题 都 没 有, 因 为 GFW 对 这 些 网 站 检 测 的 敏 感 信 息 仅 仅 是 URL 中 的 域 名, 在 你 把 域 名 替 换 为 不 敏 感 的 IP 之 后, 你 查 看 的 页 面 里 面 有 100 个 无 码 200 个 3P 它 也 完 全 不 在 乎 但 不 是 说 GFW 对 敏 感 信 息 的 检 测 仅 限 于 域 名, 对 于 一 些 数 据 量 很 大, 内 容 庞 杂 的 网 站,GFW 的 URL 检 测 会 精 确 到 页 面 例 如 你 在 wikipedia 上 查 种 猪 饲 养 技 术, 党 和 国 家 会 为 多 了 一 个 纳 税 人 感 到 高 兴 而 绝 对 不 拦 你, 可 是 如 果 你 要 查 八 九 年 天 安 门 学 运, 那 90 秒 内 你 就 别 想 访 问 wikipedia 了 我 们 也 经 常 碰 到 另 一 种 情 况, 就 是 某 些 网 站 使 用 的 是 HTTPS 协 议, 似 乎 在 使 用 这 些 网 站 的 时 候 我 们 从 来 不 会 碰 到 页 面 连 接 被 重 置 的 问 题, 这 是 为 什 么 呢? 这 是 因 为 HTTPS 采 用 了 公 钥 + 私 钥 9 加 密 技 术, 数 据 在 封 包 成 TCP 包 之 前 就 已 经 被 加 密 过, 敏 感 的 信 息 被 加 密 之 后 就 是 一 堆 无 法 解 读 的 乱 码, 这 些 信 息 对 于 GFW 来 说 是 无 法 解 读 的, 或 者 说 解 读 成 本 是 巨 大 的, 这 就 使 得 一 直 到 今 天 ( 2015 年 1 月 21 日 ), 我 们 也 没 有 看 到 哪 个 HTTPS 页 面 被 GFW 连 接 重 置 9 在 下 一 章 讲 DNSSEC 的 时 候 会 再 谈 公 钥 + 私 钥 加 密 体 系
27 第 二 章 GFW 的 工 作 方 式 IP 阻 断 这 应 该 是 我 所 知 道 的 GFW 的 最 后 绝 招 了 我 们 前 面 说 了 GFW 的 手 段 有 DNS 污 染, 敏 感 词 检 测 重 置, 如 果 一 个 网 站 不 用 域 名 直 接 用 IP, 或 者 有 很 多 方 法 可 以 让 别 人 知 道 它 域 名 的 真 实 IP( 草 榴 在 这 方 面 就 很 出 色 嘛 ), 同 时 页 面 还 都 是 HTTPS 形 式 加 密 过 的,GFW 就 没 办 法 了?Naive! 没 办 法 骗 你 去 南 半 球 看 兵 马 俑 了, 骗 你 说 紫 禁 城 被 拆 迁 了 你 也 不 相 信 了, 老 子 就 把 你 要 走 的 路 直 接 给 断 了 其 实 我 觉 得 我 应 该 在 第 一 章 补 充 一 个 路 由 概 念 的, 好 吧, 就 在 这 里 说 吧 首 先 我 们 要 知 道, 网 络 上 的 任 意 两 个 IP, 他 们 之 间 建 立 连 接 几 乎 都 不 可 能 是 直 连 的, 如 果 任 意 两 个 IP 都 可 以 直 连,GFW 就 只 能 裁 掉 全 部 技 术 人 员 改 建 爆 破 大 队 直 接 破 门 了, 就 好 像 如 果 你 从 广 州 到 北 京 是 通 过 一 条 直 通 的 封 闭 管 道 进 行 的, 那 车 匪 路 霸 早 饿 死 了 无 论 是 面 向 连 接 的 TCP, 还 是 不 面 向 连 接 的 UDP, 数 据 在 网 络 上 的 两 个 IP 之 间 的 传 送, 都 是 通 过 一 级 一 级 的 路 由 中 继 完 成 的, 只 不 过 TCP 的 中 继 路 径 在 连 接 建 立 之 后 是 固 定 的, 而 UDP 的 中 继 路 径 每 次 都 不 同 例 如 你 要 从 国 内 的 A 到 国 外 的 B, 数 据 传 送 的 实 际 路 径 可 能 是 这 样 的 : 图 2.3: 静 态 路 由 丢 弃 别 的 节 点 都 可 能 会 变, 但 GFW 肯 定 会 在 这 条 路 的 中 间 出 现 是 不 用 怀 疑 的 你 看,GFW 这 个 位 置 不 当 车 匪 路 霸 都 可 惜 了 一 个 数 据 到 达 一 个 节 点 后, 下 一 个 节 点 发 往 哪 里 是 由 一 个 叫 路 由 表 的 东 西 控 制 的, 动 态 路 由 10 表 是 由 一 套 路 由 算 法 得 出 的, 而 静 态 路 由 表 则 是 可 以 人 为 指 定 的 GFW 觉 得 静 态 路 由 表 是 个 好 东 西, 就 充 分 发 挥 了 它 的 错 误 利 用 10 虽 然 现 在 针 对 动 态 路 由 表 的 BGP 劫 持 技 术 GFW 也 早 就 掌 握 了, 但 我 们 先 不 考 虑 这 么 复 杂 的 东 西
28 第 二 章 GFW 的 工 作 方 式 23 假 定 GFW 发 现 某 个 境 外 反 动 网 站, 并 且 知 道 了 他 的 IP 是 我 们 已 经 知 道 GFW 是 控 制 了 中 国 的 网 络 出 口 网 关 的, 也 就 是 说 不 管 你 怎 么 访 问, 不 管 前 面 后 面 的 节 点 是 什 么, 最 终 都 要 通 过 GFW 这 个 节 点 那 么 一 个 对 发 起 的 网 络 请 求, 在 数 据 到 达 GFW 节 点 之 后, 根 据 路 由 表 下 一 个 节 点 应 该 发 往 哪 里 呢?GFW 猥 琐 地 猛 吸 一 口 烟 屁 股, 嗯, 发 往 达 美 克 星! 达 美 克 星? 没 错! 那 是 什 么 鬼 地 方? 不 知 道! 那 怎 么 办? 爱 咋 办 咋 办! 反 正 这 个 网 络 请 求 最 终 的 命 运 我 是 不 知 道, 只 知 道 它 被 发 送 到 了 一 个 黑 洞 地 址 同 样 的, 所 有 发 往 的 请 求 全 部 要 被 发 往 这 个 根 本 不 存 在 的 黑 洞 地 址 当 然 你 要 觉 得 达 美 克 星 太 残 忍, 撒 哈 拉 沙 漠 正 中 央 也 是 可 以 考 虑 的 选 项, 总 之 是 一 个 让 你 进 得 去 就 出 不 来 的 地 址 那 么, 毫 无 疑 问 的, 国 内 网 络 通 往 的 路 径 就 被 切 断 了, 你 知 道 IP 有 什 么 用, 部 署 了 HTTPS 加 密 又 有 什 么 用?
29 第 三 章 常 用 的 辅 助 工 具 这 个 世 界, 没 有 什 么 是 比 时 间 更 宝 贵 的 再 经 过 一 些 更 进 阶 的 知 识 准 备 ( 你 不 会 真 以 为 第 一 章 那 些 文 科 生 普 及 文 档 就 足 够 了 吧 ), 我 们 很 快 就 可 以 开 始 正 题 了 注 意! 本 章 的 命 令 默 认 都 是 Linux 系 统 命 令, 因 为 我 们 最 后 要 面 对 的 OpenWRT 就 是 一 个 Linux 系 统 3.1 Ping 和 TCPing 命 令 Ping 命 令, 是 一 个 基 于 网 络 层 ( 比 传 输 层 还 底 层 ) 的 ICMP(Internet Control Message Protocol) 协 议 的 命 令, 主 要 用 于 检 测 和 目 标 主 机 之 间 的 网 络 是 否 通 畅, 以 及 网 络 的 延 时 Ping 命 令 的 使 用 非 常 简 单, 开 始, 运 行,cmd, 回 车, 打 开 命 令 提 示 符 ( 我 想 linux 用 户 应 该 不 需 要 我 来 教 你 们 怎 么 打 开 terminal), ping IP 地 址, 或 者 ping 网 站 域 名 Ping 命 令 的 解 读 实 在 太 人 性 化 了, 我 觉 得 我 就 没 必 要 再 解 释 了 ping 命 令 我 们 一 般 很 少 加 别 的 参 数 运 行,windows 下 默 认 ping 只 运 行 4 次, 加 上 参 数 -t 后 可 以 让 命 令 持 续 运 行, 直 到 我 们 手 工 停 止 1 但 是 前 几 年, 有 一 种 很 流 行 的 网 络 攻 击 手 段 就 是 利 用 ping 命 令 进 行 的, 所 以 很 多 主 机 现 在 都 会 在 防 火 墙 规 则 里 禁 止 ping 响 应, 即 使 你 可 以 访 问 网 站 也 未 必 就 可 以 ping 通 这 种 情 况 下 我 们 可 以 利 用 另 一 个 tcping 工 具, 通 过 对 远 程 服 务 器 的 TCP 端 口 的 通 畅 与 否 进 行 检 测, 来 判 断 网 络 的 畅 通 tcping 在 windows 和 linux 系 统 中 都 不 是 内 建 的 命 令, 需 要 我 们 自 己 去 下 载,TCPING 的 官 方 网 站 在 这 里 TCPing 的 命 令 参 数 和 使 用 方 法 和 Ping 很 相 似, 主 要 的 区 别 是 Ping 是 通 过 既 有 的 ICMP 协 议 进 行, 而 TCPing 是 通 过 TCP 协 议 进 行, 所 以 可 以 再 最 后 加 入 一 个 端 口 参 数, 对 服 务 器 的 不 同 端 口 进 行 探 测, 例 如 网 页 服 务 器 默 认 是 探 测 80 端 口 ( 不 指 定 端 口 时 默 认 就 是 80), 而 邮 件 服 务 器 可 以 探 测 SMTP 的 25 端 口 基 本 上 对 于 一 个 网 站 来 说,80 端 口 是 不 可 能 关 闭 的, 所 以 我 们 一 般 会 用 TCPing 来 代 替 Ping 对 本 地 到 服 务 器 之 间 的 网 络 通 断 进 行 探 测 1 ping flood 24
30 第 三 章 常 用 的 辅 助 工 具 traceroute 命 令 我 们 在 上 一 章 最 后 一 节 2.3 提 到 另 一 个 路 由 表 的 概 念, 我 们 说 了 路 由 表 决 定 了 两 个 IP 之 间 的 连 接 最 终 是 通 过 那 些 节 点 连 接 起 来 的 如 果 我 们 想 要 查 看 两 个 IP 之 间 的 连 接 实 际 经 过 了 哪 些 节 点, 就 可 以 借 助 traceroute 命 令 来 查 看 traceroute 命 令 的 使 用 非 常 简 单, traceroute+ 目 标 IP 然 后 就 会 开 始 追 踪 出 你 和 目 标 IP 之 间 经 过 的 路 由 节 点 了, 当 然 你 也 可 以 直 接 用 traceroute+ 域 名 的 方 式, 前 提 是 你 执 行 traceroute 命 令 的 机 器 有 个 正 常 工 作 的 DNS 系 统, 能 正 常 解 析 域 名 在 windows 下, 有 一 个 等 效 的 命 令 叫 做 tracert 如 果 你 有 兴 趣 的 话, 可 以 去 这 个 页 面 看 看 traceroute 的 详 细 解 释 我 们 在 windows 下 用 tracert 命 令 跟 踪 一 下 twitter.com 试 试 : 图 3.1: 通 过 翻 墙 路 由 的 tracert 第 三 行 的 目 标 IP 因 为 是 我 VPN 服 务 器 的 IP, 所 以 抹 黑 隐 藏 掉 可 以 看 到,tracert 会 对 每 一 个 节 点 发 出 3 次 探 测 包, 并 检 查 每 一 次 节 点 响 应 的 速 度, 但 这 三 次 探 测 并 不 一 定 每 一 次 都 会 有 响 应, 于 是 就 出 现 了 星 号 * 一 般 来 说, 如 果 到 一 个 节 点 之 后 出 现 了 3 个 星 号, 就 意 味 着 到 这 个 节 点 之 后 网 路 已 经 中 断 了 ( 大 部 分 是 被 GFW 通 过 静 态 路 由 丢 弃 了 ) 但 也 有 可 能 是 某 些 节 点 因 为 自 身 的 设 置 不 响 应 tracert 的 探 测, 碰 到 这 种 情 况 继 续 等 待 一 下, 如 果 在 等 待 过 几 个 节 点 之 后 探 测 信 息 又 恢 复 了, 那 说 明 只 是 个 别 节 点 不 响 应 而 已, 但 网 路 还 是 通 的 而 对 于 没 有 VPN 转 发 的 普 通 中 国 网 路 来 说, 到 twitter 的 通 路 一 般 都 是 断 的, 结 果 会 是 这 样 : root@openwrt:~# traceroute twitter.com traceroute to twitter.com ( ), 30 hops,max 38 byte packets
31 第 三 章 常 用 的 辅 助 工 具 ( ) ms ms ms in-addr.arpa ( ) ms ms * in-addr.arpa ( ) ms ms ms ( ) ms ( ) ms ms ( ) ms ms ms ( ) ms ms ms 7 * * * 8 * * * 9 * * * 10 * * * 11 * * * 可 以 看 到 从 第 六 个 几 点 之 后 就 再 也 没 有 跟 踪 信 息 了, 通 过 一 些 查 IP 的 网 站 我 们 可 以 看 到, 最 后 一 个 节 点 是 中 国 移 动 的 骨 干 网, 也 就 是 说 我 们 对 twitter 的 访 问 在 这 个 位 置 被 路 由 丢 弃 了, 根 本 就 没 达 到 国 外, 更 不 要 说 twitter 的 服 务 器 了 3.3 route 命 令 既 然 GFW 可 以 通 过 静 态 路 由 丢 弃 我 们 的 网 络 请 求, 那 么 我 们 自 己 可 以 用 静 态 路 由 表 来 绕 过 GFW 吗? 当 然 可 以, 这 就 是 route 命 令 的 一 个 重 要 作 用 了 Route 命 令 的 Man Pange 在 这 里, 有 时 间 一 定 要 多 去 看 看 这 些 命 令 的 man page, 我 不 可 能 把 每 一 条 都 很 详 细 的 给 你 翻 译 过 来 我 们 说 了 traceroute 是 检 查 两 个 IP 之 间 实 际 的 路 由 状 况, 而 route 命 令 就 是 查 看 当 前 主 机 上 已 有 的 路 由 表 的 命 令 直 接 输 入 route, 我 们 就 会 看 到 类 似 如 下 的 信 息 (VPN IP 隐 去 ): root@openwrt:~# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default UG eth * U eth * UH pptp -VPN 106.XXX.XXX.XXX UGH eth XXX.XXX.XXX UGH eth * UH pptp -VPN * U br-lan 分 栏 解 释 :Destination 是 目 标 地 址,default 就 是 默 认 的 所 有 地 址 Gateway 是 网 关 我 解 释 过 了,Gen- Mask 是 掩 码, 其 实 我 也 解 释 过 了 Iface 是 对 应 的 接 口 名, 我 也 解 释 过 了 Metric,Ref 和 Use 在 很 多 内 核 中 都 不 使 用, 我 们 不 用 管 Flags 里 的 字 母 含 义 分 别 如 下 : 1. U, 表 示 这 个 路 由 活 着 (Up)
32 第 三 章 常 用 的 辅 助 工 具 H, 表 示 这 货 是 台 主 机 (Host), 在 网 络 中 主 机 和 路 由 是 不 同 的 3. G, 表 示 要 通 过 网 关 访 问 (Use Gateway) 上 面 这 个 例 子 中, 是 我 路 由 接 入 的 默 认 网 关, 我 默 认 的 所 有 网 络 (default) 都 是 通 过 这 个 网 关 访 问 的, 这 个 网 关 对 应 的 接 口 是 eth0.2 而 /24 是 我 路 由 后 面 分 配 出 来 的 内 网 网 络, 我 在 这 个 内 网 里 互 访 主 机 是 不 需 要 经 过 网 关 的, 所 以 这 里 没 有 G 当 然 我 们 主 要 的 目 的 不 是 查 看 路 由 表, 而 是 修 改 路 由 表 我 们 可 以 看 到 上 面 的 是 VPN 服 务 器 对 应 的 网 关, 我 们 到 VPN 服 务 器 的 网 络 是 通 畅 的,VPN 服 务 器 到 twitter 的 网 络 也 是 通 畅 的, 那 么 我 们 就 可 以 通 过 VPN 网 关 来 访 问 twitter 了 最 简 单 粗 暴 的 做 法 是 直 接 把 我 们 的 默 认 接 口 改 成 VPN 接 口, 这 样 我 们 所 有 的 网 络 请 求 都 会 通 过 VPN 接 口 进 行 了, 只 要 GFW 不 拦 截 我 们 到 VPN 的 通 路, 那 就 没 什 么 可 以 阻 拦 我 们 了 route add default dev pptp -VPN 这 里 的 pptp-vpn 要 根 据 实 际 情 况 来 确 定, 我 们 在 前 面 说 过 可 以 通 过 ifconfig 命 令 来 查 看 各 个 接 口 的 名 称, 但 我 们 也 可 以 通 过 一 些 脚 本 来 自 动 提 取 这 个 信 息, 这 个 可 以 用 后 面 提 到 的 SED 配 合 正 则 表 达 式 很 轻 松 的 实 现 如 果 我 们 不 需 要 让 所 有 网 络 都 走 VPN 了, 只 要 删 除 这 条 路 由 表 就 行 了, 命 令 很 简 单 只 要 把 add 改 成 del 就 行 了 route del default dev pptp -VPN 如 果 让 路 由 上 的 所 有 网 络 访 问 都 走 VPN, 其 实 和 我 们 直 接 在 本 机 挂 全 局 VPN 也 没 什 么 区 别, 唯 一 的 区 别 就 是 可 能 方 便 了 一 些 不 能 拨 VPN 的 设 备 使 用, 节 约 了 一 些 连 VPN 的 动 作 时 间 而 已 一 种 更 精 确 的 做 法, 是 指 针 对 被 GFW 屏 蔽 的 IP 走 VPN, 这 也 是 FreeRouter V1 的 做 法 例 如 我 们 假 定 twitter.com 的 IP 是 , 只 需 要 执 行 如 下 命 令 即 可 : route add -host dev pptp -VPN 这 个 -host 是 默 认 选 项, 不 写 也 可 以, 指 的 是 添 加 一 个 IP 作 为 目 标 地 址 有 的 时 候 一 些 网 站 有 很 多 个 IP, 但 一 般 都 是 处 于 同 一 个 网 段 内, 例 如 我 们 假 设 google 的 IP 范 围 是 , 我 们 就 用 -net 选 项 表 示 添 加 一 个 网 段 作 为 目 标 地 址 : route add -net /24 dev pptp -VPN 具 体 的 掩 码 要 写 多 少 可 以 根 据 实 际 情 况 调 整, 但 很 多 时 候 我 们 不 知 道 确 切 的 范 围, 只 好 把 整 个 C 地 址 网 段 全 部 加 入 VPN 路 由 表 了 由 此 可 以 看 出,FreeRouter V1 一 个 很 大 的 问 题 就 是 IP 的 搜 集 非 常 困 难, 如 果 发 生 IP 变 动 的 话 更 是 难 上 加 难 多 加 了 关 系, 顶 多 是 多 消 耗 一 点 VPN 的 流 量 ; 如 果 漏 加 了 就 非 常 麻 烦 了, 对 于 dropbox 这 些 靠 客 户 端 形 式 工 作 的 东 西 来 说, 除 了 抓 包 都 没 有 直 观 的 方 式 可 以 获 取 服 务 器 的 IP 这 也 就 是 为 什 么 我 会 最 终 停 止 V1 的 更 新, 全 力 投 入 V2 的 维 护 的 主 要 原 因
33 第 三 章 常 用 的 辅 助 工 具 Dig 命 令 我 们 前 面 讲 了 如 何 用 traceroute 来 检 查 网 络 中 的 路 由 跳 跃 情 况, 现 在 来 讲 讲 如 何 用 Dig 命 令 检 查 域 名 的 解 析 情 况 在 windows 和 linux 系 统 中, 有 一 个 很 基 本 的 域 名 解 析 工 具 叫 nslookup, 但 相 对 而 言 dig 的 功 能 和 返 回 的 信 息 要 强 大 得 多 在 这 里 下 载 bind, 就 可 以 获 得 dig 工 具 了 你 们 看 一 下 Dig 的 Man Page 就 会 发 现 这 货 的 参 数 多 得 吓 人, 我 们 只 挑 一 些 可 能 常 用 的 讲 解 首 先 讲 一 下 Dig 命 令 的 基 本 使 用 格 式 : Domain QueryType 例 如 我 们 要 通 过 Google DNS 来 查 facebook.com 的 IPV6 地 址 (AAAA 记 录 ) 就 是 这 样 的 : facebook.com AAAA 返 回 的 信 息 是 这 样 的 : root@openwrt:~# facebook.com A ; <<>> DiG facebook.com A ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER <<- opcode:,query status:,noerror id: 702 ;; flags: qr rd ra; QUERY:,1 ANSWER:,1 AUTHORITY:,0 ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version:,0 flags:; udp: 512 ;; QUESTION SECTION: ;facebook.com. IN A ;; ANSWER SECTION: facebook.com. 723 IN A ;; Query time: 74 msec ;; SERVER: #53( ) ;; WHEN: Mon Jul 28 15:56:07 CST 2014 ;; MSG SIZE rcvd: 57 所 有 以 分 号 ; 开 始 的 内 容 都 是 dig 命 令 对 获 取 到 的 原 始 返 回 信 息 的 注 释 部 分, 没 有 注 释 的 部 分 才 是 我 们 真 正 要 查 询 的 内 容 这 里 解 释 部 分 内 容 : status:noerror 这 是 DNS 返 回 的 信 息 中 Reply Code 部 分, 用 于 告 知 客 户 端,DNS 服 务 器 这 次 进 行 的 查 询 是 否 成 功 还 是 有 错 误 发 生
34 第 三 章 常 用 的 辅 助 工 具 29 id:702 这 个 就 是 DNS 查 询 和 返 回 信 息 中 的 Transaction ID, 因 为 UDP 协 议 不 是 按 顺 序 到 达 的, 所 以 这 个 ID 用 于 把 查 询 和 返 回 信 息 配 对 flags:qr rd ra 这 个 是 DNS 返 回 信 息 中 的 Flag 部 分,QR 表 示 这 是 一 个 返 回 响 应 包 ( 对 应 查 询 包 ),rd 表 示 客 户 端 请 求 进 行 递 归 查 询,ra 表 示 服 务 器 支 持 递 归 查 询 QUERY:1 表 示 收 到 一 个 查 询 ANSWER: 表 示 回 应 了 一 个 答 复 AUTHORITY:0 表 示 没 有 从 域 名 的 权 威 名 称 服 务 器 查 询 数 据, 可 能 因 为 DNS 缓 存 中 已 经 有 这 个 记 录 了, 就 不 需 要 查 询 了 ADDITIONAL:1 表 示 有 一 条 额 外 的 信 息, 一 般 是 域 名 的 权 威 名 称 服 务 器 的 地 址 中 间 就 是 查 询 的 内 容 和 回 复 的 内 容 了, 应 该 很 好 理 解 最 后 是 整 个 查 询 过 程 的 耗 时, 以 及 原 始 信 息 有 多 少 个 字 节 除 了 这 种 基 本 的 查 询,dig 有 很 多 选 项 可 以 用, 常 用 的 有 : +short 表 示 不 显 示 所 有 注 释 部 分 的 代 码, 只 显 示 要 查 询 的 数 据, 这 个 选 项 可 以 用 在 脚 本 里 给 其 他 命 令 提 供 域 名 的 IP +vc 表 示 用 TCP 方 式 查 询, 而 不 是 用 UDP 方 式,TCP 模 式 查 询 受 到 GFW 劫 持 的 影 响 非 常 小 ( 不 是 没 有, 只 是 范 围 很 小 ) +dnssec 表 示 查 询 域 名 的 DNSSEC 签 名 信 息, 关 于 DNSSEC 会 在 后 面 讲 解 +trace 表 示 禁 止 服 务 器 用 递 归 方 式 查 询, 一 般 来 说 就 是 让 DNS 返 回 根 域 服 务 器 的 地 址, 然 后 客 户 端 自 己 去 做 迭 代 查 询, 后 面 的 查 询 和 DNS 服 务 器 不 再 有 关 系, 只 取 决 于 客 户 端 和 各 级 名 称 服 务 器 之 间 的 网 络 关 于 dig +trace 可 能 是 我 们 实 际 调 试 中 用 到 最 多 的 命 令 了, 关 于 这 个 命 令 的 一 些 使 用 实 例, 可 以 参 考 本 站 文 章 : 重 新 理 解 GFW 的 DNS 污 染 和 劫 持 策 略 3.5 正 则,SED,AWK 正 则 表 达 式 是 一 件 屠 龙 神 器, 但 是 要 把 它 讲 好 非 常 困 难, 我 的 建 议 是 阅 读 这 篇 正 则 表 达 式 30 分 钟 入 门, 这 是 我 目 前 见 过 最 好 的 正 则 表 达 式 入 门 的 文 章 了 我 只 讲 一 个 SED 配 合 正 则 表 达 式 使 用 的 例 子, 让
35 第 三 章 常 用 的 辅 助 工 具 30 你 们 有 一 点 基 本 的 概 念, 因 为 如 果 你 完 全 不 了 解 正 则 表 达 式, 这 几 个 命 令 在 你 看 起 来 可 能 会 跟 天 书 一 样 难 懂 我 写 过 一 篇 文 章 讲 的 是 如 何 从 greatfire.org 网 站 上 抓 取 在 中 国 被 屏 蔽 率 超 过 70% 的 网 站 域 名, 然 后 生 成 用 于 FreeRouter V2 的 配 置 文 件, 这 个 脚 本 的 代 码 如 下 : set -x Output="./greatfire.conf" if [ -f $Output ] then rm $Output fi Threshold=70 for i in do curl -s --insecure " -top domains?page=$i" \ grep 'class="first"' grep 'class="blocked"' grep -ve "google" \ sed -e "s#^[^\/]*\/\([^\"]*\)[^\%]*\%...\([^\%]*\)\%.*#\1 \2#g" \ awk '$2>='"$Threshold"' {print "ipset=/"$1"/vpn" }'\ >>$Output done 看 不 懂 没 关 系, 一 行 行 解 释 : 1. set -x 表 示 打 开 调 试, 方 便 查 看 脚 本 运 行 信 息 2. 刚 开 始 是 清 理 掉 之 前 的 输 出 文 件 3. Threshold=70 是 一 个 表 示 屏 蔽 率 的 变 量, 我 们 说 了 是 70% 4. curl -s insecure... 是 用 curl 下 载 一 个 网 页,-s 表 示 静 默 模 式 工 作, insecure 是 因 为 这 是 个 https 网 页, 因 为 一 些 证 书 的 问 题 我 用 这 个 选 项 绕 过 去 5. 最 后 面 的 $i 表 示 上 面 从 1 到 9 的 数 字, 因 为 要 抓 很 多 个 页 面 6. 另 外 提 一 下,openwrt 的 shell 是 ash, 非 常 精 简 也 很 简 陋, 连 for 循 环 都 只 能 这 样 一 个 个 的 写 那 个 网 页 中, 关 于 被 屏 蔽 的 网 站 部 分 的 源 码 是 这 样 的 : tr class="odd"><td class="first"><a href="/facebook.com">facebook.com </a></td><td 月 >2 2011</td><td class="blocked" style="background -size: 100%;" >100%</td><td class="tags"><a href="/search/ blocked" class="tag">blocked </a, > 继 续 解 释 :
36 第 三 章 常 用 的 辅 助 工 具 grep class=first grep class= blocked 是 表 示 把 网 页 众 多 行 的 源 码 中, 包 含 这 两 个 字 符 串 的 行 提 取 出 来, 2. grep -ve google 是 表 示 把 包 含 google 这 个 字 符 串 的 行 剔 除 掉 ( 因 为 Google 太 多 子 域 名 了, 我 觉 得 没 必 要 全 部 提 取 ) sed -e "s#^[^\/]*\/\([^\"]*\)[^\%]*\%...\([^\%]*\)\%.*#\1 \2#g" \ 1. SED 是 基 于 一 行 一 行 输 入 的 流 编 辑 工 具,-e 是 为 了 使 用 多 个 命 令, 其 实 这 里 没 必 要. 2. 后 面 的 s# 一 大 堆 东 西 # 又 是 一 大 堆 #g 是 VIM 用 户 很 熟 悉 的 查 找 替 换 命 令, 我 们 的 目 的 是 把 域 名 和 屏 蔽 率 提 取 出 来. 3. 表 示 一 个 字 符 串 的 开 始, 然 后 中 间 通 过 一 次 次 的 反 斜 线 逐 步 往 后 定 位. 4. 用 括 号 括 起 来 的 部 分, 就 是 一 个 分 组, 这 里 的 分 组 1 就 是 域 名, 分 组 2 就 是 被 屏 蔽 率 awk '$2>='"$Threshold"' {print "ipset=/"$1"/vpn" }'\ 1. 你 可 以 认 为 awk 是 一 个 类 似 excel 的 工 具, 他 可 以 把 输 入 的 数 据 按 列 进 行 处 理 2. $2 就 是 分 组 2, 也 就 是 被 屏 蔽 率, 我 们 和 设 定 的 70 去 比 较, 就 是 说 如 果 屏 蔽 率 大 于 70% 就 进 行 后 面 的 操 作 3. 如 果 被 屏 蔽 率 大 于 70%, 就 在 $1, 也 就 是 域 前 后 分 别 添 加 一 些 别 的 字 符, 最 终 组 成 我 们 要 的 配 置 文 件 说 到 底 我 还 是 没 怎 么 讲 清 正 则 表 达 式 的 理 解, 其 实 每 次 写 正 则 表 达 式 都 很 头 痛 要 调 半 天, 你 们 还 是 自 己 去 上 面 提 到 的 那 个 链 接 里 字 自 己 好 好 学 学 吧. 其 实 FreeRouter2 项 目 本 身 并 不 依 赖 这 些 工 具, 只 是 一 些 辅 助 脚 本 用 到 了, 不 过 我 说 了 要 尽 量 让 每 一 个 细 节 都 被 你 们 理 解, 所 以 至 少 要 在 这 里 把 用 到 的 工 具 和 相 关 的 教 程 交 给 你 们.
37 第 四 章 FreeRouter V2 的 技 术 原 理 你 在 干 什 么, 没 有 人 可 以 阻 止 他 们 我 就 是 没 有 人! 如 果 你 觉 得 前 面 的 几 个 命 令 要 么 你 早 就 会 了, 要 么 你 用 不 上, 那 么 从 这 节 开 始 的 内 容 你 必 须 一 个 字 一 个 字 仔 细 的 去 看, 因 为 这 章 的 前 三 节 是 FreeRouterV2 用 到 的 关 键 技 术 所 在, 如 果 你 不 理 解 ip 命 令 如 何 工 作, 不 理 解 iptables 是 怎 么 工 作, 不 理 解 Dnsmasq 是 怎 么 工 作 的, 你 根 本 就 无 法 理 解 FreeRouter V2 是 怎 么 工 作 的 4.1 IP 命 令 除 了 前 面 提 到 的 route 命 令 之 外, 我 们 其 实 还 有 一 个 更 强 大 的 用 于 维 护 路 由 表 的 工 具, 就 是 ip 命 令, 它 的 说 明 请 参 考 man page IP 命 令 的 功 能 太 过 强 大, 我 们 只 讲 我 们 后 面 会 用 到 的 几 种 情 况 table 概 念 首 先 我 们 这 里 要 先 建 立 一 个 table 概 念, 你 可 以 认 为 table 是 一 个 网 络 访 问 请 求 ( 数 据 流 ) 的 容 器 一 般 情 况 下, 我 们 可 以 把 符 合 一 定 特 征 的 网 络 访 问 请 求 ( 数 据 流 ) 都 收 集 到 一 个 table 中, 这 样 当 我 们 需 要 对 有 这 一 类 特 征 的 网 络 访 问 请 求 进 行 处 理 时, 就 可 以 直 接 操 作 这 个 table 了, 而 不 需 要 一 条 一 条 的 去 处 理 在 linux 操 作 系 统 中,table 就 是 一 个 0 到 255 的 数 字, 当 然 我 们 也 可 以 在 /etc/iproute2/rt_tables 文 件 中 给 table 数 字 对 应 上 一 个 名 称, 然 后 就 可 以 用 这 个 名 称 来 操 作 这 个 table 了 例 如 我 们 的 OpenWRT 系 统 里 的 rt_tables 文 件 默 认 是 这 样 的 : # # reserved values # 255 local 254 main 253 default 32
38 第 四 章 FREEROUTER V2 的 技 术 原 理 33 0 unspec # # local # #1 inr.ruhep local,main,default,unspec 这 些 都 是 系 统 内 建 的 ip table, 可 以 看 到 他 们 分 别 都 对 应 了 一 个 数 字, 你 操 作 table 254 和 操 作 table main 其 实 是 完 全 一 样 的 我 们 也 可 以 修 改 这 个 文 件, 建 立 一 个 自 己 的 table, 例 如 我 们 可 以 建 立 一 个 ID 为 10, 名 字 叫 vpn 的 table 如 果 我 们 想 要 在 访 问 被 封 锁 网 站 的 时 候 通 过 VPN 接 口 出 去, 那 我 们 就 可 以 先 对 这 些 数 据 打 上 标 签 4.2.2, 然 后 用 ip rule 命 令 把 有 这 些 标 签 的 数 据 全 部 加 入 一 个 table 把 数 据 添 加 到 table 假 定 我 们 现 在 已 经 把 要 访 问 全 部 被 封 锁 网 站 的 数 据 打 上 了 标 签 1(fwmark 1), 我 们 又 已 经 建 立 了 一 个 名 叫 vpn 的 table, 那 么 命 令 就 可 以 这 样 写 : ip rule add fwmark 1 priority 1984 table vpn 先 阅 读 一 下 man page 上 对 这 个 命 令 的 注 释 : ip rule [ list add del flush ] SELECTOR ACTION SELECTOR := [ from PREFIX ] [ to PREFIX ] [ tos TOS ] [ fwmark FWMARK[/MASK] ] [ dev STRING ] [ pref NUMBER ] ACTION := [ table TABLE_ID ] [ nat ADDRESS ] [ prohibit reject unreachable ] [ realms [SRCREALM/] DSTREALM ] TABLE_ID := [ local main default NUMBER ] 说 明 如 下 : 1. ip rule add 表 示 添 加 一 条 规 则 2. fwmark 1 表 示 符 合 fwmark( 标 签 ) 值 等 于 1 的 数 据 3. priority 1984, 表 示 这 条 规 则 的 优 先 级 是 1984, 每 条 命 令 必 须 有 独 立 的 优 先 级 优 先 级 从 0 到 32767, 数 字 越 小 优 先 级 越 高, 但 一 般 都 是 已 经 分 配 的, 所 以 你 要 在 这 几 个 数 中 间 选 一 个 数 作 为 优 先 级 4. table vpn 表 示 把 这 些 数 据 全 部 添 加 到 vpn 这 个 table 里 去
39 第 四 章 FREEROUTER V2 的 技 术 原 理 34 如 果 想 检 查 已 有 的 ip rule, 可 以 用 以 下 的 命 令 : ip rule list 一 般 情 况 下 你 会 看 到 如 下 的 回 显 : 0: from all lookup local 1984: from all fwmark 0x1 lookup vpn 32766: from all lookup main 32767: from all lookup default 让 table 数 据 走 VPN 接 口 现 在 我 们 已 经 有 了 一 个 table 了, 如 何 让 这 个 table 走 VPN 接 口 呢? 先 阅 读 一 下 man page 上 的 说 明 : ip route { add del change append replace monitor } ROUTE SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ] [ table TABLE_ID ] [ proto RTPROTO ] [ type TYPE ] [ scope SCOPE ] ROUTE := NODE_SPEC [ INFO_SPEC ] NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ] [ table TABLE_ID ] [ proto RTPROTO ] [ scope SCOPE ] [ metric METRIC ] INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]... NH := [ via ADDRESS ] [ dev STRING ] [ weight NUMBER ] NHFLAGS OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ] [ rtt TIME ] [ rttvar TIME ] [ window NUMBER ] [ cwnd NUMBER ] [ initcwnd NUMBER ] [ ssthresh REALM ] [ realms REALM ] [ rto_min TIME ] [ initrwnd NUMBER ] TYPE := [ unicast local broadcast multicast throw unreachable prohibit blackhole nat ] TABLE_ID := [ local main default all NUMBER ] SCOPE := [ host link global NUMBER ] FLAGS := [ equalize ] NHFLAGS := [ onlink pervasive ] RTPROTO := [ kernel boot static NUMBER ] 很 复 杂? 那 我 们 看 看 实 际 用 到 的 命 令 :
40 第 四 章 FREEROUTER V2 的 技 术 原 理 35 ip route add default dev pptp -VPN table vpn 是 不 是 瞬 间 觉 得 很 亲 切 了?ip route 和 前 面 的 route 命 令 几 乎 是 一 样 的, 只 不 过 后 面 多 了 一 个 table vpn, 表 示 添 加 默 认 接 口 这 个 动 作 只 是 用 于 table vpn 里 的 数 据 的, 这 个 灵 活 性 就 是 route 命 令 所 没 有 的 了 注 意! 这 里 的 pptp-vpn 也 是 要 根 据 你 系 统 实 际 VPN 接 口 的 名 称 修 改 的 我 们 这 里 没 有 指 定 网 关 IP( 例 如 via ) 之 类 的, 因 为 一 般 一 个 接 口 连 接 上 之 后, 如 果 网 关 支 持 DHCP, 那 么 在 分 配 IP 的 时 候 也 就 会 把 默 认 网 关 通 告 给 客 户 端, 不 需 要 我 们 去 额 外 指 定 除 非 你 的 VPN 不 支 持 DHCP, 但 这 这 种 VPN 我 还 没 见 过 如 果 你 想 确 认 某 个 table 是 不 是 走 了 VPN 接 口 还 是 别 的 接 口, 可 以 用 如 下 命 令 : ip route show table vpn 如 果 确 实 添 加 默 认 接 口 成 功 了, 你 应 该 看 到 default dev pptp -VPN scope link 其 实 这 个 添 加 默 认 接 口 的 命 令 是 应 该 早 于 你 往 这 个 table 添 加 数 据 的, 以 免 数 据 进 来 了 却 不 知 道 要 从 哪 里 走, 所 以 完 整 的 顺 序 是 : 1. 修 改 /etc/iprout2/rt_tables 建 立 一 个 table 2. 给 这 个 table 指 定 一 个 默 认 的 网 络 接 口 3. 给 指 定 的 数 据 打 上 标 签 4. 把 打 上 了 标 签 的 数 据 添 加 到 这 个 table 里 去 我 们 都 知 道 怎 么 做 了, 那 么 如 何 给 指 定 的 数 据 打 上 标 签 呢? 这 就 用 到 了 iptables 防 火 墙 了 4.2 IPTables 防 火 墙 后 记 : 从 2015 年 年 初 开 始,GFW 用 于 DNS 污 染 的 IP 已 经 达 到 几 千 个, 有 些 甚 至 还 是 正 常 运 营 的 网 站 的 IP 这 使 得 我 们 本 来 的, 依 靠 linux 防 火 墙 过 滤 有 限 投 毒 IP 的 策 略 彻 底 失 效, 除 非 你 愿 意 去 维 护 一 个 几 千 IP 的 防 火 墙 规 则, 而 且 没 有 证 据 可 以 证 明 这 些 IP 的 产 生 不 是 随 机 的 所 以, 以 下 章 节 已 经 没 有 实 用 意 义, 但 出 于 学 习 的 话 依 然 可 以 看 看 netfilter 是 linux 内 核 的 一 个 模 块, 这 个 模 块 当 于 linux 系 统 的 防 火 墙, 它 会 对 所 有 进 出 linux 系 统 的 网 路 数 据 进 行 管 理,netfilter 防 火 墙 模 块 的 结 构 如 下 图 所 示 :
41 第 四 章 FREEROUTER V2 的 技 术 原 理 36 图 4.1: netfilter 防 火 墙 结 构 1 我 们 可 以 看 到 棕 色 框 框 住 的 部 分 就 是 iptables 的 几 个 链, 分 别 是 PREROUTING INPUT FORWARD OUTPUT POSTROUTING, 大 致 讲 一 下 这 几 个 链 的 工 作 流 程 当 一 个 数 据 通 过 网 络 接 口 进 入 系 统 之 后, 首 先 进 入 PREROUTING 链 进 行 处 理 PREROUTING 链 中 根 据 对 数 据 的 不 同 处 理, 分 别 把 处 理 方 法 写 在 mangle 表 和 nat 表 中,mangle 表 一 般 用 于 对 数 据 添 加 标 签 方 便 后 面 的 链 处 理,nat 表 一 般 是 进 行 网 络 地 址 转 换 和 转 发 的 动 作 2 在 经 过 两 道 PREROUTING 链 处 理 之 后, 数 据 会 根 据 需 求 分 别 交 给 INPUT 和 FORWARD 链 处 理 INPUT 链 再 经 过 打 标 签, 过 滤 等 动 作 后, 再 把 数 据 交 给 上 层 应 用 的 协 议 栈 去 处 理 例 如 我 们 可 以 在 INPUT 链 末 端 把 数 据 交 给 我 们 写 的 一 个 应 用, 在 应 用 中 分 析 和 提 取 数 据, 当 应 用 处 理 过 数 据 之 后, 就 要 把 数 据 返 还 到 OUTPUT 链,OUTPUT 链 再 经 过 一 次 NAT 表 看 是 否 要 转 址 ( 只 是 要 经 过, 不 一 定 真 的 会 发 生 转 址 操 作 ), 然 后 交 给 POSTROUTING 链 FORWARD 链 一 般 只 是 经 过 filter 表 的 过 滤 筛 选 就 会 把 数 据 交 给 POSTROUTING 链, 从 OUTPUT 链 过 来 的 数 据 和 从 FORWARD 链 过 来 的 数 据 经 过 POSTROUTING 链 处 理 后 就 交 给 了 后 面 的 输 出 设 备 了 netfilter 是 linux 内 核 模 块 的 名 称, 可 是 用 户 要 如 何 操 作 这 个 模 块, 给 防 火 墙 添 加 和 修 改 规 则 呢? 这 里 用 到 的 就 是 iptables,netfilter 才 是 防 火 墙 的 实 体,iptables 是 这 个 实 体 的 管 理 工 具 因 为 二 者 的 结 合 非 常 紧 密, 所 以 我 们 一 般 都 习 惯 性 的 称 之 为 iptables 防 火 墙 完 整 的 iptables 命 令 说 明, 请 参 考 iptables 的 man page 和 extention man page 关 于 netfilter 各 个 扩 展 模 块 的 功 能 说 明, 可 以 参 考 openwrt 网 站 上 的 这 个 页 面 IPSET 概 念 在 讲 iptables 的 功 能 之 前, 我 们 先 引 入 一 个 额 外 的 概 念 :ipset 1 如 果 不 是 棕 色 也 很 正 常, 我 是 色 盲 2 NAT,Network Address Translate, 其 实 是 个 很 重 要 的 概 念, 只 是 和 我 们 的 主 题 关 系 不 大 所 以 我 没 提
42 第 四 章 FREEROUTER V2 的 技 术 原 理 37 ipset 和 前 面 讲 的 table 有 点 像, 但 更 好 理 解, 它 就 是 一 个 存 储 了 IP 值 的 数 组, 一 般 以 内 存 变 量 的 形 式 驻 留 在 系 统 内 存 中, 一 重 启 就 会 消 失 要 建 立 一 个 ipset, 我 们 可 以 ipset 的 create 命 令 : ipset create vpn iphash -exist 这 里 表 示 建 立 一 个 名 叫 VPN 的 iphash 类 型 的 ipset,iphash 类 型 的 IPSET 可 以 存 储 个 IP 地 址,-exist 表 示 如 果 这 个 叫 这 个 名 字 的 ipset 已 经 存 在 了, 就 跳 过 不 建 立 了 如 果 要 把 一 个 IP( 例 如 ) 加 入 一 个 IPSET( 例 如 刚 刚 建 立 的 vpn set), 那 就 是 : ipset add vpn 如 果 要 删 除, 把 add 改 成 del 就 行 了 ipset del vpn 如 果 我 们 要 清 空 整 个 ipset, 就 用 flush 选 项 : ipset flush vpn 如 果 我 们 要 测 试 一 个 IP( 还 是 ) 在 不 在 IPSET( 还 是 vpn set) 里, 就 用 TEST 选 项 : ipset test vpn iptables 的 mark 功 能 我 们 前 面 说 了, 要 把 访 问 被 封 锁 网 站 数 据 加 入 一 个 table 让 它 走 VPN 接 口, 首 先 就 要 对 数 据 打 上 标 签, 那 么 如 何 用 iptables 给 数 据 打 上 标 签 呢? 我 们 得 先 把 所 有 被 封 锁 网 站 的 IP 加 入 一 个 IPSET, 然 后 我 们 再 用 iptables 的 一 个 名 叫 set 的 模 块 来 对 这 个 IPSET 进 行 打 标 签 的 操 作 下 面 是 man page 上 对 这 个 模 块 的 说 明 : set This module matches IP sets which can be defined by ipset(8). [!] --match -set setname flag[,flag]... where flags are the comma separated list of src and/or dst specifications and there can be no more than six of them. Hence the command iptables -A FORWARD -m set --match -set test src,dst will match packets, for which (if the set type is ipportmap) the source address and destination port pair can be found in the specified set. If the set type of the specified set is single dimension (for example ipmap), then the command will match packets for which the source address can be found in the specified set.
43 第 四 章 FREEROUTER V2 的 技 术 原 理 38 我 们 实 际 的 命 令 是 : iptables -t mangle -I PREROUTING -m set --match -set vpn dst -j MARK --set-mark 1 解 释 说 明 : 1. iptables -t mangle 默 认 情 况 下 iptables 是 对 filter 表 操 作 的, 如 果 要 指 定 某 个 表, 就 要 用 -t 选 项 -t mangle 表 示 我 们 操 作 mangle 表, 为 什 么 是 mangle 表? 因 为 PREROUTING 链 是 存 放 在 mangle 表 里 的, 默 认 的 filter 表 里 没 有 PREROUTING 链, 那 为 什 么 是 PREROUTING 链 呢? 往 下 看 2. -I,I 表 示 insert, 也 就 是 插 入 一 条 规 则 3. PREROUTING 不 管 是 从 外 部 网 线 输 入 的 数 据, 还 是 从 我 们 从 电 脑 上 发 出 的 数 据, 对 于 路 由 来 说 都 是 输 入 的 数 据, 这 里 的 进 和 出 是 从 路 由 的 角 度 来 看 的, 原 始 数 据 进 来, 处 理 过 的 数 据 输 出, 和 你 是 上 传 还 是 下 载 无 关 我 们 也 知 道 PREROUTING 链 是 整 个 防 火 墙 链 的 最 前 端, 如 果 我 们 要 从 源 头 上 处 理 数 据, 就 需 要 对 这 个 链 动 手 4. -m set 表 示 调 用 set 模 块, 所 有 调 用 模 块 的 格 式 都 是 -m 模 块 名 5. match-set vpn dst, 表 示 匹 配 一 个 名 叫 vpn 的 ipset,dst 表 示 这 是 目 标 地 址, 因 为 我 们 要 访 问 的 那 些 被 封 锁 的 服 务 器 对 路 由 来 说 只 可 能 是 目 的 地 而 不 是 源 头 (src),src 是 我 们 自 己 6. -j MARK,-j 是 一 个 通 用 选 项, 表 示 把 数 据 交 给 后 面 的 动 作 进 行 处 理, 也 就 是 MARK 7. set-mark 1, 这 是 iptables 的 一 个 叫 CONNMARK 的 extension 提 供 的 功 能, 就 是 给 数 据 打 上 标 签 了 iptables 的 规 则 插 入 是 有 顺 序 的, 如 果 在 -I 后 面 指 定 一 个 规 则 号, 就 表 示 在 这 个 规 则 号 前 面 插 入 一 条 规 则, 如 果 不 指 定 规 则 号, 就 表 示 在 所 有 规 则 的 最 前 面 插 入 一 条 规 则 而 iptables 规 则, 是 从 最 前 面 的 规 则 开 始 一 个 个 尝 试 的, 如 果 一 个 数 据 和 前 面 的 某 条 规 则 匹 配 上 了, 后 面 的 规 则 就 对 他 无 效 了, 所 以 你 最 后 插 入 的 规 则 其 实 是 优 先 级 最 高 的 规 则 如 果 你 要 加 入 一 条 优 先 级 不 是 那 么 高 的 规 则, 可 以 用 -A,Append, 表 示 在 特 定 或 所 有 规 则 后 面 加 入 这 条 规 则 所 以 插 入 规 则 的 命 令 格 式 是 3 : iptables -t 表 名 -I 链 名 \ 规 则 号 \ 规 则 令 : 在 用 iptables 添 加 了 规 则 之 后, 如 果 想 看 看 这 些 规 则 是 否 添 加 成 功, 以 及 他 们 的 顺 序, 可 以 用 这 个 命 iptables -t 表 名 -L 链 名 3 命 令 中 的 反 斜 线 是 不 需 要 的, 因 为 latex 中 的 lstlisting 原 生 就 不 支 持 中 文, 无 法 正 确 显 示 空 格 我 才 加 入 的, 如 果 你 知 道 怎 么 解 决 这 个 问 题 请 告 诉 我, 不 胜 感 激
44 第 四 章 FREEROUTER V2 的 技 术 原 理 39 如 果 要 删 除 一 条 规 则, 就 用 -D 选 项, 后 面 可 以 跟 规 则 号 表 示 删 除 指 定 规 则 号, 如 果 不 跟 规 则 号, 则 从 最 上 面 ( 最 优 先 ) 的 0 号 规 则 开 始 删 除 iptables -t 表 名 -D 链 名 \ 规 则 号 如 果 你 的 自 定 义 规 则 已 经 太 多 太 乱, 你 想 把 整 个 链 里 的 规 则 都 清 空, 就 用 -F,flush 选 项 iptables -t 表 名 -F 链 名 所 以 现 在 我 们 已 经 知 道 了 可 以 让 一 个 table 里 的 数 据 走 VPN 接 口, 也 知 道 了 如 何 把 打 标 签 的 数 据 加 入 一 个 table, 也 知 道 了 如 何 把 一 个 IPSET 的 数 据 都 打 上 标 签, 那 么, 如 何 把 被 封 锁 网 站 的 IP 加 入 一 个 IPSET 呢? 这 里 我 们 还 是 先 把 IPTABLES 的 其 他 功 能 讲 完 吧, 等 到 下 一 节 我 们 再 处 理 这 个 问 题 iptables 的 m32 模 块 我 们 在 前 面 2.1 提 到 了 GFW 对 DNS 劫 持 和 污 染 的 根 源 是 在 向 境 外 DNS 发 起 解 析 请 求 时, 抢 先 返 回 虚 假 的 IP 信 息 给 解 析 器 根 据 观 察 分 析,GFW 伪 造 的 虚 假 信 息 格 式 是 非 常 固 定 的, 甚 至 可 以 说 是 非 常 便 于 识 别 和 拦 截 的 我 们 只 要 利 用 iptables 的 过 滤 规 则, 就 可 以 很 轻 松 的 丢 弃 这 些 污 染 信 息 我 们 在 前 面 也 说 了, 境 外 DNS 的 正 确 信 息 不 是 不 会 返 回, 只 是 被 GFW 的 虚 假 信 息 抢 先 占 了 位 置 导 致 不 被 解 析 器 接 受 而 已, 而 防 火 墙 是 一 个 在 解 析 器 之 前 的 关 卡, 只 要 在 这 里 丢 弃 了 污 染 信 息, 那 么 境 外 DNS 返 回 的 正 确 信 息 就 可 以 作 为 第 一 个 到 达 的 信 息 顺 利 被 解 析 器 接 受 了 工 欲 善 其 事, 必 先 利 其 器, 我 们 要 想 过 滤 GFW 的 劫 持 信 息, 就 要 先 了 解 这 个 数 据 的 格 式 在 网 络 数 据 抓 取 上, 业 界 公 认 的 神 器 莫 过 于 WireShark 了, 启 动 wireshare 之 后 选 择 网 卡, 在 过 滤 项 中 写 port 53, 表 示 我 们 只 查 看 数 据 信 息 中 包 含 53 端 口 的 信 息 为 什 么 是 53 端 口? 因 为 DNS 服 务 器 的 查 询 端 口 是 53, 然 后 我 们 通 过 Dig 命 令, 指 定 使 用 去 查 询 twitter.com 的 A 记 录 可 以 看 到 如 下 的 查 询 和 返 回 信 息 : 图 4.2: 虚 假 信 息 和 正 确 信 息 混 杂 可 以 看 到,GFW 凭 借 自 己 的 位 置 优 势 ( 离 我 们 近 ) 抢 先 返 回 了 两 个 虚 假 的 IP 地 址 给 我 们, 但 后 面 Google DNS 的 正 确 信 息 也 返 回 了, 只 是 没 有 被 解 析 器 接 受, 我 们 要 干 掉 的 就 是 前 面 两 条 错 误 信 息 观 察 多 次 之 后 我 们 发 现 这 种 信 息 的 格 式 是 完 全 一 样 的, 区 别 仅 仅 是 IP 地 址 会 在 一 个 数 组 范 围 内 变 化 : 可 以 看 到 GFW 伪 造 的 这 个 虚 假 信 息 非 常 粗 糙, 一 般 DNS 都 会 返 回 一 些 Additional 信 息, 例 如 告 诉 你 这 个 域 名 的
45 第 四 章 FREEROUTER V2 的 技 术 原 理 40 图 4.3: 污 染 信 息 实 例 权 威 名 称 服 务 器 地 址 之 类 的 GFW 的 目 的 就 是 污 染, 只 要 把 错 误 IP 传 达 给 你 就 完 了, 所 以 他 整 个 消 息 包 在 虚 假 IP 之 后 就 没 了, 还 真 是 精 打 细 算 节 约 流 量 呢 我 目 前 搜 集 和 统 计 到 的 GFW 用 于 DNS 劫 持 的 污 染 IP 有 48 个, 如 下 表 所 示
46 第 四 章 FREEROUTER V2 的 技 术 原 理 转 换 成 16 进 制 就 是 : B2 0807C62D C 253D369E 2E52AE B38 364C8701 3B1803AD A F 4042A3FB 4168CAFC 41A0DB71 422DFCED 480ECD63 480ECD68 4A7D2766 4A7D2771 4A7D7F66
47 第 四 章 FREEROUTER V2 的 技 术 原 理 42 4A7D9B66 4D04075C 4E10310F 5D2E E8B 9F6A794B A9840D67 BC BDA31105 C043C606 C504040C CA6A0102 CAB50755 CB CBA1E6AB CF0C5862 D0381F2B D D155E58A D D1DC1EAE D35E4293 D5A9FB23 D8DDBCB6 D8EAB30D F3B9BB27 F9812E30 FD9D0EA5 我 不 一 定 会 及 时 更 新 本 文 档, 最 新 的 数 据 我 会 发 布 到 FreeRouter V2 项 目 本 身 和 这 篇 文 章 里 为 什 么 这 里 要 把 IP 地 址 转 换 成 16 进 制 呢? 因 为 你 知 道 整 个 计 算 机 是 基 于 2 进 制 的, 从 上 面 的 抓 包 你 也 可 以 看 到 实 际 的 IP 地 址 都 是 16 进 制 的, 我 们 过 滤 这 些 地 址 要 用 的 iptables 的 u32 模 块 也 只 认 识 16 进 制 的 数 字 u32 模 块 是 iptables 的 一 个 扩 展 包, 他 允 许 你 从 一 个 IP 数 据 包 中 抓 取 4 个 字 节 (32 比 特 ) 的 数 据, 然 后 对 这 个 4 个 字 节 的 数 据 进 行 数 值 分 析, 在 符 合 条 件 之 后 交 给 iptables 进 行 各 种 处 理 而 IP 地 址 刚 好 就 是 4 个 字 节, 那 么 我 们 只 需 要 在 DNS 返 回 信 息 的 IP 包 中 提 取 出 IP 地 址 信 息, 然 后 和 上 面 的 这 个 列 表 对 比, 如 果 发 现 匹 配 就 丢 弃 这 个 数 据 就 可 以 了 我 们 用 到 的 完 整 命 令 如 下 : iptables -t mangle -I PREROUTING -p udp --sport 53 -m u32 --u32 "0&0x0F000000=0x && 22&0 xffff@16=0x4a7d7f66,0x4a7d9b66,0x4a7d2766,0x4a7d2771,0xbda31105,0xd155e58a,0xf9812e30,0x80797e8b,0 x9f6a794b,0xa9840d67" -j DROP iptables -t mangle -I PREROUTING -p udp --sport 53 -m u32 --u32 "0&0x0F000000=0x && 22&0 xffff@16=0xc043c606,0xca6a0102,0xcab50755,0xcba1e6ab,0xcb620741,0xcf0c5862,0xd0381f2b,0xd ,0 xd1dc1eae,0xd " -j DROP
48 第 四 章 FREEROUTER V2 的 技 术 原 理 43 iptables -t mangle -I PREROUTING -p udp --sport 53 -m u32 --u32 "0&0x0F000000=0x && 22&0 x3b1803ad,0x402158a1" -j DROP iptables -t mangle -I PREROUTING -p udp --sport 53 -m u32 --u32 "0&0x0F000000=0x && 22&0 x0807c62d,0x5d2e0859" -j DROP iptables -t mangle -I PREROUTING -p udp --sport 53 -m u32 --u32 "0&0x0F000000=0x && 22&0 -j DROP 命 令 有 5 条 是 因 为 u32 模 块 一 次 最 多 允 许 我 们 匹 配 10 个 数 据, 具 体 格 式 的 分 析 我 们 只 需 要 看 一 条 就 够 了, 以 第 一 条 为 例 详 细 说 明 : 1. iptables -t mangle -I PREROUTING, 这 些 和 上 一 节 是 一 样 的, 不 重 复 了 2. -p udp, 表 示 只 分 析 UDP 协 议 的 数 据, 因 为 DNS 查 询 默 认 都 是 UDP 协 议 的 3. sport 53, 表 示 源 端 口 是 53 的 数 据, 因 为 DNS 服 务 器 返 回 的 数 据 都 是 从 它 的 53 端 口 返 回 的 4. -m u32 u32, 这 里 表 示 使 用 u32 模 块, 这 是 个 标 准 命 令 格 式 在 开 始 后 面 的 u32 模 块 分 析 前, 我 们 先 补 充 介 绍 一 下 DNS 响 应 包 的 数 据 组 成 首 先 这 是 一 个 IP 包, 就 有 IP 报 头, 另 外 这 是 UDP 协 议 的, 就 有 UDP 报 头, 后 面 的 UDP 数 据 就 是 DNS 服 务 器 的 响 应 数 据 了, 所 以 格 式 是 这 样 的 : [IP_Header]::[ UDP_Header]::[ UDP_Data==DNS_Response] u32 模 块 部 分 的 匹 配 代 码 是 这 样 的 : 0&0x0F000000=0x && 22&0xFFFF@16=0x4A7D7F66 0 第 一 个 0 表 示 从 第 0 个 字 节 开 始 抓 4 个 字 节, 计 算 机 世 界 一 直 都 是 从 0 开 始 数 的 &0x0F & 表 示 把 前 面 抓 到 的 4 个 字 节 和 & 后 面 的 掩 码 进 行 与 操 作, 这 个 就 算 是 文 科 生 也 应 该 在 计 算 机 基 础 课 上 学 过, 不 解 释 了 0x0F 就 是 这 个 掩 码 了, 这 表 示 其 他 位 全 部 置 0, 只 保 留 第 0 字 节 的 低 4 位 =0x
49 第 四 章 FREEROUTER V2 的 技 术 原 理 44 =0x 表 示 判 断 前 面 进 行 完 与 操 作 的 数 是 不 是 等 于 0x 如 果 你 知 道 IP 包 的 数 据 格 式, 就 知 道 第 0 个 字 节 的 低 4 位 表 示 的 是 IP 报 头 的 长 度, 一 般 来 说 都 是 20 字 节 但 也 有 特 例 这 里 我 们 要 确 定 这 个 报 头 没 有 什 么 特 殊 格 式, 长 度 确 实 是 20, 为 什 么 要 判 断 这 个 长 度 后 面 会 解 释 22&0xFFFF 这 个 表 示 从 第 22 个 字 节 开 始 取 4 个 字 节 (22 25), 和 掩 码 0xFFFF(0x0000FFFF) 与 操 作, 也 就 是 取 24,25 字 节 的 内 容, 得 到 一 个 数 X 你 抓 包 分 析 看 一 下 就 会 发 现,24,25 字 节 对 应 的 数 字 是 UDP_Header 里 表 示 UDP 包 的 长 度, 也 就 是 UDP_Header+UDP_Data 的 总 长 这 的 作 用 非 常 大, 一 定 要 理 表 示 从 IP 包 的 最 开 始 往 后 跳 跃 X 个 字 节, 具 体 跳 跃 多 少 呢? 就 前 面 的 数 值 了 我 们 说 前 面 的 一 个 与 操 作 得 到 了 UDP 包 的 长 度, 也 就 是 说 这 里 我 们 要 从 0 开 始 往 后 跳 过 UDP 包 的 长 度 整 个 IP 包 的 长 度 是 IP 头 长 度 (20)+UDP 包 的 长 度 (X), 现 在 我 们 从 0 开 始 跳 过 了 UDP 包 的 长 度 (X), 就 位 于 了 整 个 IP 包 的 最 末 再 往 前 倒 退 20 个 字 节 的 位 置 16 我 们 前 面 的 抓 包 已 经 看 到 了, 虚 假 的 IP 信 息 刚 好 位 于 整 个 IP 包 的 最 后 4 个 字 节, 我 们 现 在 已 经 处 在 最 末 -20 个 字 节 的 位 置 了, 那 么 从 这 个 位 置 开 始 数, 抓 第 16 个 字 节 开 始 的 4 个 字 节 就 行 了, 也 就 是 字 节, 为 什 么 不 是 17 20? 我 们 是 从 第 0 个 字 节 开 始 算 的, 别 忘 了 这 点 后 面 的 -j DROP 就 很 好 理 解 了, 直 接 丢 弃 在 我 们 的 防 火 墙 中 应 用 以 上 规 则,GFW 的 对 境 外 DNS 查 询 的 劫 持 信 息 就 被 过 滤 掉 了, 剩 下 的 就 是 正 确 的 解 析 信 息 了 但 是 要 记 住! 只 有 对 境 外 DNS 查 询 的 污 染 包 是 GFW 发 出 的, 也 只 有 这 个 情 况 下 这 个 数 据 格 式 才 是 和 我 们 的 命 令 匹 配 的 虽 然 这 可 以 解 决 大 部 分 问 题 了, 但 有 的 时 候 我 们 还 是 需 要 境 内 DNS+ 境 外 DNS 组 合 的 方 式, 因 为 境 内 DNS 的 速 度 比 较 快, 而 且 他 们 对 一 些 大 网 站 的 节 点 解 析 都 比 较 适 合 我 们 但 是 我 们 在 使 用 这 些 境 内 DNS 面 对 的 问 题 不 是 GFW 的 劫 持, 而 是 他 们 给 出 的 原 始 数 据 就 是 被 污 染 ( 被 劫 持 后 污 染 ) 的 这 样 的 结 果 是, 他 们 给 出 的 DNS 响 应 包 会 因 为 服 务 器 配 置 的 格 式 不 同 而 千 差 万 别, 而 且 基 本 确 定 的 是 IP 都 不 是 在 最 末 的 4 字 节 上, 因 为 正 常 的 响 应 包 末 尾 一 般 都 是 Additional RRs 数 据 我 们 想 要 使 用 境 内 DNS 获 得 高 速 的 解 析 又 不 想 被 污 染, 就 要 对 境 内 DNS 的 响 应 数 据 也 做 过 滤, 那 么 这 种 IP 位 置 不 固 定 的 响 应 包 要 如 何 过 滤 呢? 这 里 我 们 就 要 用 到 更 强 大 的 string 模 块 了 iptables 的 string 模 块 通 过 上 一 节 的 介 绍, 我 们 也 看 到 了 u32 模 块 第 一 个 缺 点 是 只 能 针 对 特 定 位 置 的 4 个 字 节 数 据 进 行 分 析, 如 果 位 置 不 固 定 就 没 有 办 法 了 如 果 要 对 位 置 不 固 定 的 数 据 进 行 分 析, 我 们 就 要 使 用 string 模 块, 它
50 第 四 章 FREEROUTER V2 的 技 术 原 理 45 可 以 帮 我 们 在 一 个 IP 包 里 搜 索 任 意 位 置, 看 是 否 有 匹 配 的 字 符 串 当 然 u32 的 固 定 位 置 分 析 也 不 能 算 是 完 全 的 缺 点, 只 针 对 固 定 位 置 固 定 长 度 的 数 据 分 析 意 味 着 u32 模 块 消 耗 的 CPU 资 源 非 常 少, 因 为 我 们 基 本 上 只 需 要 做 一 些 简 单 的 与 或 操 作 和 比 较 计 算 就 可 以 了 而 string 模 块 强 大 的 搜 索 功 能, 其 代 价 就 是 消 耗 了 更 多 的 CPU 资 源 和 u32 一 样,string 模 块 搜 索 IP 时 也 是 使 用 16 进 制, 因 为 原 始 数 据 就 是 这 样 的 因 为 计 算 复 杂 度 很 高, 一 条 string 匹 配 的 iptables 命 令 只 能 一 次 只 能 匹 配 一 个 IP( 字 符 串 ), 所 以 我 们 得 写 48 条 命 令 : iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " B2 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 0807C62D " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " C " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 253D369E " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 2E52AE44 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 31027B38 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 364C8701 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 3B1803AD " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " A1 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " F " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 4042A3FB " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 4168CAFC " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 41A0DB71 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 422DFCED " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 480ECD63 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 480ECD68 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 4A7D2766 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 4A7D2771 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 4A7D7F66 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 4A7D9B66 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 4D04075C " --from
51 第 四 章 FREEROUTER V2 的 技 术 原 理 46 iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 4E10310F " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 5D2E0859 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 80797E8B " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " 9F6A794B " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " A9840D67 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " BC " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " BDA31105 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " C043C606 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " C504040C " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " CA6A0102 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " CAB50755 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " CB " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " CBA1E6AB " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " CF0C5862 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " D0381F2B " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " D " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " D155E58A " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " D " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " D1DC1EAE " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " D35E4293 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " D5A9FB23 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " D8DDBCB6 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " D8EAB30D " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " F3B9BB27 " --from
52 第 四 章 FREEROUTER V2 的 技 术 原 理 47 iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " F9812E30 " --from iptables -t mangle -I PREROUTING -p udp --sport 53 -m string --algo bm --hex-string " FD9D0EA5 " --from 相 对 来 说 string 模 块 的 命 令 就 好 理 解 多 了, -m string 表 示 启 用 string 模 块 进 行 匹 配, algo bm 表 示 启 用 贝 叶 (Boyer-Moore) 字 符 串 搜 索 算 法, 另 一 种 算 法 是 kmp(knuth-pratt-morris), 具 体 应 该 只 是 效 率 和 不 同 应 用 的 区 别, 算 法 原 理 我 们 就 不 细 究 了 hex-string 表 示 要 匹 配 HEX 格 式 的 IP 地 址 了, 注 意 这 里 前 面 不 要 有 0x 表 示 16 进 制 了, 直 接 写 16 进 制 数 据 就 行, 后 面 跟 着 的 就 是 IP 地 址 的 16 进 制 格 式 from 60 to 180 这 表 示 的 是 搜 索 的 偏 置 范 围 (offset), 从 第 60 字 节 开 始 到 180 字 节 结 束, 一 般 来 说 DNS 返 回 包 的 长 度 很 少 有 超 过 180 字 节, 而 A 记 录 IP 值 的 位 置 因 为 IP 和 UDP 协 议 报 文 格 式 的 关 系, 基 本 上 不 可 能 出 现 在 60 字 节 之 前, 所 以 指 定 这 个 范 围 是 足 够 的, 同 时 也 可 以 大 大 减 轻 搜 索 算 法 的 运 算 压 力 如 果 你 担 心 有 什 么 奇 葩 DNS 返 回 的 结 果 在 这 范 围 之 外, 删 除 这 两 个 偏 置 选 项 就 行 了, 这 样 会 默 认 搜 索 整 个 字 符 串, 但 相 应 的 搜 索 消 耗 的 CPU 资 源 就 更 多 了 和 u32 模 块 的 使 用 一 样, 把 这 些 规 则 保 存 为 防 火 墙 规 则 就 可 以 过 滤 所 有 境 内 和 境 外 DNS 中 的 污 染 和 劫 持 信 息 了, 要 注 意 string 模 块 的 过 滤 其 实 已 经 包 含 了 u32 模 块 的 功 能, 不 需 要 再 添 加 u32 模 块 的 过 滤 规 则 了 但 是 境 内 DNS 的 原 始 数 据 都 是 污 染 的, 你 过 滤 掉 这 些 污 染 的 信 息 后 也 不 会 给 你 返 回 正 确 的 信 息 而 你 希 望 的 结 果 肯 定 是 同 时 享 受 境 内 DNS 的 高 速 解 析 速 度, 又 可 以 让 境 外 DNS 给 我 们 某 些 敏 感 网 站 的 正 确 解 析 结 果 要 实 现 这 样 的 组 合, 就 要 在 iptables 的 过 滤 规 则 之 下, 继 续 配 合 下 一 节 提 到 的 Dnsmasq 了
53 第 四 章 FREEROUTER V2 的 技 术 原 理 Dnsmasq 解 析 器 Dnsmasq 是 OpenWRT 系 统 默 认 内 置 的 DNS 解 析 器, 要 注 意 这 个 解 析 器 不 等 同 于 nslookup 和 dig, 后 面 的 只 是 调 试 工 具, 除 了 返 回 一 些 查 询 信 息 外 不 能 给 任 何 系 统 和 应 用 提 供 解 析 结 果, 而 Dnsmasq 可 以 我 们 需 要 对 Dnsmasq 的 性 质 有 个 基 本 认 识,Dnsmasq 并 不 能 算 是 一 个 DNS 服 务 器 软 件, 他 的 准 确 定 义 是 一 个 DNS 转 发 器 就 是 说, 它 把 收 到 的 DNS 解 析 请 求, 转 发 到 一 些 DNS 服 务 器 上 去, 然 后 从 DNS 服 务 器 接 收 返 回 的 结 果, 最 后 再 返 回 给 你? 你 也 许 会 觉 得 这 玩 意 这 么 蛋 疼, 我 自 己 查 询 不 好 吗, 干 嘛 要 你 来 转 发? 其 实 它 能 做 的 不 仅 仅 是 转 发, 转 发 仅 仅 是 他 实 现 DNS 查 询 的 方 式, 我 们 知 道 它 即 不 能 递 归 查 询, 又 不 是 蛋 疼 的 迭 代, 能 做 的 当 然 就 是 转 发 了 首 先 它 提 供 了 一 个 缓 存 功 能, 这 可 以 大 大 减 轻 你 查 询 的 网 络 请 求 次 数, 这 也 是 为 什 么 很 多 时 候 我 们 可 以 把 他 当 一 个 DNS 服 务 器 来 用 的 原 因 除 此 之 外 Dnsmasq 提 供 了 非 常 多 灵 活 的 选 项 让 我 们 可 以 完 全 掌 控 DNS 解 析 的 行 为, 具 体 的 内 容 请 参 考 它 的 Man Page, 我 们 在 FreeRouter V2 中 要 用 到 的 是 他 的 以 下 几 个 功 能 IPSET 功 能 我 记 得 前 面 我 挖 了 个 坑, 就 是 关 于 如 何 把 被 屏 蔽 网 站 的 IP 全 部 搜 集 到 一 个 IPSET 里 的 问 题 4.2.2, 现 在 我 们 就 来 解 决 它 Dnsmasq 从 2 66 版 开 始 就 支 持 IPSET 功 能 了, 注 意 OpenWRT 默 认 自 带 的 Dnsmasq 是 精 简 版 本 并 没 有 IPSET 功 能, 需 要 我 们 自 己 替 换 为 dnsmasq-full, 也 就 是 完 整 版 如 果 要 确 定 自 己 的 Dnsmasq 有 没 有 IPSET 功 能 支 持, 可 以 SSH 登 录 路 由 后 输 入 dnsmasq version 查 看 当 前 的 版 本 和 编 译 信 息, 可 以 看 到 下 面 的 信 息 中 已 经 包 含 了 ipset, 如 果 显 示 的 是 no-ipset, 就 说 明 没 有 IPSET 功 能 支 持 root@openwrt:~# dnsmasq --version Dnsmasq version 2.71 Copyright (c) Simon Kelley Compile time options: IPv6 GNU-getopt no-dbus no-i18n no-idn DHCP DHCPv6 no-lua TFTP no-conntrack ipset auth DNSSEC This software comes with ABSOLUTELY NO WARRANTY. Dnsmasq is free software, and you are welcome to redistribute it under the terms of the GNU General Public License, version 2 or 3. 这 个 功 能 的 作 用, 就 是 把 指 定 域 名 的 解 析 结 果 存 入 一 个 IP, 具 体 哪 些 域 名 可 以 通 过 配 置 文 件 来 指 定 例 如 我 们 现 在 不 能 访 问 google 了 4, 那 么 我 们 就 把 Google.com 的 IP 都 加 入 一 个 叫 vpn 的 IPSET, 然 后 配 合 我 们 前 面 学 过 的 iptables mark 功 能,ip route 命 令 把 对 google IP 的 访 问 全 部 通 过 VPN 接 口 进 行 我 们 的 命 令 是 这 样 的 : 4 不 知 道 以 后 你 们 看 到 这 段 是 什 么 感 想, 反 正 中 国 在 现 在 ( 2015 年 1 月 21 日 ) 是 真 的 不 能 访 问 Google 了
54 第 四 章 FREEROUTER V2 的 技 术 原 理 49 ipset=/google.com/vpn 非 常 令 人 感 动 的 一 点 是,dnsmasq 是 支 持 从 顶 级 域 往 下 匹 配 的, 也 就 是 说 你 写 了 google.com 之 后, 什 么 mail google.com,maps google.com 的 二 级 三 级 四 级 域 名 也 全 部 被 匹 配 了, 后 面 vpn 就 是 我 们 事 先 通 过 ipset 命 令 建 立 好 的 用 于 存 储 这 些 IP 的 IPSET 你 也 许 会 想,Google 那 么 多 IP,Dnsmasq 能 全 部 都 查 到? 查 不 到! 可 是 也 完 全 没 必 要 查 到 因 为 你 能 用 到 的 IP 就 是 DNS 解 析 给 你 的 IP, 其 他 的 IP 如 果 你 连 解 析 都 没 去 解 析 他, 为 什 么 要 知 道 呢? 就 好 比 你 要 去 美 国 出 差, 但 是 老 板 只 让 你 坐 国 航 的 飞 机, 那 为 什 么 还 要 去 查 东 航 的 机 票 价 格 呢? 这 其 实 也 就 是 FreeRouter V2 里 相 对 V1 最 优 美 的 地 方 了, 只 有 在 你 需 要 访 问 某 个 被 封 锁 的 IP 时 它 才 会 起 作 用, 而 且 具 体 什 么 IP 可 能 被 封 锁 是 完 全 由 你 自 己 指 定 的, 因 为 域 名 是 你 指 定 的 在 FreeRouter V1 里 这 一 切 是 通 过 静 态 路 由 表 的 方 式 实 现 的, 这 种 方 法 的 缺 点 是 : 1. 要 精 确 搜 集 一 个 网 站 的 全 部 子 域 名 和 对 应 的 全 部 IP 极 度 困 难 2. 以 为 精 确 搜 集 很 难, 所 以 经 常 不 得 不 把 整 个 网 段 加 入 静 态 路 由 表, 但 整 个 网 段 中 有 很 多 IP 其 实 是 没 被 屏 蔽 的 3. 很 多 IP 对 应 的 网 站 普 通 人 听 都 没 听 过, 这 辈 子 可 能 也 都 不 会 上, 但 是 如 果 不 加 注 释 的 话, 你 根 本 不 知 道 IP 对 应 的 到 底 是 什 么 网 站, 4. 因 为 IP 的 可 读 性 太 差, 如 果 哪 个 网 站 解 封 了, 或 者 根 本 就 停 掉 了, 要 找 出 网 站 对 应 的 IP 再 删 除 都 很 繁 琐 而 用 Dnsmasq 的 IPSET 功 能 就 完 全 没 有 这 种 问 题 了, 一 个 域 名 就 基 本 能 帮 你 搞 定 一 个 网 站 的 访 问 了 5, 虽 然 有 可 能 出 现 部 分 解 析 的 IP 并 没 有 被 屏 蔽 也 被 走 了 VPN 的 情 况 ( 因 为 Google 的 IP 实 在 太 多 了 ), 但 肯 定 都 还 是 google 的 IP, 不 会 影 响 到 其 他 任 何 网 站 所 以 我 们 唯 一 需 要 维 护 的, 就 是 被 封 锁 的 网 站 的 域 名 列 表, 这 也 就 是 我 对 FreeRouter V2 最 主 要 的 维 护 工 作 了 其 实 你 自 己 就 可 以 去 维 护 这 个 列 表, 我 想 只 要 智 商 正 常 的 人 看 到 这 里 应 该 都 知 道 这 个 列 表 该 怎 么 写 我 只 是 提 醒 你 们 一 下,windows 格 式 和 unix 格 式 对 于 换 行 符 的 处 理 是 不 同 的, 这 使 得 在 windows 下 编 辑 的 文 件 在 linux 系 统 下 可 能 会 无 法 被 正 确 识 别 最 稳 妥 的 办 法 是 SSH 登 录 进 路 由 之 后 用 vim 编 辑, 或 者 在 windows 平 台 用 vim 以 unix 编 辑 ;vim 可 以 保 留 文 件 的 unix 格 式 不 变, 而 且 如 果 有 多 余 的 换 行 符, 你 在 vim 下 是 可 以 看 得 出 来 的 你 们 也 许 听 说 过 一 些 什 么 gfw_list 之 类 的 域 名 列 表, 那 个 列 表 里 有 几 千 个 被 封 锁 的 域 名, 但 是 我 看 了 一 下 觉 得 那 个 列 表 的 质 量 实 在 是 太 糟 糕 了 那 个 列 表 似 乎 是 一 个 论 坛 社 区 的 人 自 己 在 维 护, 人 人 都 可 以 5 Google 和 facebook 这 类 大 网 站 还 有 很 多 负 责 存 储 静 态 文 件 和 其 他 内 容 的 独 立 域 名, 也 要 一 并 加 入 列 表 才 行
55 第 四 章 FREEROUTER V2 的 技 术 原 理 50 提 交, 但 从 来 没 人 检 查, 很 多 明 显 是 部 署 在 国 内 的 网 站 也 被 他 们 加 进 去 了 这 年 头 靠 得 住 的 人 真 没 几 个, 所 以 我 决 定 还 是 自 己 搜 集 比 较 好 目 前 这 个 列 表 还 不 到 200 个 域 名, 可 是 我 几 乎 已 经 感 觉 不 到 墙 的 存 在 了, 至 少 你 们 在 讨 论 Google 被 封 和 解 封 这 两 个 话 题 的 时 候 我 根 本 察 觉 不 到,youtube 该 看 啥 就 看 啥,twitter 的 推 送 都 很 正 常 Porntube 什 么 的 虽 然 也 可 以 上 但 口 味 太 重 不 适 合 我, 中 国 人 嘛, 就 该 上 草 榴 ( 敢 求 邀 请 码 一 律 拉 黑 )! 为 Dnsmasq 指 定 DNS 我 们 说 了 Dnsmasq 其 实 是 一 个 DNS 转 发 器, 只 是 把 我 们 的 DNS 解 析 请 求 转 发 到 各 个 公 共 DNS 上, 那 么 我 们 就 必 须 为 Dnsmasq 指 定 好 使 用 哪 些 DNS 在 OpenWRT 系 统 中,Dnsmasq 的 默 认 DNS 服 务 器 来 源 是 通 过 在 /etc/config/dhcp 文 件 中 配 置 实 现 的 : config dnsmasq option domainneeded '1' option boguspriv '1' option filterwin2k '0' option localise_queries '1' option rebind_protection '1' option rebind_localhost '1' option local '/lan/' option domain 'lan' option expandhosts '1' option nonegcache '0' option authoritative '1' option readethers '1' option leasefile '/tmp/ dhcpleases ' option resolvfile '/tmp/resolv. confauto ' 我 们 看 到 最 后 一 行 是 resolvfile, 查 一 下 Dnsmasq 的 Man Page 就 会 看 到 Dnsmasq 会 通 过 读 取 这 个 选 项 中 指 定 的 文 件 来 获 取 DNS 服 务 器 列 表, 如 果 没 有 通 过 这 个 选 项 指 定 DNS 服 务 器 的 配 置 文 件 的 话,dnsmasq 默 认 会 去 读 取 /etc/resolv.conf 文 件 读 取 DNS 服 务 器 列 表 我 们 再 看 看 这 个 /etc/resolv.conf auto 文 件 的 内 容, 不 同 设 备 可 能 有 区 别, 但 格 式 基 本 如 此 : # Interface WAN nameserver nameserver 8844 # Interface VPN nameserver nameserver 8844
56 第 四 章 FREEROUTER V2 的 技 术 原 理 51 这 个 数 据 是 怎 么 来 的 呢? 原 来 当 我 们 的 每 一 个 网 络 接 口 成 功 连 接 上 之 后 (interface up), 如 果 这 个 接 口 上 有 配 置 DNS 服 务 器, 或 者 DHCP 服 务 器 通 告 了 DNS 服 务 器, 就 会 在 这 个 文 件 里 写 入 这 个 接 口 的 DNS 服 务 器 因 为 我 们 自 己 在 WAN 和 VPN 的 接 口 设 定 中 都 指 定 了 Google DNS, 结 果 就 生 成 了 我 们 上 面 的 文 件 如 果 我 们 要 指 定 DNS 服 务 器, 而 不 是 让 Dnsmasq 自 动 从 各 个 接 口 获 取 ( 因 为 ISP 分 配 给 我 们 的 DNS 基 本 都 是 被 污 染 的 ), 最 简 单 也 是 最 简 陋 的 方 法 就 是 手 工 在 每 个 接 口 的 配 置 界 面 中 指 定 DNS, 这 样 自 动 获 取 到 的 也 是 我 们 指 定 的 DNS 但 是 如 果 网 络 环 境 发 生 了 变 化, 或 者 需 要 重 新 设 置 接 口, 就 又 要 重 新 设 置 一 次 而 且 这 实 际 上 就 修 改 到 了 /etc/config/network 文 件, 倒 不 是 说 不 能 这 样 改, 只 是 每 个 人 的 网 路 环 境 是 不 同 的, 这 个 文 件 也 会 因 人 而 异, 这 样 让 我 们 很 难 提 供 一 个 统 一 的 解 决 方 案 还 有 一 个 方 法 就 是 修 改 /etc/config/dhcp 文 件, 把 最 后 的 resolvefile 选 项 改 成 我 们 指 定 的 文 件, 然 后 在 那 个 文 件 里 写 入 DNS 服 务 器 列 表, 但 是 和 上 面 的 原 因 一 样, 修 改 config 目 录 的 文 件 会 导 致 无 法 提 供 统 一 的 解 决 方 案 最 后 我 发 现 dnsmasq 提 供 了 一 个 参 数 叫 做 no-resolv, 这 个 选 项 允 许 不 从 任 何 文 件 中 读 取 DNS 服 务 器 列 表, 改 用 server 参 数 手 工 指 定 DNS 服 务 器 这 个 时 候 我 们 就 只 需 要 在 Dnsmasq.conf(Dnsmasq 的 配 置 文 件 ) 中 写 如 下 命 令 就 可 以 了 : #disable resolv file no-resolv server= 井 号 # 开 始 的 部 分 是 注 释 代 码, 会 被 Dnsmasq 忽 略 掉,no-resolv 就 是 不 读 取 任 何 任 何 列 表 文 件, server= 就 表 示 用 作 为 一 个 DNS 服 务 器 如 果 我 们 想 知 道 Dnsmasq 到 底 使 用 了 什 么 DNS 服 务 器, 可 以 先 重 启 Dnsmasq 服 务 : /etc/ initd/dnsmasq restart 然 后 通 过 logread 命 令 查 看 dnsmasq 启 动 过 程 的 记 录, 所 有 用 到 的 DNS 服 务 器 信 息 都 会 显 示 出 来 添 加 多 个 DNS 我 们 知 道 基 本 上 只 有 境 外 的 DNS 才 可 能 给 我 们 返 回 某 些 敏 感 域 名 的 正 确 解 析 结 果, 国 内 DNS 从 源 头 上 就 被 污 染 了 但 访 问 境 外 DNS 的 一 个 问 题 是 他 们 的 速 度 普 遍 比 国 内 的 慢,ISP 提 供 的 DNS 延 时 可 能 只 有 两 三 毫 秒, 而 Google DNS 在 国 内 某 些 地 区 的 延 时 高 达 400 毫 秒 ( 忽 然 变 30 毫 秒 的 那 是 GFW 劫 持 ) 而 且 大 部 分 时 间 我 们 访 问 的 网 站 可 能 还 是 普 通 的 国 内 网 站, 这 些 网 站 用 境 内 DNS 解 析 的 时 候 往 往 会 返 回 给 我 们 一 个 更 合 理 的 数 据
57 第 四 章 FREEROUTER V2 的 技 术 原 理 52 例 如 淘 宝 的 一 些 静 态 文 件 是 存 放 在 CDN 6 节 点 上 的, 这 些 节 点 可 能 用 了 类 似 a tbcdn cn 这 样 的 域 名 这 些 节 点 在 国 内 外 都 有 分 布, 因 为 这 些 域 名 本 身 的 名 称 服 务 器 有 比 较 智 能 的 动 态 分 配 功 能, 当 你 用 Google DNS 去 解 析 的 时 候, 他 们 会 以 为 你 是 一 个 美 国 客 人, 就 返 回 了 一 个 美 国 节 点 的 IP 给 你, 而 用 114DNS 的 时 候 他 们 觉 得 你 是 个 中 国 客 人, 就 给 你 返 回 了 一 个 中 国 节 点 的 IP, 后 者 明 显 才 是 我 们 要 的 结 果 如 果 只 是 分 配 到 国 外 节 点 速 度 慢 也 就 罢 了, 可 是 淘 宝 的 一 些 日 本 节 点 IP 在 国 内 根 本 就 是 被 屏 蔽 了 的, 结 果 就 出 现 了 访 问 taobao 的 时 候 很 多 内 容 加 载 不 了, 页 面 不 完 整 所 以 我 们 希 望 的 就 是 同 时 使 用 境 内 和 境 外 DNS, 第 一 步 首 先 是 添 加 这 些 境 内 境 外 的 DNS 服 务 器 : #Local Process server= #Google DNS server= #Nortorn DNS server= #Comodo DNS server= #DNS Advantage server= #Verizon DNS server= #NTT DNS server= #114 DNS server= #Ali DNS server= #CNNIC server= 按 照 Dnsmasq 的 说 法, 第 一 条 添 加 是 为 了 让 Dnsmasq 成 为 路 由 器 自 身 的 Dns 缓 存, 实 际 上 我 测 下 来 这 个 好 像 可 有 可 无, 加 上 也 没 坏 处 后 面 我 们 依 次 添 加 了 国 内 和 国 外 公 共 DNS 但 是 这 并 不 等 于 工 作 就 完 成 了, 因 为 默 认 情 况 下 Dnsmasq 只 会 使 用 第 一 个 DNS( 会 被 忽 略 ), 也 就 是 , 这 和 我 们 所 要 的 结 果 完 全 不 同 我 们 还 需 要 添 加 一 个 参 数 : all-servers 这 个 参 数 是 告 诉 Dnsmasq, 在 收 到 一 个 DNS 解 析 请 求 之 后, 向 所 有 的 DNS 服 务 器 都 发 起 查 询, 然 后 接 受 并 返 回 最 先 返 回 的 那 个 结 果 给 客 户 端 所 以 现 在 的 工 作 情 况 是 : 6 Content Deliver Network, 一 种 网 络 加 速 技 术
58 第 四 章 FREEROUTER V2 的 技 术 原 理 对 于 绝 大 部 分 国 内 的 和 没 被 GFW 盯 上 的 网 站, 因 为 他 们 的 域 名 解 析 结 果 并 没 有 被 污 染, 所 以 速 度 最 快 的 国 内 DNS 优 先 返 回 了 解 析 结 果 给 我 们, 这 个 结 果 是 真 实 的, 不 会 被 iptables 过 滤 2. 而 对 于 被 GFW 污 染 了 的 域 名, 境 内 DNS 返 回 的 信 息 全 是 被 污 染 的, 但 已 经 被 我 们 的 iptables 防 火 墙 挡 掉 了, 这 个 结 果 对 Dnsmasq 来 说 是 不 可 见 的 3. 所 以 Dnsmsq 只 能 继 续 等 境 外 Dnsmasq 返 回 的 结 果 (GFW 对 境 外 DNS 的 劫 持 信 息 会 被 iptables 挡 掉 ), 当 第 一 个 境 外 DNS 返 回 的 正 确 结 果 到 达 后, 就 返 回 给 客 户 端 屏 蔽 运 营 商 的 DNS 广 告 所 以, 我 们 现 在 在 速 度 和 正 确 的 结 果 上 达 到 了 最 佳 的 平 衡 但 是 还 有 个 残 留 的 小 问 题 : 这 就 是 如 果 你 在 添 加 境 内 DNS 的 时 候 使 用 了 ISP 的 DNS 的 话, 你 会 发 现 当 你 不 小 心 输 错 域 名, 访 问 了 一 个 不 存 在 的 域 名 的 时 候, 会 被 指 向 到 一 个 运 营 商 提 供 的 网 页 那 里 这 个 网 页 可 能 是 什 么 电 信 导 航 首 页, 也 可 能 是 他 们 的 合 作 伙 伴 的 导 航 首 页 之 类 的, 如 果 你 觉 得 这 都 没 什 么 问 题 那 这 节 可 以 不 看 这 种 行 为 本 质 上 其 实 也 是 一 种 DNS 劫 持, 对 于 不 存 在 的 域 名, 标 准 的 DNS 服 务 器 不 应 该 返 回 任 何 A 记 录 地 址, 而 且 应 该 在 返 回 包 的 Reply Code 中 置 03(status: NXDOMAIN), 表 示 这 是 一 个 不 存 在 的 域 名 但 是 OpenDNS 和 国 内 的 运 营 商 的 DNS 就 会 利 用 这 个 机 会, 对 不 存 在 的 域 名 返 回 一 个 他 们 制 定 的 服 务 器 IP, 从 而 引 导 所 有 对 不 存 在 域 名 的 访 问 都 访 问 他 们 的 广 告 商 页 面, 从 而 赚 取 广 告 收 益 如 果 你 很 讨 厌 这 种 行 为, 那 你 可 以 选 择 不 用 他 们 的 DNS, 但 他 们 的 DNS 往 往 还 都 是 最 快 的 ( 毕 竟 他 是 你 的 运 营 商 ), 所 以 如 果 要 既 用 他 们 的 DNS 又 避 免 这 些 广 告, 就 可 以 用 Dnsmasq 的 一 个 bogus-nxdomain 的 选 项 这 个 选 项 的 诞 生 原 因 和 我 们 面 对 的 情 况 几 乎 是 一 样 的 : -,B --bogus -nxdomain=<ipaddr > Transform replies which contain the IP address given into "No such domain" replies. This is intended to counteract a devious move made by Verisign in September 2003 when they started returning the address of an advertising web page in response to queries for unregistered, names instead of the correct NXDOMAIN response. This option tells dnsmasq to fake the correct response when it sees this behaviour. As at Sept 2003 the IP address being returned by Verisign is 当 我 们 搜 集 到 运 营 商 把 不 存 在 域 名 指 向 了 哪 些 IP 之 后, 我 们 用 这 个 选 项 加 入 dnsmasq 的 配 置 中, 如 果 DNS 服 务 器 返 回 的 IP 是 这 些 IP,Dnsmasq 就 认 为 这 些 是 虚 假 的 信 息, 直 接 忽 略 它 然 后 告 诉 客 户 端 这 个 域 名 不 存 在 关 于 这 些 IP 地 址, 这 里 有 一 个 比 较 全 面 的 搜 集 列 表, 摘 录 如 下 : #Some DNS server will return certain IP for non -exist domain for their, advertisementblock these IP here. #OpenDNS bogus -nxdomain = bogus -nxdomain =
59 第 四 章 FREEROUTER V2 的 技 术 原 理 54 bogus -nxdomain = bogus -nxdomain = #DNSPai bogus -nxdomain = bogus -nxdomain= #Nanfang Unicom (nfdnserror1.wo.com.cn to nfdnserror17.wo.com.cn) bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = #Shandong Unicom (sddnserror1.wo.com.cn to sddnserror9.wo.com.cn) bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = #Wuhan Telecom bogus -nxdomain= bogus -nxdomain= #Nanjing Telecom bogus -nxdomain = bogus -nxdomain = #Shanghai Telecom bogus -nxdomain = #Beijing Unicom (bjdnserror1.wo.com.cn to bjdnserror5.wo.com.cn) bogus -nxdomain =
60 第 四 章 FREEROUTER V2 的 技 术 原 理 55 bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = bogus -nxdomain = #Chengdu Telecom bogus -nxdomain= bogus -nxdomain= bogus -nxdomain= bogus -nxdomain= #Hangzhou Telecom bogus -nxdomain = 如 果 使 用 了 ISP 的 DNS, 把 这 个 文 件 也 加 入 我 们 的 Dnsmasq 配 置 项 之 后, 我 们 的 DNS 节 方 案 基 本 就 是 完 美 的 了 我 前 面 说 了 不 做 任 何 涉 及 商 业 利 益 的 选 项, 所 以 这 个 文 件 只 会 是 个 选 项 而 不 会 部 署 到 FreeRouter V2 中, 在 你 使 用 了 ISP 的 DNS 之 后 可 以 自 己 选 择 是 否 使 用, 如 果 你 不 用 ISP 的 DNS, 可 以 忽 略 限 定 范 围 的 解 析 目 前 为 止 我 们 的 DNS 解 决 方 案 都 是 基 于 用 iptables 过 滤 来 阻 挡 GFW 的 污 染 信 息, 虽 然 这 些 规 则 其 实 已 经 有 效 的 工 作 了 好 几 年 (GFW 的 更 新 真 的 很 慢 ), 但 是 我 们 不 能 保 证 哪 天 会 不 会 有 新 的 污 染 IP 被 投 入 使 用, 这 样 我 们 的 防 火 墙 规 则 可 能 就 过 滤 不 了 了 其 实 我 们 从 一 开 始 就 提 到 了,GFW 可 以 对 DNS 进 行 劫 持 的 根 源 是 UDP 协 议 本 身 的 不 安 全, 如 果 我 们 可 以 保 证 路 由 器 到 DNS 服 务 器 之 间 的 网 络 是 安 全 的, 那 么 GFW 的 DNS 劫 持 也 就 没 办 法 了 进 行 了 例 如 我 们 现 在 可 以 把 所 有 到 Google DNS 的 访 问 都 通 过 route 命 令 添 加 到 VPN 接 口 进 行 : route add -host dev pptp -VPN 这 个 时 候 我 们 和 的 通 信 就 是 通 过 加 密 过 的 PPTP 协 议 进 行 的 了, 目 前 来 说 GFW 还 是 不 能 分 析 和 劫 持 PPTP 协 议 的 7, 这 样 我 们 就 可 以 获 得 正 确 的 DNS 解 析 了 那 国 内 DNS 怎 么 办? 不 用 吧, 速 度 太 慢 用 吧, 走 VPN 也 没 用 啊, 因 为 服 务 器 上 的 原 始 数 据 就 是 被 污 染 的 Dnsmasq 的 server 选 项 还 有 一 个 特 殊 的 应 用 方 法, 就 是 让 指 定 的 域 名 用 指 定 的 DNS 解 析, 这 样 我 们 可 以 默 认 用 走 VPN 的 Google DNS 解 析, 但 对 于 那 些 没 有 被 污 染 又 经 常 访 问 的 域 名 就 指 定 让 国 内 DNS 来 解 析, 例 如 : 7 虽 然 有 研 究 证 明 PPTP 的 加 密 方 式 强 度 不 够, 如 果 运 用 强 大 的 运 算 力, 花 上 几 天 也 可 以 解 密 PPTP 协 议, 但 是 我 真 的 不 能 想 象 GFW 要 疯 到 什 么 地 步 才 会 去 对 所 有 PPTP 协 议 解 密, 如 果 是 针 对 性 的 解 密, 我 想 大 部 分 人 都 还 没 这 个 待 遇
61 第 四 章 FREEROUTER V2 的 技 术 原 理 56 ##local.conf generated date:sun Jul 13 20:53:40 CST 2014## ##All.CN Domain## server=/cn/ ##Alexa Top500 In China## server=/baidu.com/ server=/qq.com/ server=/taobao.com/ server=/weibo.com/ server=/hao123.com/ 我 们 说 了 Dnsmasq 是 可 以 从 顶 级 域 开 始 往 下 匹 配 的,server=/cn/ 表 示 所 有 的 CN 域 名 都 交 给 114 来 解 析, 因 为 CN 域 名 的 特 殊 性 ( 这 是 中 国 的 国 别 域 名, 控 制 权 完 全 在 党 国 手 里 ), 基 本 上 不 可 能 有 什 么 反 动 网 站 会 用 这 个 后 缀 的 域 名, 其 实 稍 微 有 点 远 见 的 商 业 网 站 也 不 该 用 cn 域 名 在 国 外 注 册 个.com 域 名, 这 就 是 你 的 私 有 财 产, 只 要 不 违 反 相 关 的 规 定 谁 能 动 你? 国 内 虽 说 有 法 律, 但 是, 你 懂 的 这 种 限 定 范 围 解 析 的 方 法, 是 在 GFW 做 重 大 更 新 导 致 现 有 规 则 失 效 的 情 况 下 的 备 选 项, 但 在 解 析 速 度 和 效 果 上 肯 定 不 是 最 佳 的, 所 以 这 个 限 定 国 内 域 名 的 列 表 我 只 会 作 为 一 个 参 考 选 项 在 FreeRouter V2 里 提 供, 但 并 不 会 导 入, 如 果 需 要 你 可 以 自 己 决 定 是 否 使 用 4.4 DNSSEC 的 原 理 和 实 用 性 以 下 两 节 原 文 在 这 里 和 这 里,DNSSEC 是 未 来 的 DNS 系 统 的 一 个 趋 势 有 必 要 了 解 一 下, 但 不 了 解 并 不 影 响 我 们 对 FreeRouter V2 项 目 工 作 原 理 的 理 解 另 外 讲 解 DNSSEC 原 理 的 时 候 讲 解 了 前 面 提 到 的 公 钥 + 私 钥 非 对 称 加 密 体 系, 这 是 网 络 安 全 中 非 常 重 要 的 一 个 概 念, 也 是 密 码 学 出 现 以 来 最 伟 大 的 创 造, 非 常 有 必 要 了 解 一 下 它 的 基 本 原 理 我 只 整 理 一 下 格 式 稍 微 合 并 一 下 内 容 简 介 DNSSEC 是 为 了 解 决 传 统 DNS 系 统 中 的 各 种 不 安 全 性, 由 IETF 制 定 的 一 套 配 合 现 有 DNS 系 统 的 安 全 扩 展 系 统, 目 标 在 于 解 决 各 种 DNS 缓 存 投 毒 / 生 日 攻 击 /DNS 劫 持 等 问 题, 从 源 头 上 保 证 DNS 数 据 的 正 确 性 和 完 整 性 这 里 我 大 致 讲 一 下 它 的 工 作 原 理, 并 分 析 一 下 这 个 系 统 目 前 的 实 用 性 传 统 DNS 系 统 的 弱 点 DNS 系 统 的 通 讯 采 用 的 是 UDP 协 议, 这 种 不 面 向 连 接 的 协 议 适 用 于 快 速 大 量 的 传 输 小 数 据, 这 也 是 DNS 系 统 采 用 UDP 的 原 因 之 一 当 然 DNS 也 可 以 使 用 TCP 协 议, 不 过 那 是 默 认 用 于 NameServer( 名 称
62 第 四 章 FREEROUTER V2 的 技 术 原 理 57 服 务 器, 以 下 简 称 NS) 之 间 的 Zone Transfer 的, 普 通 的 DNS 解 析 器 并 不 会 使 用 TCP 协 议 向 NS 发 起 请 求 作 为 整 个 互 联 网 最 重 要 的 基 础 协 议 之 一,DNS 其 实 是 一 个 非 常 脆 弱 的 系 统, 它 面 对 的 主 要 可 能 问 题 有 DNS 缓 存 投 毒 /DNS 劫 持 / 生 日 攻 击 /DNS 数 据 泄 露 等, 前 两 者 对 普 通 用 户 的 危 害 是 非 常 恐 怖 的, 它 完 全 可 以 把 一 个 银 行 域 名 指 向 黑 客 的 服 务 器 这 些 弱 点 的 根 本 原 因 是 UDP 协 议 是 不 面 向 连 接 的 协 议, 没 人 可 以 保 证 端 对 端 的 传 输 是 安 全 的, 而 DNS 协 议 本 身 在 建 立 初 期 又 实 在 太 纯 洁 了, 根 本 没 有 考 虑 各 种 后 来 可 能 出 现 的 攻 击,DNS 协 议 本 身 对 数 据 的 验 证 是 非 常 脆 弱 的 基 本 的 验 证 只 有 一 个 Transaction ID, 这 种 东 西 用 生 日 攻 击 就 可 以 猜 测 出 来, 成 功 率 根 本 不 用 你 操 心 ; 如 果 是 在 局 域 网, 直 接 在 网 关 监 听 甚 至 可 以 捕 获 Transaction ID, 捕 获 后 直 接 用 于 伪 造 DNS 解 析 数 据 返 回 给 客 户 端 就 行 了, 在 你 用 Google DNS 查 询 twitter.com 的 时 候,GFW 就 是 这 么 干 的 在 讲 解 DNSSEC 的 原 理 之 前, 我 们 必 须 先 科 普 一 下 : 公 钥 / 私 钥 加 密 的 基 本 原 理 公 钥 私 钥 加 密 体 系 是 基 于 这 样 两 个 前 提 : 你 产 生 一 对 公 钥 / 私 钥 之 后, 如 果 你 仅 仅 持 有 公 钥 或 者 私 钥 中 的 一 个 密 钥, 无 论 你 配 合 明 文, 密 文 还 是 别 的 数 据, 都 不 可 能 推 导 出 另 一 个 密 钥 无 论 公 钥 还 是 私 钥 都 可 以 用 于 加 密 数 据, 但 加 密 后 的 数 据 要 想 解 密, 就 必 须 由 另 一 半 完 成 所 以 公 钥 / 私 钥 体 系 的 应 用 主 要 有 两 种 : 加 密 数 据 例 如 现 在 A 要 给 B 发 送 数 据, 他 就 先 用 B 的 公 钥 加 密 消 息 ( 因 为 公 钥 是 公 开 的, 人 人 都 可 以 有 的 ), 然 后 发 送 给 B, 即 使 是 广 播 发 送 也 无 所 谓, 因 为 只 有 B 才 持 有 B 的 私 钥, 所 以 只 有 B 才 能 解 密 这 个 消 息 验 证 签 名 例 如 我 要 告 诉 你 我 是 总 统, 我 就 用 总 统 的 私 钥 加 密 一 个 签 名 然 后 给 你 看, 因 为 你 们 都 有 总 统 的 公 钥, 所 以 都 可 以 解 密 这 个 签 名 看 看 是 不 是 我 其 实 我 用 任 何 私 钥 加 密 数 据, 你 们 都 可 以 用 总 统 的 公 钥 解 密, 但 是 只 有 用 总 统 的 私 钥 加 密 的 数 据, 解 密 后 的 签 名 才 是 有 意 义 的, 否 则 可 能 只 是 一 堆 乱 码, 你 们 一 看 : 我 靠, 神 经 病 啊, 打 死!
63 第 四 章 FREEROUTER V2 的 技 术 原 理 DNSSEC 中 公 钥 私 钥 的 应 用 在 传 统 的 DNS 系 统 中, 各 种 A 记 录 CNAME 记 录 MX 记 录 统 称 为 RR(Resource Record ), 这 些 RR 一 旦 DNS 服 务 器 发 送 给 解 析 器, 解 析 器 就 无 条 件 接 受, 也 不 管 数 据 对 不 对 ( 可 能 被 缓 存 投 毒 了 ), 甚 至 到 底 是 不 是 服 务 器 发 回 来 的 ( 可 能 被 DNS 劫 持 了 ), 其 实 也 不 是 解 析 器 想 这 样 无 条 件 接 受, 而 是 解 析 器 除 了 接 受 也 没 办 法 验 证 啊 为 了 解 决 这 个 问 题,DNSSEC 增 加 了 RRSIG(Resource Record Signature,RR 签 名 ), DNSKEY(Domain s Public Key, 域 名 公 钥 ),DS(DiaoSiDelegation Signer, 上 级 授 权 签 名 ) 这 三 种 记 录, 同 时 从 根 域 名 到 顶 级 域 名 服 务 器 都 各 自 增 加 了 一 套 公 钥 / 私 钥 我 们 用 一 个 例 子 来 解 释 DNSSEC 如 何 利 用 这 几 个 记 录 图 4.4: DNSSEC 中 RRSIG 的 作 用
64 第 四 章 FREEROUTER V2 的 技 术 原 理 59 图 4.5: DNSSEC 中 DS 和 DNSKEY 记 录 的 作 用 1. 我 们 ( 一 台 DNS 服 务 器 ) 现 在 要 查 询 paypal.com 的 DNS 记 录,paypal.com 的 名 称 服 务 器 ( 以 下 简 称 PP_NS) 返 回 了 对 应 的 A 记 录 IP 数 据 (RR,Resource Record,A 记 录 MX 记 录 这 些 记 录 都 统 称 为 RR) 和 一 长 串 字 符 (RRSIG), 还 有 对 应 的 DNSKEY 和 DS 记 录, 那 我 怎 么 知 道 这 个 IP 是 真 的 A 记 录, 而 不 是 被 修 改 了 的 呢? 2. 先 看 看 RRSIG 是 什 么 产 生 的,PP_NS 对 RR 做 哈 希, 然 后 用 自 己 的 私 钥 对 这 个 哈 希 进 行 加 密, 就 产 生 了 RRISG 3. 而 查 询 到 的 DNSKEY, 就 是 PP_NS 的 公 钥, 我 们 用 这 个 公 钥 对 这 个 RRSIG 解 密 就 得 到 了 RR 的 哈 希 值, 然 后 我 们 自 己 再 对 RR 做 一 次 哈 希, 通 过 判 断 两 个 哈 希 是 否 一 样 就 可 以 知 道 数 据 是 否 正 确 了 4. 你 也 许 会 想, 我 tm 怎 么 知 道 这 些 DNSKEY 真 的 就 是 PP_NS 发 回 来 的, 说 不 定 连 你 整 套 公 钥 / 密 钥 都 是 黑 客 伪 造 的 呢? 这 里 就 用 到 了 DS 5. DS 的 产 生 是 这 样 的,PP_NS 把 自 己 的 公 钥 交 给 给 上 级 的 NS, 也 就 是.com 顶 级 域 名 的 名 称 服 务 器 ( 以 下 简 称 COM_NS) 那 里, 用 COM_NS 的 私 钥 对 PP_NS 的 公 钥 加 密, 就 得 到 了 DS 6. 如 果 你 不 相 信 PP_NS 的 公 钥, 你 可 以 去 COM_NS 那 里 查 COM_NS 的 公 钥, 然 后 对 PP_NS 的 DS 记 录 解 密, 如 果 解 密 结 果 和 DNSKEY 对 上 了, 就 说 明 DNSKEY 是 对 的.COM_NS 这 个 级 别 的 数 据 你 总 该 相 信 了 吧 7. 如 果 连 COM_NS 的 公 钥 都 不 相 信, 没 关 系,COM_NS 自 己 也 有 DS 记 录, 这 个 DS 是 由 跟 服 务 器 (ROOT_NS) 用 自 己 的 私 钥 加 密 产 生 的, 你 再 用 ROOT_NS 的 公 钥, 做 一 样 的 解 密 验 证 就 可 以 了 8. 如 果 你 不 相 信 ROOT_NS 的 公 钥, 那 你 他 妈 别 玩 了! 这 个 公 钥 是 你 自 己 告 诉 DNS 服 务 器 的, 根 本 不 用 你 去 查 询 ROOT_NS 的 公 钥, 就 是 一 般 的 解 析 器 和 DNS 服 务 器 里 设 定 的 Trust Anchor, 因 为 这 个 数 据 最 终 是 你
65 第 四 章 FREEROUTER V2 的 技 术 原 理 60 自 己 设 定 的, 所 以 整 个 验 证 链 最 后 的 安 全 阀 其 实 在 你 手 里, 但 你 有 责 任 自 己 去 维 护 这 个 Trust Anchor 的 正 确 性 如 果 ROOT_NS 的 公 钥 变 动, 就 必 须 跟 着 修 改, 否 则 顶 层 一 级 的 解 密 校 验 就 会 失 败 这 个 Trust Anchor 虽 然 是 你 自 己 输 入, 但 并 不 是 你 随 意 产 生 的, 这 个 实 际 上 已 经 由 IANA 公 布, 可 以 在 这 里 找 到 最 新 的 Root Trust Anchor 以 上 就 是 DNSSEC 的 大 致 原 理, 简 单 来 说 就 是 从 已 知 的 根 域 开 始, 一 级 级 对 下 级 签 名, 然 后 查 询 者 可 以 通 过 这 个 签 名 链 的 逆 过 程 验 证 每 一 个 数 据 是 否 真 实 DNSSEC 的 最 大 问 题, 是 域 名 签 名 部 署 的 缺 失 一 个 非 常 严 重 的 问 题 是, 整 个 数 据 验 证 过 程, 必 须 是 在 域 名 做 了 签 名, 并 且 向 上 级 NS 提 交 生 成 了 DS 的 情 况 下 才 可 能 实 现 ( 没 有 向 上 级 域 提 交 并 通 过 签 名 的 Key 是 无 法 验 证 的, 自 然 没 有 意 义 ) 那 么 现 在 又 多 少 域 名 做 了 这 样 的 签 名 呢? 千 分 之 三! 没 错, 一 个 害 得 老 子 都 不 知 道 怎 么 打 千 分 号 的 数 据 你 常 用 的 大 网 站, 什 么 google.com,twitter.com,youtube.com,facebook.com, 嗯 统 统 没 有 DNSSEC 签 名! 造 成 这 个 问 题 的 根 本 原 因 不 是 这 些 网 络 巨 头 不 知 道 域 名 安 全 的 重 要 性,Google 的 Public DNS 甚 至 是 全 球 最 早 支 持 DNSSEC 的 公 共 DNS 服 务 器 之 一 他 们 的 问 题 在 于 网 站 规 模 过 于 庞 大, 一 个 域 名 对 应 的 IP 数 目 多 得 难 以 想 象, 而 且 为 了 实 现 网 络 的 最 佳 优 化, 这 些 IP 记 录 经 常 会 变 动, 这 就 使 得 RRSIG 几 乎 不 可 能 在 他 们 上 面 实 现, 一 旦 记 录 出 错 造 成 用 户 无 法 访 问, 每 一 秒 的 损 失 都 难 以 估 量 目 前 来 说, 部 署 DNSSEC 的 网 站 主 要 是 Paypal 这 种 金 融 网 站 和 一 些 政 府 网 站, 因 为 这 些 网 站 的 特 殊 性 要 求 他 们 在 安 全 性 上 不 能 有 任 何 缺 失, 而 且 相 对 来 说 他 们 不 会 面 对 Google,facebook 这 些 网 站 的 IP 过 多 的 问 题 至 于 在 顶 级 域 名 与 以 下 的 各 个 域 名 TLD 的 支 持, 情 况 倒 还 算 理 想,ICANN 在 2010 年 的 时 候 忽 然 急 速 推 进 DNSSEC 的 部 署, 使 得 整 个 体 系 的 上 层 都 还 算 健 全 如 果 一 个 域 名 没 有 做 DNSSEC 签 名, 那 么 DNSSEC 还 能 保 护 它 吗? 对 未 签 名 的 域 名,DNSSEC 几 乎 不 能 提 供 任 何 保 护 我 们 说 了,DNSSEC 只 是 DNS 的 一 个 扩 展, 添 加 了 一 套 可 用 于 数 据 验 证 的 域 名 记 录, 并 没 有 对 DNS 协 议 的 数 据 传 输 方 式 和 报 文 格 式 做 任 何 改 进 修 改 就 好 像 加 入 DNS 原 来 没 有 CNAME 记 录, 现 在 添 加 了 CNAME 记 录 的 支 持, 但 是 你 并 没 有 去 用 它, 那 这 个 记 录 对 你 有 用 吗? 当 然 没 有 对 于 没 有 签 名 的 域 名, 不 管 你 用 什 么 样 的 解 析 器, 使 用 什 么 样 的 DNS 服 务 器, 你 所 查 询 到 的 DNS 记 录 和 之 前 都 没 有 发 生 任 何 变 化 只 是 在 你 向 一 个 支 持 DNSSEC 的 DNS 服 务 器 查 询 的 时 候, 他 的 返 回 包 里 会 多 一 个 DO 的 Flag, 表 示 他 知 道 你 的 解 析 器 支 持 DNSSEC 了, 可 是 域 名 本 身 并 没 有 提 供 DNSSEC 数 据 给 你 啊, 我 也 没 法 给 你 造 出 来
66 第 四 章 FREEROUTER V2 的 技 术 原 理 对 签 名 的 域 名, 中 间 人 攻 击 依 然 有 可 能 进 行 除 了 RRSIG,DS,DNSKEY 这 三 条 记 录 之 外, 支 持 DNSSEC 的 解 析 器 和 DNS 服 务 器 通 信 中, 还 会 增 加 两 个 标 签 位 : AD(authentic data) DNS 服 务 器 默 认 会 对 RRSIG 的 有 效 性 进 行 检 查, 检 查 确 认 签 名 有 效, 就 会 把 AD 位 置 1, 下 发 给 解 析 器 CD(Check Disable) 默 认 情 况 下, 如 果 DNS 服 务 器 返 回 的 AD 位 置 1 了, 客 户 端 就 会 接 受 服 务 器 的 检 查 结 果, 自 己 就 不 再 对 结 果 做 验 证 了 如 果 客 户 端 不 信 任 服 务 器 的 验 证 数 据, 就 在 请 求 包 中 把 CD 位 置 1, 告 诉 服 务 器 老 子 不 用 你 检 查, 签 名 有 没 有 用 我 自 己 来 看 这 种 情 况 下 服 务 器 返 回 的 数 据 包 中,AD 位 会 置 0 表 示 它 也 不 知 道 这 签 名 是 不 是 有 效, 因 为 你 都 告 诉 它 不 用 去 检 查 了 嘛, 那 他 干 嘛 还 犯 贱 虽 然 这 个 有 点 蛋 疼, 但 是 在 客 户 端 做 签 名 验 证, 才 是 最 安 全 的 做 法, 为 什 么 呢? 一 个 普 遍 的 问 题 就 是, 现 在 的 各 种 解 析 器 / 客 户 端 中, 很 多 都 没 有 完 善 自 己 的 签 名 检 查 部 分, 从 上 面 的 原 理 中 你 也 看 到 了, 这 个 签 名 检 查 其 实 是 个 很 蛋 疼 的 过 程, 几 乎 相 当 于 一 次 递 归 解 析 的 过 程 了, 耗 时 耗 力 所 以 要 么 是 因 为 自 己 没 有 验 证 签 名 的 能 力, 要 么 是 觉 得 这 个 验 证 过 程 太 消 耗 时 间 和 资 源, 当 前 的 各 种 解 析 器 / 客 户 端 默 认 都 不 会 发 送 这 个 自 作 多 情 的 CD(Check Disable) 对 于 Dnsmasq 来 说, 如 果 你 想 让 Dnsmasq 自 己 验 证 签 名 发 送 CD 位, 就 要 启 用 dnssec-debug 选 项,ManPage 中 的 建 议 直 接 就 是 should not be set in production 那 么 好 了, 既 然 客 户 端 不 检 查 签 名, 只 要 看 到 AD 位 置 1 就 相 信, 黑 客 就 太 高 兴 了 他 随 便 伪 造 个 符 合 DNSSEC 标 准 的 返 回 包 ( 反 正 猜 解 Transaction ID 什 么 的 早 就 不 是 问 题 了 ), 修 改 数 据, 把 AD 位 置 1, 搞 定! 前 面 这 么 多 服 务 器 的 DNSSEC 部 署 的 努 力, 在 最 后 一 站 全 部 化 作 泡 影 对 于 这 个 问 题, 可 能 的 办 法 是 通 过 TSIG(Transaction Signature) 来 实 现 数 据 传 输 中 的 数 据 完 整 性 验 证, 但 TSIG 的 问 题 是 解 析 器 和 Recursive DNS 服 务 器 之 间 也 要 部 署 类 似 https 加 密 那 样 的 一 套 共 享 密 钥, 这 个 部 署 工 作 会 是 个 噩 梦 关 于 这 个 方 法, 可 以 参 考 相 应 的 论 文 当 然, 目 前 来 说 更 实 际 的 做 法, 就 是 OpenDNS 提 出 的 DnsCurve, 也 就 是 你 们 可 能 用 过 的 DnsCrypt, 这 是 一 种 加 密 客 户 端 到 DNS 服 务 器 双 向 通 讯 数 据 的 做 法, 具 体 的 实 现 原 理 请 参 考 Dnscrypt 官 网 另 外, 就 实 用 性 而 言, 中 国 人 还 要 面 对 一 个 很 严 重 的 问 题 : 国 内 支 持 DNSSEC 的 DNS 服 务 器 极 度 缺 乏 你 所 知 道 的 几 乎 全 部 国 内 的 公 共 DNS 都 是 不 支 持 DNSSEC 的, 当 然, 把 国 内 换 成 国 外, 就 刚 好 反 过 来 了 但 使 用 国 外 DNS 的 问 题 除 了 速 度 慢, 就 是 我 们 上 面 提 到 了, 对 那 些 未 签 名 的 域 名 来 说, 传 输 的 最 后 一 站 中 的 域 名 劫 持 根 本 无 法 避 免, 在 客 户 端 没 有 验 证 签 名 能 力 或 者 默 认 不 做 本 地 签 名 验 证 的 情 况 下 ( 这
67 第 四 章 FREEROUTER V2 的 技 术 原 理 62 还 是 现 在 的 默 认 情 况 ), 就 算 是 签 名 的 域 名 也 躲 不 掉 被 劫 持 的 厄 运 总 结 下 来,DNSSEC 的 安 全 性, 数 据 完 整 性 保 障, 建 立 在 一 个 由 域 名 从 根 域 到 底 层 名 称 服 务 器 DNS 服 务 器 解 析 器 组 成 的 完 整 的 安 全 链 上, 这 个 链 上 的 任 何 一 个 环 节 出 问 题, 都 会 让 DNSSEC 的 安 全 性 荡 然 无 存 DNSSEC 作 为 现 有 DNS 系 统 的 增 补, 有 效 部 署 难 度 极 大 要 求 所 有 域 名 都 有 DNSSEC 签 名 这 一 项 就 无 法 通 过 任 何 策 略 来 推 进, 除 非 DNSSEC 签 名 全 部 免 费 (Godaddy 一 年 的 签 名 要 36 美 元 ), 并 作 为 强 制 标 准 要 求 所 有 域 名 注 册 商 和 NS 服 务 器 都 支 持, 否 则 DNSSEC 始 终 只 能 是 服 务 于 极 小 部 分 域 名 4.5 给 Dnsmasq 启 用 DNSSEC 域 名 这 是 一 切 开 始 的 前 提 域 名 本 身 必 须 有 DNSSEC 签 名, 对 于 没 有 DNSSEC 签 名 的 域 名 来 说,DNSSEC 几 乎 不 能 提 供 任 何 额 外 的 保 护 作 用 但 目 前 做 了 DNSSEC 签 名 的 域 名 极 其 稀 少, 我 们 要 访 问 的 绝 大 部 分 被 污 染 的 域 名 都 没 有 这 个 签 名 这 部 分 是 在 文 章 写 完 一 段 时 间 后 添 加 的, 现 在 来 看, 在 域 名 本 身 不 做 DNSSEC 签 名 的 情 况 下, 指 望 DNSSEC 解 决 任 何 问 题 都 是 妄 想 客 户 端 必 须 有 对 应 的 DNSSEC 支 持 工 具,OpenWRT 上 默 认 的 的 dnsmasq 是 没 有 的, 需 要 我 们 替 换 为 dnsmasq-full 才 可 以, 这 个 可 以 通 过 使 用 OpenWRT 的 Image Generator 的 PACKAGES 参 数 来 实 现, 移 除 默 认 的 dnsmasq, 添 加 dnsmasq-full PACKAGES="-dnsmasq dnsmasq -full" 服 务 器 必 须 是 一 个 支 持 DNSSEC 扩 展 的 DNS 服 务 器, 这 种 服 务 器 目 前 在 国 内 非 常 少, 但 国 外 非 常 多, 我 知 道 Google DNS 是 支 持 的, 而 OpenDNS 是 明 确 不 支 持 的, 这 个 还 一 度 给 我 添 加 了 一 些 麻 烦 Dnsmsq 的 配 置 : 在 /etc/dnsmasq.conf 中, 或 者 如 果 你 在 dnsmasq.conf 中 通 过 conf-dir 参 数 指 定 了 一 个 配 置 目 录 的 话, 就 在 那 个 目 录 下 添 加 一 个 *.conf 文 件, 写 入 以 下 参 数 :
68 第 四 章 FREEROUTER V2 的 技 术 原 理 63 dnssec 这 个 参 数 是 基 本 的 启 用 DNSSEC 的 基 本 参 数, 表 示 要 求 查 询 域 名 记 录 的 DNSSEC 扩 展 信 息 trust -anchor=.,19036,8,2,49aac11d7b6f e54a a1a fd2ce1cdde32f24e8fb5 这 个 参 数 是 配 置 默 认 的 trus-anchor, 是 使 用 dnssec 必 须 加 入 的 参 数, 具 体 说 明 参 考 dnsmasq man page, 配 置 内 容 可 以 从 IANA 网 站 获 得 这 个 相 当 于 数 据 加 密 解 密 中 的 公 钥 (public-key), 理 想 情 况 ( 所 有 子 域 名 都 部 署 了 DNSSEC) 下, 我 们 只 需 要 添 加 根 域 (root zone) 的 public-key 就 可 以 了, 现 在 常 用 的 各 个 顶 级 和 国 别 域 名 的 部 署 情 况 已 经 基 本 达 到 理 想 状 况 了 dnssec -check -unsigned 这 个 参 数 需 要 非 常 注 意! 因 为 DNSSEC 默 认 只 会 对 有 DNSSEC 签 名 的 返 回 结 果 去 做 验 证, 如 果 一 个 返 回 结 果 是 未 签 名 的,Dnsmasq 默 认 会 相 信 这 个 数 据 是 真 实 有 效 的, 并 不 会 去 管 这 个 域 名 是 不 是 真 的 没 有 签 名, 还 是 别 人 伪 造 了 数 据 包 如 果 启 用 下 面 这 个 选 项,Dnsmasq 会 对 未 签 名 的 返 回 数 据 做 检 查, 确 定 域 名 是 真 的 没 有 签 名, 而 不 是 一 个 有 签 名 的 域 名 被 人 伪 造 了 无 签 名 的 数 据 来 欺 骗 你 要 检 查 域 名 是 真 的 没 签 名 还 是 假 的 没 签 名, 就 要 求 DNS 服 务 器 必 须 支 持 DNSSEC, 否 则 一 切 工 作 都 无 法 进 行, 域 名 就 无 法 解 析 对 于 114 这 类 不 支 持 DNSSEC 的 DNS 来 说, 它 返 回 的 所 有 数 据 都 是 没 有 签 名 的, 而 Dnsmasq 又 无 法 通 过 114 DNS 去 验 证 无 签 名 的 真 实 性, 那 么 所 有 的 域 名 解 析 都 会 失 效 dnssec -no-timecheck DNSSEC 对 于 服 务 器 返 回 的 签 名 数 据 是 有 一 个 信 赖 时 间 窗 口 的, 过 了 这 个 时 间 窗 数 据 就 不 再 被 信 赖 但 对 于 一 些 没 有 RTC 的 机 器 来 说, 这 就 产 生 了 一 个 蛋 生 鸡 鸡 生 蛋 的 问 题, 因 为 他 们 需 要 通 过 NTP 服 务 器 来 获 取 时 间, 可 是 获 取 NTP 服 务 器 的 地 址 又 必 须 先 解 析 NTP 服 务 器 的 域 名, 可 是 现 在 机 器 没 有 正 确 的 时 间, 导 致 信 赖 时 间 窗 口 无 效, 又 解 析 不 了 正 确 的 域 名 地 址, 这 就 麻 烦 大 了 下 面 这 个 参 数 对 于 OpenWRT 这 样 的 路 由 来 说 都 应 该 默 认 启 用, 启 用 之 后, 在 系 统 获 得 正 确 的 时 间 之 前, 解 析 结 果 不 受 信 赖 时 间 窗 口 的 限 制, 等 系 统 获 得 正 确 的 系 统 时 间 之 后, 这 个 信 赖 时 间 窗 口 机 制 才 重 新 开 启 配 置 完 成 之 后 : /etc/init.d/dnsmasq restart 重 启 Dnsmasq 服 务 即 可 生 效 我 刚 说 OpenDNS 给 我 造 成 了 一 点 小 麻 烦, 就 是 我 在 OpenWRT 中, 同 时 设 置 了 GoogleDNS 和 OpenDNS 作 为 默 认 的 DNS, 没 有 设 定 严 格 按 顺 序 查 询, 也 许 是 OpenDNS 的 速 度 稍 微 快 一 点 ( 我 这 里 Google DNS 延 迟 400 多 毫 秒 ) 结 果 Dnsmasq 默 认 用 了 OpenDNS, 而 OpenDNS 又 不 支 持 DNSSEC, 结 果 就 是 我 上 面 对 dnssec-check-unsigned 的 解 释,DNS 解 析 服 务 完 全 失 效 了
69 第 四 章 FREEROUTER V2 的 技 术 原 理 64 在 注 释 掉 dnssec-check-unsigned 这 个 参 数 后 可 以 解 析 数 据 了, 但 你 用 DNSSEC 配 合 一 个 不 支 持 DNSSEC 的 服 务 器 解 析 数 据, 怎 么 可 能 避 免 污 染 呢, 这 让 我 一 度 以 为 是 Dnsmasq 的 DNSSEC 没 有 工 作 在 把 OpenDNS 从 WAN 和 VPN 接 口 的 设 置 中 都 删 除 之 后, 确 保 了 系 统 只 用 Google DNS, 现 在 DNSSEC 才 开 始 工 作 了 DNSSEC 的 效 果 : 首 先 各 种 有 效 性 测 试 你 必 须 在 路 由 后 面 的 设 备 上 进 行, 你 直 接 在 路 由 上 用 dig 或 者 nslookup 查 询 的 话, 这 个 结 果 是 不 完 全 依 赖 Dnsmasq 的 Dig 也 好,nslookup 也 好, 这 些 都 不 等 同 于 你 系 统 在 使 用 的 resolver(dnsmasq), 虽 然 他 们 可 以 帮 你 检 查 resolver 的 工 作 情 况, 但 这 二 者 本 质 上 是 不 同 的 东 西, 这 个 基 本 概 念 必 须 清 楚 因 为 Dnsmasq 作 为 resolver, 他 有 自 己 的 dnssec 验 证 机 制, 对 于 不 合 格 的 数 据 会 丢 弃, 但 dig 和 nslookup 只 是 个 程 序, 他 只 处 理 并 显 示 收 到 的 udp 或 tcp 包, 它 们 并 不 知 道 去 对 dnssec 的 数 据 做 验 证 和 丢 弃 被 GFW 劫 持 后 的 DNS, 会 从 一 个 没 有 配 置 DNSSEC 的 服 务 器 上 优 先 返 回 虚 假 的 数 据, 这 就 出 现 了 一 个 极 大 的 : 1. 如 果 我 们 不 启 用 dnssec-check-unsigned 这 个 选 项, 那 么 Dnsmasq 就 会 接 受 GFW 劫 持 后 的 数 据, 防 护 彻 底 丧 失 2. 如 果 我 们 启 用 dnssec-check-unsigned 这 个 选 项,GFW 伪 造 的 返 回 包 是 不 包 含 DNSSEC 支 持 信 息 的,Dnsmasq 会 认 为 这 是 一 个 不 支 持 DNSSEC 的 服 务 器 返 回 的 结 果, 从 而 丢 弃 这 个 数 据 但 是 114 之 类 的 国 内 DNS 也 都 是 没 有 DNSSEC 的, 他 们 的 解 析 结 果 也 同 样 会 被 丢 弃, 那 么 我 们 就 无 法 把 国 内 的 域 名 交 给 这 些 国 内 DNS 解 析 来 解 决 CDN 和 解 析 速 度 问 题 因 为 我 们 常 用 的, 被 污 染 的 域 名 几 乎 都 没 有 做 DNSSEC 签 名, 所 以 DNSSEC 几 乎 不 能 给 我 们 提 供 任 何 帮 助 现 在 能 起 作 用, 也 仅 仅 是 因 为 GFW 伪 造 的 数 据 包 是 一 个 不 支 持 DNSSEC 的 DNS 服 务 器 的 格 式, 在 开 启 dnssec-check-unsigned 这 个 选 线 的 时 候,Dnsmasq 会 像 丢 弃 114DNS 的 解 析 结 果 一 样 丢 弃 了 GFW 的 伪 造 包 如 果 哪 天 GFW 更 新, 同 时 发 送 无 DNSSEC 和 有 DNSSEC 的 伪 造 包, 那 DNSSEC 就 完 全 帮 不 上 忙 了, 除 非 那 些 域 名 本 身 有 DNSSEC 签 名
70 第 四 章 FREEROUTER V2 的 技 术 原 理 年 后 的 DNS 污 染 对 应 策 略 背 景 和 策 略 众 所 周 知 的 背 景 是, 从 2015 年 年 初 开 始,GFW 用 于 DNS 污 染 的 投 毒 IP 暴 增 到 了 数 千 个, 而 且 完 全 不 知 道 这 个 IP 的 产 生 规 则, 如 果 这 个 IP 库 的 产 生 是 个 随 机 过 程, 那 么 我 们 寄 希 望 于 linux 防 火 墙 来 过 滤 投 毒 IP 就 完 全 不 靠 谱 了 很 无 奈 的, 我 把 FreeRouter V2 的 DNS 策 略 修 改 回 了 最 早 期 的 FreeRouter V1 上 的 策 略, 只 不 过 把 白 名 单 模 式 改 成 了 黑 名 单 模 式 在 FreeRouter V1 中, 默 认 所 有 的 DNS 查 询 都 通 过 VPN 访 问 Google DNS 这 些 国 外 纯 净 的 DNS 来 实 现, 只 对 国 内 Alex 排 名 几 百 位 的 域 名 和 全 部 的.cn 域 名 以 及 部 分 大 网 站 的 CDN 子 域 名 使 用 国 内 DNS 解 析 这 样 做 的 好 处 是, 你 永 远 不 用 担 心 有 哪 个 你 不 知 道 被 污 染 的 域 名 使 用 了 国 内 DNS 查 询, 因 为 使 用 国 内 DNS 的 域 名 全 部 是 你 自 己 指 定 的 但 这 样 做 的 缺 点 也 很 明 显, 因 为 这 个 国 内 域 名 的 列 表 实 在 太 大 了, 毕 竟 大 部 分 人 绝 大 部 分 时 间 访 问 的 网 站 90% 都 是 国 内 网 站, 专 业 人 士 可 能 直 接 就 开 全 局 VPN 了, 不 用 费 这 个 功 夫 因 为 列 表 大, 就 很 难 完 整, 难 免 会 碰 到 国 内 网 站 被 解 析 到 国 外 节 点 上 的 情 况 在 FreeRouter V2 中, 我 采 用 的 是 黑 名 单 模 式, 即 默 认 所 有 域 名 都 从 国 内 DNS 解 析, 但 所 有 我 们 要 翻 墙 的 域 名 都 通 过 VPN 走 Google DNS 解 析 因 为 被 污 染 域 名 的 网 站 始 终 是 少 数, 所 以 我 们 的 被 屏 蔽 域 名 列 表 是 被 污 染 域 名 列 表 的 超 集, 只 要 保 证 了 这 个 列 表 里 的 域 名 都 是 从 干 净 的 DNS 解 析 的, 那 基 本 就 没 有 问 题 了 但 这 种 方 式 也 不 是 没 有 问 题 的, 最 大 的 问 题 是 VPN 断 线 后 国 外 的 DNS 就 不 再 纯 净 了, 污 染 依 然 可 以 进 来, 这 也 是 为 什 么 之 前 我 这 么 倾 向 于 用 iptables 过 滤 的 原 因, 因 为 那 样, 嗯, 超 强 防 侧 漏 提 供 持 久 保 护 但 是 没 办 法, 谁 让 GFW 这 帮 小 伙 这 么 拼 呢, 我 现 在 是 真 没 时 间 跟 他 们 玩 了 所 以 你 能 做 的 就 是 找 个 靠 谱 点 的 VPN, 另 外 Dnsmasq 本 身 有 缓 存 机 制, 如 果 在 缓 存 时 间 失 效 之 前 VPN 能 重 新 连 上, 其 实 问 题 也 不 大, 至 少 我 用 了 这 段 时 间 来 看 还 真 没 什 么 问 题 实 际 操 作 实 际 操 作 也 很 简 单, 依 然 依 靠 我 们 伟 大 的 Dnsmasq, 例 如 google.com 被 封 了, 我 们 除 了 用 ipset 把 google.com 加 入 VPN 通 道 之 外, 还 要 加 一 句 让 google.com 通 过 来 解 析 : server=/google.com/
71 第 四 章 FREEROUTER V2 的 技 术 原 理 66 同 时 我 们 早 就 说 过, 国 外 的 DNS 必 须 通 过 VPN 访 问 才 是 干 净 的, 所 以 我 们 在 /etc/ppp/ip-up.d/vpnup.sh 中 添 加 一 条 命 令, 让 走 VPN 通 道 route add -host dev $VPN_DEV 至 于 为 什 么 选 Google DNS, 这 完 全 是 个 人 感 觉, 你 喜 欢 OpenDNS 其 实 也 是 差 不 多 的, 因 为 OpenDNS 也 早 就 宣 布 不 劫 持 错 误 域 名 到 任 何 广 告 页 面 了, 一 样 很 了 不 起 在 速 度 上, 其 实 当 你 通 过 VPN 访 问 这 些 DNS 服 务 器 之 后, 基 本 上 这 个 速 度 就 取 决 于 你 VPN 的 速 度 了, 国 外 的 VPN 服 务 器 到 这 些 DNS 服 务 器 的 耗 时 基 本 都 是 可 以 忽 略 不 计 的 同 时, 我 们 之 前 在 /etc/firewall.user 中 添 加 的 那 些 过 滤 规 则, 全 都 不 需 要 了, 删 掉 就 行 了 没 必 要 注 释 掉, 留 着 真 没 什 么 意 义, 这 么 多 年 来 我 只 见 过 墙 往 前 推, 还 没 见 过 墙 往 后 倒 一 个 小 脚 本 如 果 把 上 面 的 dnsmasq 配 置 项, 为 几 百 个 域 名 写 上 几 百 行, 其 实 也 是 挺 烦 人 的 所 以 我 写 了 个 小 脚 本, 代 码 如 下 : #!/bin/sh set -x ConfFile="./gfw.conf" TextFile="./GfwList.txt" if [ $1 = '--sort ' ] then cat $ConfFile sort grep ipset sed -e "s#^[^\/]*\/\([^\/]*\)\/.*\$#\1#g" >$TextFile fi rm -rf $ConfFile cat $TextFile while read SingleDomain do echo "ipset=/ $SingleDomain/vpn">>$ConfFile echo "server=/$singledomain / ">>$ConfFile done 功 能 很 简 单, 如 果 你 在 同 目 录 下 放 一 个 GfwList.txt 文 件, 里 面 一 行 一 个 写 入 需 要 翻 墙 的 域 名, 直 接 执 行 后 就 会 给 你 生 成 一 份 适 合 的 gfw.conf 文 件 用 于 dnsmasq 的 配 置 考 虑 到 一 些 处 女 座 强 迫 症 患 者 可 能 喜 欢 所 有 域 名 按 序 排 列, 我 加 了 个 sort 参 数, 如 果 你 在 同 目 录 下 有 一 个 gfw.conf 文 件, 配 合 这 个 参 数 运 行, 脚 本 就 会 把 gfw.conf 里 的 域 名 全 部 抽 取 出 来 排 序 好, 生 成 一 份 有 序 的 GfwList.txt, 然 后 再 生 成 一 份 有 序 的 gfw.conf 文 件 替 换 原 文 件
72 第 四 章 FREEROUTER V2 的 技 术 原 理 67 然 后 你 再 运 行./apply.sh 脚 本, 这 个 脚 本 会 自 动 把 同 目 录 下 的 gfw.conf 文 件 复 制 到 对 应 的 FreeRouter V2 项 目 的 目 录 下, 然 后 重 启 Dnsmasq 服 务 让 这 些 改 动 生 效 不 要 感 激 我, 这 是 情 怀
73 第 章 FreeRouter 实 战 如 果 没 有 爱, 一 个 故 事 怎 么 会 有 幸 福 的 结 局? 5.1 FreeRouter V2 的 工 作 流 程 程 : 我 们 前 面 已 经 把 FreeRouter V2 所 用 到 的 技 术 全 部 讲 完 了, 在 开 始 实 际 部 署 前 先 总 结 一 下 整 个 工 作 流 1. 客 户 端 发 起 访 问 Twitter.com 的 请 求, 同 时 发 出 DNS 解 析 请 求, 请 求 送 达 路 由 器 2. 路 由 器 上 的 Dnsmasq 向 所 有 DNS 服 务 器 发 起 解 析 请 求 3. GFW 抢 先 返 回 虚 假 解 析 结 果, 被 iptables 防 火 墙 拦 截 4. 真 正 的 DNS 服 务 器 返 回 的 数 据 随 后 到 达, 被 Dnsmasq 接 受 5. Dnsmasq 发 现 twitter.com 在 配 置 的 IPSET 列 表 里, 将 这 个 解 析 的 IP 加 入 IPSET 6. iptables 防 火 墙 把 目 标 地 址 属 于 这 个 IPSET 的 数 据 全 部 打 上 标 签 7. ip rule 规 则 把 打 上 标 签 的 数 据 全 部 加 入 一 个 table 8. ip route 把 这 个 table 里 的 数 据 全 部 转 发 到 VPN 接 口 9. 对 twitter.com 的 访 问 数 据 全 部 通 过 VPN 接 口 进 行, 绕 过 GFW 的 IP 阻 断 如 果 文 字 不 好 理 解, 看 图 吧 : 68
74 第 五 章 FREEROUTER 实 战 69 图 5.1: FreeRouter V2 工 作 流 程
75 第 五 章 FREEROUTER 实 战 OpenWRT 基 础 OpenWRT 是 什 么? OpenWRT 的 官 方 网 站 在 这 里 : 首 先 你 要 知 道 OpenWRT 是 什 么,OpenWRT 是 一 个 基 于 Linux 内 核 的 第 三 方 路 由 器 操 作 系 统, 和 一 般 的 桌 面 Linux 系 统 不 同, 路 由 器 的 操 作 系 统 是 实 时 系 统 1, 但 什 么 是 实 时 系 统 其 实 和 你 们 关 系 不 大, 不 用 管 它 了 你 要 知 道 的 是,OpenWRT 能 够 成 为 一 个 路 由 器 的 系 统, 除 了 内 核 之 外 主 要 依 靠 的 是 大 量 的 Linux 网 络 工 具 和 内 核 模 块, 是 这 些 工 具 和 模 块 提 供 了 OpenWRT 的 网 络 管 理 能 力, 要 使 用 特 定 的 功 能 就 必 须 在 OpenWRT 中 有 对 应 的 软 件 包 (Package) 支 持 所 谓 的 第 三 方, 指 的 是 一 般 的 路 由 器 在 出 厂 前 基 本 都 不 会 预 装 这 个 系 统, 如 果 你 要 使 用, 就 要 像 手 机 刷 机 一 样 自 己 把 OpenWRT 固 件 刷 进 你 的 路 由 如 果 你 缺 乏 OpenWRT 的 基 础 知 识, 请 去 阅 读 OpenWRT 的 官 方 Wiki, 我 不 会 去 帮 你 解 答 和 项 目 无 关 的 OpenWRT 的 问 题 我 的 路 由 能 刷 OpenWRT 吗? OpenWRT 提 供 另 一 个 支 持 OpenWRT 的 硬 件 Wiki 列 表, 注 意 ipad 上 的 safari 可 能 打 不 开 这 个 页 面, 换 chrome 或 者 用 桌 面 版 的 其 他 浏 览 器 当 然 这 个 wiki 的 更 新 有 时 候 并 不 及 时, 你 可 以 直 接 去 他 们 的 下 载 站 点, 根 据 自 己 路 由 器 的 CPU 型 号, 去 trunk 目 录 里, 选 择 对 应 的 目 录 查 看 是 否 有 自 己 的 路 由 器 对 应 的 固 件, 地 址 是 : 最 新 的 代 码 和 最 新 添 加 的 硬 件 支 持 都 在 trunk 目 录 里, 但 trunk 目 录 也 意 味 着 这 是 开 发 中 的 代 码, 可 能 伴 随 着 一 些 未 知 的 bug 和 不 稳 定 性 一 般 来 说,OpenWRT 支 持 最 好 最 全 面 的 是 Atheros 的 AR71xx 系 列 的 CPU, 其 次 是 BroadCom 的 一 些 老 的 型 号 CPU 你 也 许 可 以 再 国 内 的 一 些 论 坛 找 到 一 些 没 被 OpenWRT 官 方 支 持 的 路 由 器 的 OpenWRT 固 件, 虽 然 他 们 提 供 了 固 件, 但 OpenWRT 官 方 未 必 提 供 了 对 应 芯 片 的 Package 支 持, 要 知 道 每 种 芯 片 对 应 的 Package 是 要 用 各 自 芯 片 的 SDK 重 新 编 译 才 能 用 的 所 以, 除 非 你 动 手 能 力 超 强 能 自 己 搞 定 所 有 的 package 编 译, 我 从 来 都 不 会 建 议 你 买 这 些 没 官 方 支 持 的 路 由 1 Real Time OS
76 第 五 章 FREEROUTER 实 战 我 的 路 由 需 要 多 大 ROM? 实 现 一 个 有 管 理 界 面 (luci), 能 安 装 完 FreeRouter V2 全 部 功 能 脚 本 的 路 由, 需 要 你 的 路 由 器 至 少 有 4M 的 Flash 空 间, 一 般 而 言 这 个 都 是 可 以 满 足 的 如 果 你 希 望 充 分 发 挥 路 由 的 功 能, 例 如 添 加 文 件 共 享, USB 共 享, 脱 机 下 载 这 些 额 外 的 功 能, 建 议 至 少 有 8MB 的 空 间, 这 些 东 西 和 本 项 目 无 关, 不 要 来 烦 我 如 果 你 有 兴 趣 研 究 GFW, 或 者 学 习 linux 的 网 络 管 理, 那 么 你 可 能 需 要 安 装 一 些 linux 的 调 试 跟 踪 工 具 在 路 由 上, 这 样 也 至 少 建 议 有 8MB 的 空 间 我 应 该 下 载 选 哪 个 版 本 的 固 件? 这 里 的 版 本 有 两 个 概 念, 一 个 是 真 正 的 版 本, 你 可 以 看 到 在 他 们 的 下 载 目 录 首 页, 有 backfire, attitude_adjustment, 这 些 目 录, 这 些 都 是 OpenWRT 的 重 大 版 本 更 新, 类 似 windows xp,windows 7 这 样 的 概 念, 当 前 最 新 的 正 式 发 布 的 版 本 是 attitude_adjustment, 正 在 开 发 中 的 barrier_breaker 已 经 发 布 了 RC2 版 本 目 前 barrier_breaker RC2 已 经 很 稳 定 了, 当 然 trunk 目 录 中 的 最 新 代 码 可 能 会 因 为 导 入 新 功 能 而 产 生 之 前 没 有 的 bug, 并 不 是 说 最 新 就 一 定 最 稳 定,RC 版 的 稳 定 性 一 般 来 说 比 trunk 版 要 高 另 外 一 个 版 本 概 念, 就 是 固 件 的 文 件 系 统 格 式 和 升 级 方 法 一 些 老 的 路 由 上 可 能 只 有 jffs 文 件 系 统 的 支 持, 而 新 的 一 般 都 支 持 suqashfs 你 不 需 要 知 道 这 两 者 的 具 体 内 容, 只 需 要 知 道 suqashfs 允 许 你 对 整 个 路 由 文 件 系 统 进 行 操 作, 而 jffs 文 件 系 统 只 允 许 你 对 一 个 叫 jffs 的 文 件 夹 的 内 容 进 行 修 改, 这 是 非 常 不 方 便 的, 本 书 的 讨 论 默 认 基 于 suqashfs 文 件 系 统 进 行 而 在 升 级 方 式 上, 如 果 你 路 由 现 在 的 固 件 还 是 出 厂 的 固 件, 就 应 该 选 择 文 件 名 后 面 带 factory 的, 表 示 从 原 厂 固 件 开 始 升 级, 升 级 之 后 就 是 OpenWRT 系 统 了 如 果 你 已 经 刷 成 OpenWRT 系 统 了, 只 需 要 下 载 sysupgrade 版 本 就 行 了 如 何 刷 固 件? 在 前 面 提 到 的 那 个 wiki 页 面 中, 点 击 进 入 每 个 支 持 OpenWRT 的 路 由 的 wiki 页 面 后, 一 般 都 会 有 很 详 细 的 刷 机 过 程 指 导, 大 部 分 情 况 下 你 只 需 要 下 载 factory 版 的 固 件, 然 后 从 原 厂 固 件 的 固 件 升 级 页 面 直 接 升 级 就 可 以 了 具 体 操 作, 请 自 行 阅 读 相 关 的 刷 机 说 明 为 什 么 刷 了 固 件 后 打 不 开 路 由 管 理 界 面? 第 一 次 刷 完 官 方 的 OpenWRT 固 件 后, 路 由 器 的 地 址 一 般 都 是 , 如 果 不 确 定, 可 以 用 前 面 教 你 们 的 traceroute 命 令 查 看 第 一 个 路 由 节 点 是 什 么.openwRT 官 方 的 固 件 默 认 都 不 提 供 luci 管 理 界 面, 只
77 第 五 章 FREEROUTER 实 战 72 提 供 23 端 口 的 telnet 进 行 远 程 管 理 这 个 端 口 默 认 没 有 密 码, 用 telnet 登 录 上 之 后 你 可 以 自 己 安 装 luci 管 理 界 面 如 何 安 装 各 种 package? 在 OpenWRT 下 安 装 各 种 软 件 和 在 ubuntu 下 安 装 软 件 几 乎 是 一 样 的, 只 是 命 令 有 些 不 同, 以 安 装 luci web 管 理 界 面 package 为 例,telnet 登 录 到 路 由 之 后, 执 行 如 下 命 令 : opkg update 这 个 过 程 是 从 openwrt 官 方 更 新 源 列 表, 对 于 trunk 版 的 固 件, 经 常 会 因 为 trunk 目 录 里 的 代 码 更 新 导 致 版 本 需 求 和 你 现 有 的 固 件 不 匹 配, 所 以 你 最 好 能 学 会 后 面 自 己 打 包 固 件 的 方 法 opkg install luci 这 是 安 装 luci 管 理 界 面, 如 果 一 个 pacakge 有 什 么 其 他 依 赖 的 package, 也 会 一 并 被 安 装, 不 用 你 额 外 操 心 opkg install luci -ssl 如 果 你 需 要 的 话, 还 可 以 额 安 装 luci-ssl, 提 供 ssl 加 密 的 管 理 界 面 登 录 opkg install luci -i18n -chinese 如 果 你 需 要 中 文 界 面, 就 安 装 对 应 的 中 文 支 持 luci 管 理 界 面 本 身 的 运 行 需 要 一 个 http 服 务 器 组 件 叫 做 uhttpd, 在 你 安 装 luci 的 时 候 默 认 就 会 安 装 这 个 组 件, 但 它 不 会 自 己 启 动, 所 以 你 要 手 工 启 动 它 : /etc/init.d/uhttpd start 为 了 让 以 后 每 次 重 启 路 由 都 自 动 启 动 uhttpd 服 务, 需 要 使 能 这 个 服 务 : /etc/init.d/uhttpd enable 更 完 整 的 使 用 OPKG 命 令 安 装 package 的 指 导, 请 参 考 OpenWRT 官 方 页 面 介 绍
78 第 五 章 FREEROUTER 实 战 FreeRouter V2 需 要 的 组 件 FreeRouter V2 使 用 了 一 些 普 通 人 可 能 用 不 到 的 组 件, 依 次 介 绍 必 要 的 组 件 : luci, 可 选 项 目 :luci-ssl,luci-i18n-chinese,luci-app-upnp luci-app-qos luci-app-samba 这 是 路 由 的 管 理 界 面, 前 面 已 经 提 到 了, 可 以 方 便 我 们 添 加 管 理 各 种 接 口, 虽 然 不 是 必 须 的, 但 有 这 个 确 实 方 便 很 多 后 面 几 个 可 选 项 目, 分 别 是 管 理 页 面 的 ssl 支 持, 中 文 支 持,upnp 管 理,qos 管 理, 和 samba 共 享 管 理 ipset 用 于 创 建 ipset iptables-mod-ipopt 和 kmod-ipt-ipopt iptables 对 应 的 标 签 处 理 模 块 和 内 核 支 持 模 块, 用 于 实 现 让 iptables 给 数 据 添 加 标 签 (fwmark) ip 用 于 ip rule 添 加 和 ip route 路 由 表 管 理 iptables-mod-filter 和 kmod-ipt-filter iptables 的 string 模 块 和 对 应 的 内 核 支 持 模 块 iptables-mod-u32 和 kmod-ipt-u32 iptables 的 u32 模 块 和 对 应 的 内 核 支 持 模 块 ppp-mod-pptp 用 于 连 接 PPTP VPN 的 接 口 模 块, 当 且 仅 当 你 使 用 PPTP VPN 的 时 候 才 需 要 openvpn-ssl 用 于 连 接 Open VPN 的 接 口 模 块, 当 且 仅 当 你 使 用 Open VPN 的 时 候 才 需 要.PPTP 和 OpenVPN 两 种 接 口 方 案 你 只 能 选 择 一 种 使 用, 不 能 同 时 使 用. dnsmasq-full 这 个 需 要 特 别 注 意!OpenWRT 官 方 固 件 自 带 的 Dnsmasq 是 lite 版 本, 不 带 IPSET 功 能, 也 没 有 DNSSEC 支 持 ( 虽 然 这 个 没 什 么 太 大 用 处 ), 必 须 替 换 成 dnsmasq-full 版 本 才 可 以 使 用 dnsmasq-full 是 官 方 提 供 的 版 本, 不 需 要 自 己 重 新 编 译
79 第 五 章 FREEROUTER 实 战 74 以 下 都 是 可 选 项 目, 适 合 喜 欢 折 腾 的 人, 普 通 用 户 不 需 要 这 些 东 西 : bash 和 bash-completion OpenWRT 自 带 的 shell 是 Ash, 非 常 简 陋, 很 多 命 令 和 功 能 都 不 能 使 用, 限 制 也 很 多, 你 可 以 自 己 安 装 bash 如 果 需 要 把 默 认 的 shell 替 换 成 bash, 需 要 修 改 /etc/passwd 文 件, 把 里 面 的 /bin/ash 改 成 /bin/bash, 重 启 后 就 可 以 生 效 了 vim-full 和 vim-runtime vim 是 这 个 世 界 上 最 好 的 编 辑 器, 没 有 之 一,emacs 逆 党 速 速 退 散!SlickEdit 用 户 们, 跟 我 一 起 去 抗 议 SE 一 年 60 刀 的 维 护 费 吧, 太 黑 了 bind-dig 和 bind-libs 安 装 我 们 前 面 说 到 的 Dig 命 令 工 具 curl 我 的 某 些 脚 本 会 用 到 curl, 这 个 东 西 比 较 大, 大 概 有 1MB 5.4 部 署 FreeRouterV 系 统 的 基 本 设 置 刷 好 固 件 后 首 先 从 luci 界 面 登 录 ( 假 定 你 已 经 安 装 好 了 所 有 必 需 的 package), 默 认 是 没 有 密 码 的 :
80 第 五 章 FREEROUTER 实 战 75 图 5.2: luci 登 录 界 面 登 录 后 按 提 示 跳 转 到 密 码 设 定 页 面, 设 定 路 由 器 管 理 密 码, 点 击 保 存 应 用 这 个 密 码 也 是 你 用 ssh 管 理 路 由, 和 用 winscp 部 署 文 件 时 用 的 密 码, 用 户 名 默 认 是 root 图 5.3: 密 码 设 定 页 面 第 一 次 设 定 密 码 后 稍 微 等 待 几 分 钟, 因 为 后 台 生 成 SSH Key 的 时 间 非 常 长, 然 后 就 可 以 用 你 习 惯 的 Shell 工 具 登 录 了,Cygwin 就 是 很 好 的 工 具, 文 件 管 理 在 Windows 下 推 荐 用 免 费 的 WinSCP
81 第 五 章 FREEROUTER 实 战 PPTP VPN 接 口 设 定 PPtP 依 次 点 击 管 理 页 面 上 方 的 网 络 接 口, 点 击 左 下 方 的 添 加 新 接 口, 接 口 名 称 随 便 填, 协 议 选 择 图 5.4: 开 始 建 立 VPN 接 口 按 照 你 自 己 的 VPN 服 务 器 信 息 和 用 户 名 密 码 填 写 :
82 第 五 章 FREEROUTER 实 战 77 图 5.5: 填 写 服 务 器 IP, 用 户 名 和 密 码 在 高 级 设 置 中, 取 消 勾 选 使 用 默 认 网 关 : 图 5.6: 不 要 选 使 用 默 认 网 关 防 火 墙 设 置 中, 把 VPN 接 口 设 置 在 和 WAN 接 口 同 一 个 区 域, 否 则 VPN 接 口 会 被 防 火 墙 限 制 在 内 网 :
83 第 五 章 FREEROUTER 实 战 78 图 5.7: 配 置 VPN 接 口 的 防 火 墙 区 域 全 部 设 置 完 之 后 点 击 保 存 应 用, 如 果 正 常 连 接 上 的 话, 应 该 可 以 看 到 这 个 接 口 有 数 据, 否 则 数 据 都 是 0. 通 过 SSH 登 录 后, 如 果 VPN 连 接 成 功, 使 用 ifconfig 命 令 应 该 可 以 看 到 我 们 自 己 刚 才 设 定 的 VPN 接 口, 名 称 应 该 是 pptp- 我 们 设 定 的 接 口 名 字 Open VPN 接 口 设 定 相 对 PPTP 而 言,OpenVPN 接 口 的 设 定 稍 微 麻 烦 一 点 点, 因 为 原 来 OpenWRT 官 方 提 供 的 luci-appopenvpn 这 个 luci 管 理 组 件 已 经 不 再 提 供 了 也 许 你 可 以 自 己 去 找 其 他 非 官 方 支 持 的 版 本, 但 这 不 在 我 们 考 虑 的 范 围,FreeRouter V2 只 使 用 OpenWRT 官 方 提 供 的 组 件 注 意, 本 节 的 内 容 可 以 完 全 独 立 于 FreeRouter V2 项 目 本 身, 只 作 为 OpenVPN 在 OpenWRT 上 的 连 接 指 南 来 看 这 也 意 味 着 你 在 这 节 碰 到 的 问 题 都 不 是 FreeRouter V2 项 目 本 身 的 问 题, 建 立 好 OpenVPN 连 接 是 你 自 己 要 负 责 的 工 作 这 里 我 们 假 定 你 用 的 OpenVPN 是 tunnel 形 式 而 不 是 Tap 形 式, 这 点 很 重 要, 否 则 接 口 名 是 匹 配 不 上 的 但 这 肯 定 不 是 选 tunner 形 式 接 口 的 原 因, 具 体 的 原 因 可 以 看 看 这 个 页 面 的 介 绍,tap 一 般 指 用 于 基 于 layer2 mode 的 VPN, 但 layer2 mode 的 OpenVPN 只 有 Windows 客 户 端 才 能 连 上. 所 以 一 般 来 说, 你 们 买 的 和 自 己 用 OpenVPN Access Server 搭 建 的 VPN 都 是 tunnel 类 型, 这 也 是 最 普 遍 的 OpenVPN 形 式. 如 果 你 不 确 定 这 一 点, 查 看 服 务 商 给 你 提 供 的 *.ovpn 或 者 *.conf 格 式 的 客 户 端 配 置 文 件, 看 到 如 下 字 样 就 说 明 是 tunnel 形 式 的 了 : dev tun dev-type tun 第 一 步 和 PPTP 是 一 样 的, 依 次 点 击 管 理 页 面 上 方 的 网 络 接 口, 点 击 左 下 方 的 添 加 新 接 口,
84 第 五 章 FREEROUTER 实 战 79 图 5.8: 添 加 一 个 新 接 口 但 是 这 里 我 们 选 不 配 置 协 议, 最 上 面 的 接 口 名 你 可 以 随 便 写, 但 下 方 包 括 以 下 接 口 部 分 我 们 必 须 手 工 填 入 tun0, 因 为 这 个 是 tunnel 形 式 的 OpenVPN 连 接 成 功 后 默 认 创 建 的 接 口 名 但 如 果 你 的 VPN 服 务 商 有 其 他 的 ifconfig 选 项 的 推 送, 也 许 会 导 致 你 的 openwrt 上 建 立 的 接 口 名 不 同 这 种 情 况 下, 你 需 要 先 连 接 openvpn, 查 看 连 接 后 建 立 的 接 口 名, 再 回 到 这 里 建 立 同 名 的 接 口
ARP ICMP
ARP ICMP 2 9-1 ARP 9-2 ARP 9-3 ARP 9-4 ICMP 9-5 ICMP 9-6 ICMP 9-7 ICMP 3 ARP ICMP TCP / IP, IP ARP ICMP 3 IP, ARP ICMP IP ARP ICMP 2, 4 9-1 ARP, MAC, IP IP, MAC ARP Address Resolution Protocol, OSI ARP,,
More informationIP505SM_manual_cn.doc
IP505SM 1 Introduction 1...4...4...4...5 LAN...5...5...6...6...7 LED...7...7 2...9...9...9 3...11...11...12...12...12...14...18 LAN...19 DHCP...20...21 4 PC...22...22 Windows...22 TCP/IP -...22 TCP/IP
More information飞鱼星多WAN防火墙路由器用户手册
WAN VER: 20110218 Copyright 2002-2011 VOLANS WAN VR4600 VR4900 VR7200 VR7500 VR7600 1.1 1.2 IP 1.3 2.1 2.2 2.2.1 2.2.2 3.1 3.2 3.2.1 3.2.2 3.2.3 4.1 4.2 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.3 4.3.1 4.3.2
More informationR3105+ ADSL
... 1 1 1... 1 1 2... 1... 3 2 1... 3 2 2... 3 2 3... 5 2 4... 5 2 4 1... 5... 7 3 1... 7 3 2... 8 3 2 1... 8 3 2 2... 9 3 3... 12 3 3 1... 13 3 3 2 WAN... 16 3 3 3 LAN... 21 3 3 4 NAT... 22 3 3 5... 24
More informationC3_ppt.PDF
C03-101 1 , 2 (Packet-filtering Firewall) (stateful Inspection Firewall) (Proxy) (Circuit Level gateway) (application-level gateway) (Hybrid Firewall) 2 IP TCP 10.0.0.x TCP Any High Any 80 80 10.0.0.x
More informationMicrosoft PowerPoint - 03.IPv6_Linux.ppt [相容模式]
IPv6 Linux (Cent OS 5.x) IPV6 2 IPv6 IPv6 IPv6 IPv6 IPv4 IPv6 (RFC 2460) Dual Stack Tunnel 3 4 IPv6 Native IP IPv6, DHCPv6 IPv6 IP IPv6 Tunnel Broker IPv4, Tunnel IPv6 Tunnel Broker Client IPv6 ( ) IPv6
More informationSimulator By SunLingxi 2003
Simulator By SunLingxi sunlingxi@sina.com 2003 windows 2000 Tornado ping ping 1. Tornado Full Simulator...3 2....3 3. ping...6 4. Tornado Simulator BSP...6 5. VxWorks simpc...7 6. simulator...7 7. simulator
More informationPowerPoint Presentation
立 97 年度 SNMG 練 DNS & BIND enc1215@gmail.com DNS BIND Resolver Named 理 Named 更 DNS DNS Reference 2 DNS DNS 料 domain ip DNS server DNS server 理 DNS server DNS DNS 狀. root name server 理 3 DNS 狀 DNS (2). com
More information一、选择题
计 算 机 网 络 基 础 第 7 章 练 习 思 考 与 认 识 活 动 一 选 择 题 1. 下 面 命 令 中, 用 于 检 查 WINDOWS2000 下 TCP/IP 配 置 信 息 的 是 ( ) A. cmd B. nslookup C. ipconfig D. ping 2. 内 部 网 关 协 议 RIP 是 一 种 广 泛 使 用 的 基 于 距 离 矢 量 算 法 的 协 议
More informationUDP 8.2 TCP/IP OSI OSI 3 OSI TCP/IP IP TCP/IP TCP/IP Transport Control Protocol TCP User Datagram Protocol UDP TCP TCP/IP IP TCP TCP/IP TC
8 TCP/IP TCP/IP TCP OSI 8.1 OSI 4 end to end A B FTP OSI Connection Management handshake Flow Control Error Detection IP Response to User s Request TCP/IP TCP 181 UDP 8.2 TCP/IP OSI OSI 3 OSI 3 8.1 TCP/IP
More informationuntitled
Parent zone named.conf.options ( Root) shell script shell script 2 Child zone named.conf.options ( ) ( ) ( ) ( ) ( ) ( parent zone) 3 Parent zone named.conf.options $ vi /etc/bind/named.conf.options options
More information11N 无线宽带路由器
http://www.tenda.com.cn 1... 1 1.1... 1 1.2... 1 2... 3 2.1... 3 2.2... 3 2.3... 5 2.4... 6 2.5... 7 2.6... 9 2.6.1 无线基本设置... 9 2.6.2 无线加密设置... 9 2.7... 10 3... 18 3.1... 18 3.2... 19 3.2.1 ADSL 拨号上网设置...
More informationebook140-11
11 VPN Windows NT4 B o r d e r M a n a g e r VPN VPN V P N V P N V P V P N V P N TCP/IP 11.1 V P N V P N / ( ) 11.1.1 11 V P N 285 2 3 1. L A N LAN V P N 10MB 100MB L A N VPN V P N V P N Microsoft PPTP
More informationA9RBC8B.tmp
CCIE A B 1B 255.255.255.0 255.255.255.224 002 A B 1 1A B 2A B ARP MAC 3A B 192.168.26.2 4A B ARP 003 Wireshark Windows Wireshark 1. http://www.wireshark.org/download.html B 2. Wireshark Capture Interfaces
More informationTCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP
TCP/IP : TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP 1. ASCII EBCDIC Extended Binary-Coded Decimal Interchange Code 2. / (1) (2) Single System Image SSI) (3) I/O (4) 3.OSI OSI Open System Interconnection
More informationNetST 2300系列防火墙产品白皮书
2000 (NetST 2000 ) ... 3... 4 NetST 2000... 5 1...5 2...5 3...6 4...9 5...9 6...9 7...10 7.1...10 7.2...10 7.3...11 7.4...11 7.5...13 7.6...13 7.7 VPN...14 7.8...14 7.9...15 7.10...17 7.11 IP...17 7.12...18
More informationebook67-9
9 IP 9.1 I P 9-1 I P 9-1 d a e m o n U n i x d a e m o n d a e m o n [Perlman 1992] 10 R I P Routing Information Protocol I P 9-1 I P 30 I C M P 9. 5 r o u t e n e t s t a t route netstat UDP TCP ICMP
More informationSEC-220
Session CERT/CC 60000 50000 40000 52,658 30000 26,829 20000 10000 0 2,412 1995 1999 2000 2001 Q1, 2002 Source: http://www.cert.org/stats/ CERT/CC 3000 2500 2000 2,437 1500 1000 500 0 171 1,065 1995
More informationДорогие коллеги, вот что у меня получилось
Центр олимпиад Санкт-Петербурга ФГБОУ ВПО РГПУ им. А.И.Герцена Институт иностранных языков НОУ «Конфуций» 全 俄 奥 林 匹 克 中 学 生 汉 语 比 赛 Всероссийская олимпиада школьников по китайскому языку 2015 2016 区 级
More information本文由筱驀釹贡献
本 文 由 筱 驀 釹 贡 献 ppt 文 档 可 能 在 WAP 端 浏 览 体 验 不 佳 建 议 您 优 先 选 择 TXT, 或 下 载 源 文 件 到 本 机 查 看 Linux 操 作 系 统 Linux 操 作 系 统 第 一 部 分 介 绍 与 安 装 Linux 的 由 来 : Linux 的 由 来 : 的 由 来 Linus Torvalds 1.Linux 的 版 本 1.Linux
More informationuntitled
1....2...2...6 2....10 3. UDP...15 4. TCP...16...16...16 1 1. PC COM1 COM2 COM1 COM2 DTU 2 3 4 COM1 COM1 COM2 COM ID 13900000000 DTU COM1 5 COM2 DTU DTU DTU DTU DTU DTU DTU ID ID 3031 3032 2 ID 13900000001
More information<B1B1BEA9B9E2BBB7D0C2CDF8BFC6BCBCB9C9B7DDD3D0CFDEB9ABCBBEB4B43F3F12FB6CB293>
本 次 股 票 发 行 后 拟 在 创 业 板 市 场 上 市, 该 市 场 具 有 较 高 的 投 资 风 险 创 业 板 公 司 具 有 业 绩 不 稳 定 经 营 风 险 高 退 市 风 险 大 等 特 点, 投 资 者 面 临 较 大 的 市 场 风 险 投 资 者 应 充 分 了 解 创 业 板 市 场 的 投 资 风 险 及 本 公 司 所 披 露 的 风 险 因 素, 审 慎 作 出
More informationGPRS IP MODEM快速安装说明
GF-3026D CDMA 无 线 路 由 器 用 户 手 册 北 京 嘉 复 欣 科 技 有 限 公 司 地 址 : 北 京 市 海 淀 区 阜 成 路 115 号 北 京 印 象 2 号 楼 213 室 电 话 :86-10-88122130 88153193 88153197 传 真 :86-10-88122129 网 站 :http://www.garefowl.com/ 目 录 一 产 品
More information目 彔 1. 准 备 工 作... 1 2. 登 彔 设 置... 2 3. 功 能 说 明... 4 3.1 实 时 监 控... 4 3.1.1 基 本 控 制... 4 4.1.2 功 能 设 置... 4 3.1.3 画 质 调 节... 6 3.1.4 彔 像 与 抓 拍... 6 3.1
嵌 入 式 Web Server 用 户 手 册 V2.0 感 谢 您 选 用 本 公 司 的 产 品, 请 您 在 使 用 本 产 品 前 仔 细 阅 读 用 户 手 册, 本 用 户 手 册 将 为 您 提 供 正 确 的 使 用 说 明 版 权 声 明 : 本 用 户 手 册 版 权 归 天 津 市 亚 安 科 技 股 仹 有 限 公 司 所 有, 未 经 本 公 司 许 可, 仸 何 机 构
More informationDOS下常用的网络命令.PDF
DOS .... 1.1... 1.2... DOS... 2.1 ARP... 2.2 Finger... 2.3 Ftp... 2.4 Nbtstat... 2.5 Netstat... 2.6 Ping... 2.7 Rcp... 2.8 Rexec... 2.9 Route... 2.10 Rsh... 2.11 Tftp... 2.12 Tracert... 1 1 1 1 1 2 3 4
More information(UTM???U_935_938_955_958_959 V2.1.9.1)
192.16 www.sharetech.com.tw UTM 多 功 能 防 火 牆 管 理 者 手 冊 V 2.1.9.1 目 錄 第 一 章 安 裝 與 訊 息... 7 1-1 建 議 的 安 裝 設 定 圖... 8 1-2 軟 體 安 裝 設 定... 9 1-3 首 頁 訊 息... 14 1-4 型 號 與 功 能 對 照 表... 17 第 二 章 系 統 設 定... 19 2-1
More informationuntitled
年度 路 IVI 劉 隆 年 597 598 IVI 錄... 601 行... 601... 601 1.... 601 2. 路... 602 3.... 603... 604 1.IPv4 to IPv6... 604 2.IPv6 to IPv4... 605 -... 606 ( )IVI Server... 606 ( )IVI Server... 610 ( )IVI DNS Server...
More informationebook140-8
8 Microsoft VPN Windows NT 4 V P N Windows 98 Client 7 Vintage Air V P N 7 Wi n d o w s NT V P N 7 VPN ( ) 7 Novell NetWare VPN 8.1 PPTP NT4 VPN Q 154091 M i c r o s o f t Windows NT RAS [ ] Windows NT4
More information1. 二 進 制 數 值 ( 1 10 10 01 ) 2 轉 換 為 十 六 進 制 時, 其 值 為 何? (A) ( 69 ) 16 (B) ( 39 ) 16 (C) ( 7 A ) 16 (D) ( 8 A ) 16 2. 在 電 腦 術 語 中 常 用 的 UPS, 其 主 要 功 能
注 意 : 考 試 開 始 鈴 ( 鐘 ) 響 前, 不 可 以 翻 閱 試 題 本 民 國 104 年 大 專 程 度 義 務 役 預 備 軍 官 預 備 士 官 考 試 試 題 計 算 機 概 論 注 意 事 項 1. 請 核 對 考 試 科 目 是 否 正 確 2. 請 檢 查 答 案 卡 座 位 及 准 考 證 三 者 之 號 碼 是 否 完 全 相 同, 如 有 不 符, 請 監 試 人
More informationebook140-9
9 VPN VPN Novell BorderManager Windows NT PPTP V P N L A V P N V N P I n t e r n e t V P N 9.1 V P N Windows 98 Windows PPTP VPN Novell BorderManager T M I P s e c Wi n d o w s I n t e r n e t I S P I
More informationA API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内
A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内 容 分 发 网 络 Alibaba Cloud Content Delivery Network 一
More informationMy Net N900 Central Router User Manual
My Net N900 Central 路 由 器 WD 服 務 與 支 援 如 果 您 遇 到 問 題, 請 在 決 定 退 回 本 產 品 之 前, 先 讓 我 們 有 機 會 解 決 此 問 題 大 部 分 的 技 術 支 援 問 題 都 可 透 過 我 們 的 知 識 庫 或 電 子 郵 件 支 援 服 務 (http://support.wdc.com) 獲 得 解 答 如 果 無 法 獲
More information<4D6963726F736F667420506F776572506F696E74202D20A1B6CFEEC4BFD2BB20B3F5CAB6BCC6CBE3BBFACDF8C2E7A1B7C8CECEF1C8FD20CAECCFA4544350A1A24950D0ADD2E9BACD4950B5D8D6B72E707074>
项 目 一 : 初 识 计 算 机 网 络 任 务 三 熟 悉 TCP/IP 协 议 和 IP 地 址 一. 学 习 要 求 : 学 习 要 求 及 难 点 1. 了 解 IP 协 议 TCP 协 议 和 UDP 协 议 2. 熟 悉 IP 地 址 的 划 分 和 分 类 3. 了 解 IPV6 的 地 址 结 构 二. 难 点 : 1. IP 地 址 三. 学 时 : 1. 理 论 教 学 :6
More information中国计算机软件专业技术资格和水平考试
全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 2009 年 下 半 年 网 络 工 程 师 上 午 试 卷 ( 考 试 时 间 9 : 00~11 : 30 共 150 分 钟 ) 请 按 下 述 要 求 正 确 填 写 答 题 卡 1. 在 答 题 卡 的 指 定 位 置 上 正 确 写 入 你 的 姓 名 和 准 考 证 号, 并 用 正 规 2B 铅
More information財金資訊-80期.indd
IPv6 / LINE YouTube TCP/IP TCP (Transmission Control Protocol) IP (Internet Protocol) (node) (address) IPv4 168.95.1.1 IPv4 1981 RFC 791 --IP IPv4 32 2 32 42 IP (Internet Service Provider ISP) IP IP IPv4
More informationPPP Intranet Chapter 3 Chapter IaaS PaaS SaaS
CONTENTS Chapter 1 Chapter 2 1-1... 1-1 1-2... 1-3 1-2-1... 1-3 1-2-2... 1-5 1-2-3... 1-7 1-3... 1-8 1-3-1... 1-8 1-3-2... 1-10 1-4... 1-13 2-1... 2-1 2-2 OSI... 2-2 2-3... 2-8 2-3-1... 2-8 2-3-2... 2-9
More informationC6_ppt.PDF
C01-202 1 2 - (Masquerade) (Replay) (Message Modification) (Denial of Service) - ( ) (Eavesdropping) (Traffic Analysis) 8 1 2 7 3 6 5 4 3 - TCP SYN (SYN flood) Smurf Ping of Death LAND Attack Teardrop
More information第 11 章 互聯網技術 11.1 互聯 網 和 萬 維 網 的 發 展 歷 史 A. 互聯網的發展 互聯網是由 ARPANET 開 始發展的 1969 年 美國國防部高級研究計劃署 (ARPA) 把部分軍事研究所和大 的電腦連接起來 建造了㆒個實驗性的電腦網絡 稱為 ARPANET 並 列 的功能
互 聯 網 技 術 在 完 成 這 章 後, 你 將 能 夠 描 述 互 聯 網 的 發 展 歷 史 描 述 萬 維 網 的 發 展 歷 史 了 解 連 接 互 聯 網 的 基 本 概 念 能 夠 連 接 到 互 聯 網 知 道 互 聯 網 如 何 運 作 互 聯 網 是 全 球 網 絡 的 集 合 互 聯 網 (Internet) 是 ㆒ 個 集 合 全 球 許 多 網 絡 ㆒ 起 的 大 型 網
More information¶C¶L§§¬_™¨ A.PDF
1 9 3 1 9 4 / 7.1 / 1 9 5 7.2 % netstat -rn Routing tables Destination Gateway Flags Refcnt Use Interface 127.0.0.1 127.0.0.1 UH 1 132 lo0 172.16.12.0 172.16.12.2 U 26 49041 le0 1 9 6 / % ping -s almond
More information北 美 医 学 基 金 会 和 教 育 基 金 会 首 席 执 行 官 丁 文 京 来 我 院 访 问 交 流 韩 国 仁 丨 丨 医 疗 集 团 代 表 团 来 我 院 参 观 交 流 我 院 与 天 津 市 眼 科 医 院 签 署 友 好 合 作 医 院 协 议 书 " 首 届 甘 肃 省 萃
探 究 百 年 历 史 彳 搭 建 交 流 平 台 丨 展 现 二 院 风 采 〇 兰 州 大 学 第 二 医 院 院 刊 扬 规 范 之 帆 起 年 度 新 航 规 范 管 理 创 新 机 制 科 学 发 展 明 天 的 承 诺 : 护 航 二 院 腾 飞 共 泛 梦 想 之 舟 母 亲 河 畔 的 微 笑 大 医 精 城 德 为 先 本 期 封 面 : 扬 帆 起 肮 0 时 讯 0 学 科 0
More information常 见 问 题 SLB 产 品 和 业 务 限 制 SLB 产 品 限 制 SLB 产 品 和 业 务 限 制 限 制 项 普 通 用 户 限 制 描 述 例 外 申 请 方 式 ( 例 外 上 限 ) 创 建 SLB 实 例 的 财 务 限 制 账 户 余 额 大 于 等 于 100 元 现 金
负 载 均 衡 SLB 常 见 问 题 常 见 问 题 SLB 产 品 和 业 务 限 制 SLB 产 品 限 制 SLB 产 品 和 业 务 限 制 限 制 项 普 通 用 户 限 制 描 述 例 外 申 请 方 式 ( 例 外 上 限 ) 创 建 SLB 实 例 的 财 务 限 制 账 户 余 额 大 于 等 于 100 元 现 金 工 单 创 建 SLB 实 例 的 用 户 限 制 创 建 SLB
More information9 Internet 10 Internet
1 2 3 4 5 6 Internet 7 8 9 Internet 10 Internet 11 12 1 1.1 1.2 1.3 1.4 1.5 1.6 1.1 1.1.1 20 50 20 60 ARPANET ARPANET Internet 20 70 ISO International Organization for Standardization TCP/IP 20 90 Internet
More information<4D6963726F736F667420576F7264202D20383439342D352DBED6D3F2CDF8D7E9BDA8D3EBB9DCC0EDCFEEC4BFBDCCB3CCD5FDCEC42E646F63>
第 4 单 元 搭 建 自 己 的 Web 站 点 本 单 元 通 过 学 习 架 构 Web 服 务 器, 实 现 Web 服 务, 管 理 Web 站 点, 了 解 Web 站 点 服 务 器 的 架 构 个 人 空 间 和 虚 拟 主 机 的 概 念, 掌 握 IIS 组 件 的 安 装 Web 站 点 的 创 建 管 理 站 点 属 性 选 项 卡 的 配 置 管 理 等 知 识,Web 网
More informationТимофеев. Вост. _кит._ язык _ПК_ рефер. и перевода 032301
Федеральное агентство по образованию АМУРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ГОУВПО «АмГУ» УТВЕРЖДАЮ Зав. кафедрой китаеведения И.Б. Кейдун 2007г. ВОСТОЧНЫЙ (КИТАЙСКИЙ) ЯЗЫК (ПРАКТИЧЕСКИЙ КУРС) РЕФЕРИРОВАНИЯ
More informationD-link用户手册.doc
声 明 Copyright 1986-2013 版 权 所 有, 保 留 一 切 权 利 非 经 本 公 司 书 面 许 可, 任 何 单 位 和 个 人 不 得 擅 自 摘 抄 复 制 本 书 内 容 的 部 分 或 全 部, 并 不 得 以 任 何 形 式 传 播 由 于 产 品 版 本 升 级 或 其 它 原 因, 本 手 册 内 容 会 不 定 期 进 行 更 新, 为 获 得 最 新 版
More information翻 墙 问 答 享 受 互 联 网 所 带 来 的 便 利, 以 及 私 隐 保 障, 本 来 就 如 其 他 许 多 天 赋 权 利, 这 已 是 一 个 人 应 该 享 有, 无 分 国 界 和 种 族 很 不 幸, 在 中 国 引 入 互 联 网 不 久, 中 国 就 滥 用 很 多 本 来
翻 墙 问 答 助 你 翻 越 中 国 防 火 墙 作 者 : 李 建 军 自 由 亚 洲 电 台 2014 年 9 月 版 权 2014 自 由 亚 洲 电 台 翻 墙 问 答 享 受 互 联 网 所 带 来 的 便 利, 以 及 私 隐 保 障, 本 来 就 如 其 他 许 多 天 赋 权 利, 这 已 是 一 个 人 应 该 享 有, 无 分 国 界 和 种 族 很 不 幸, 在 中 国 引
More information标题
新疆哈萨克牧民安居富民之绿色脱贫探析 以新源县为例 张振华 张 倩 [ 摘要] 新疆新源县以 保景富民 为主旨ꎬ以 增绿 富民 为牧民定居的出发点和落脚点ꎬ开创出 生态为 先 精准为上 高效为要 富美为旨 的绿色脱贫发展之路ꎮ 设立哈萨克牧民安居示范村 新疆 哈萨克第一 村 阿尔善村ꎮ 以那拉提大草原为依托ꎬ紧扣安居富民工程ꎬ开创绿色脱贫之路ꎻ大力发展乡村生态旅游业ꎬ传 承哈萨克民族文化ꎮ 这些举措对进一步健全治疆ꎬ完善牧民定居方略ꎬ实现新疆全面稳定和绿色脱贫具有重要
More information84
83 84 EKI-1526 EKI-1528 EKI-1524 EKI-1522 EKI-1521 2 2 2 2 2 16 8 4 2 1 10/100 Mbps 10/100 Mbps 10/100 Mbps 10/100 Mbps 10/100 Mbps RS-232/422/485 RS-232/422/485 RS-232/422/485 RS-232/422/485 RS-232/422/485
More information《计算机网络》实验指导书
1 实 验 一 网 络 组 建 与 管 理 一. 实 验 目 的 1. 掌 握 平 行 双 绞 线 和 交 叉 双 绞 线 的 制 作 方 法 ( 初 级 ) 2. 掌 握 对 等 网 和 代 理 服 务 器 网 络 的 组 建 ( 初 级 ) 3. 会 用 ipconfig 和 ping 命 令 ( 初 级 ) 4. 掌 握 网 络 中 文 件 夹 共 享 和 打 印 机 共 享 ( 初 级 )
More informationSL2511 SR Plus 操作手冊_單面.doc
IEEE 802.11b SL-2511 SR Plus SENAO INTERNATIONAL CO., LTD www.senao.com - 1 - - 2 - .5 1-1...5 1-2...6 1-3...6 1-4...7.9 2-1...9 2-2 IE...11 SL-2511 SR Plus....13 3-1...13 3-2...14 3-3...15 3-4...16-3
More information目 錄 頁 次 政 風 法 令 宣 導 一 行 政 中 立 實 務 探 討 二 收 到 支 付 命 令 不 可 置 之 不 理 3 9 公 務 機 密 維 護 宣 導 一 淺 談 駭 客 攻 擊 14 二 何 不 自 行 設 計 入 侵 防 禦 系 統? 17 安 全 維 護 宣 導 認 識 爆 竹
103 年 6 月 地 政 局 政 風 室 編 撰 1 目 錄 頁 次 政 風 法 令 宣 導 一 行 政 中 立 實 務 探 討 二 收 到 支 付 命 令 不 可 置 之 不 理 3 9 公 務 機 密 維 護 宣 導 一 淺 談 駭 客 攻 擊 14 二 何 不 自 行 設 計 入 侵 防 禦 系 統? 17 安 全 維 護 宣 導 認 識 爆 竹 煙 火 高 雄 市 爆 竹 煙 火 施 放
More information1 产 品 简 介... - 1-1.1 特 性... - 1-1.2 包 装... - 1-1.3 产 品 外 观... - 2-1.4 电 脑 系 统 要 求... - 3-1.5 硬 件 安 装... - 3-1.6 软 件 安 装... - 4-2 软 件 操 作... - 6-2.1 IP
无 线 / 有 线 网 络 摄 像 机 使 用 说 明 书 黑 色 白 色 深 圳 市 富 泓 电 子 有 限 公 司 电 话 : +86-755-26509025 传 真 : +86-755-26509229 1 产 品 简 介... - 1-1.1 特 性... - 1-1.2 包 装... - 1-1.3 产 品 外 观... - 2-1.4 电 脑 系 统 要 求... - 3-1.5 硬
More informationVIDEOJET connect 7000 VJC-7000-90 zh- CHS Operation Manual VIDEOJET connect 7000 zh-chs 3 目 录 1 浏 览 器 连 接 7 1.1 系 统 要 求 7 1.2 建 立 连 接 7 1.2.1 摄 像 机 中 的 密 码 保 护 7 1.3 受 保 护 的 网 络 7 2 系 统 概 述 8 2.1 实 况
More information<4D6963726F736F667420576F7264202D20A662A4ACC170BAF4A457B56FA747ADD3A448B8EAAEC6AABAAA60B74EA8C6B6B52D636E2D323031312D312D3137>
在 互 聯 網 上 發 佈 個 人 資 料 的 注 意 事 項 隨 著 互 聯 網 的 普 及, 使 用 互 聯 網 作 為 訊 息 發 佈 傳 遞 的 情 況 越 來 越 普 遍, 當 中 有 不 少 訊 息 是 個 人 資 料, 例 如 : 某 政 府 部 門 在 其 網 頁 公 開 了 招 聘 考 試 的 考 生 成 績 排 名 次 序, 某 學 校 在 其 網 頁 公 佈 了 獲 得 嘉 獎
More information第3章 计算机网络体系结构
第 3 章 计 算 机 网 络 体 系 结 构 本 章 内 容 计 算 机 的 网 络 体 系 结 构 网 络 参 考 模 型 五 层 网 络 参 考 模 型 1 3.1 计 算 机 网 络 体 系 结 构 发 展 历 程 分 层 原 理 基 本 概 念 2 发 展 历 程 网 络 体 系 结 构 提 出 的 背 景 计 算 机 网 络 的 复 杂 性 异 质 性 不 同 的 通 信 介 质 有 线
More information温州市政府分散采购
温 州 市 政 府 分 散 采 购 招 标 文 件 招 标 编 号 :F - G B 2 0 1 6 0 3 1 4 0 0 4 7 招 标 项 目 : 温 州 市 人 民 政 府 办 公 室 政 务 云 平 台 ( 重 ) 招 标 方 式 : 公 开 招 标 招 标 人 : 温 州 市 人 民 政 府 办 公 室 招 标 代 理 : 二 〇 一 六 年 三 月 目 录 投 标 保 证 金 办 理
More information第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特 网 的 标 准 化 工 作 1.2.4 计 算 机 网 络 在
计 算 机 网 络 ( 第 4 版 ) 课 件 第 1 章 计 算 机 网 络 概 述 郭 庆 北 Ise_guoqb@ujn.edu.cn 2009-02-25 第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特
More information1
010-6298822 010-82899313 http://www.th-dascom.com.cn 9 5 1 1....3 1.1...4 1.1.1...4 1.1.2...5 1.2...6 1.3...7 1.3.1...7 1.3.2...8 1.3.3...8 1.3.4...8 1.3.5...9 1.3.6...9 2....9 2.1...9 2.2...10 2.2.1...10
More informationMicrosoft Word - YDB 064-2011 Vehicle Telematics Service Requirement and General Framework
通 信 标 准 类 技 术 报 告 YDB XXX 2010 泛 在 物 联 应 用 汽 车 信 息 服 务 业 务 需 求 和 总 体 框 架 Vehicle Telematic Service Requirement and General Framework 200X XX XX 印 发 中 国 通 信 标 准 化 协 会 目 次 前 言... 错 误! 未 定 义 书 签 1 范 围...
More information<4D6963726F736F667420576F7264202D20CDF8B9A42DC9CFCEE7CCE22D3038CFC2>
全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 2008 年 下 半 年 网 络 工 程 师 上 午 试 卷 (B) ( 考 试 时 间 9 : 00~11 : 30 共 150 分 钟 ) 请 按 下 述 要 求 正 确 填 写 答 题 卡 1. 在 答 题 卡 的 指 定 位 置 上 正 确 写 入 你 的 姓 名 和 准 考 证 号, 并 用 正 规 2B
More information经华名家讲堂
5.1 5.1.1 5.1.2 5.2 5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.3 5.3.1 5.3.2 5.3.3 / 5.3.4 / 5.3.5 / 5.4 Internet 5.4.1 Internet 5.4.2 Intranet 1. 2. 1 31 5 5.1 5.1.1 Internet 1 Host 20 60 IBM 2000 2 20 60 20 60
More informationch09.PDF
9-1 / (TCP/IP) TCP/IP TCP/IP ( ) ICMP ARP RARP 9.1 TCP/IP 9.1.1 TCP/IP OSI TCP/IP (DARPA) DARPA TCP/IP UNIX Berkeley Software DistributionTCP/IP TCP/IP TCP/IP TCP/IP TCP/IP TCP/IP OSI - TCP/IP ( ) ( )
More informationKillTest 质量更高 服务更好 学习资料 半年免费更新服务
KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 070-647 Title : Windows Server 2008,Enterprise Administrator Version : Demo 1 / 13 1. Active directory Windows Server 2008 (WAN) WAN WAN A.
More information计算机网络
gongwhboy@tom.com Internet 3 James F.Kurose Keith W.Ross 4 Andrew S.Tanenbaum 3 Larry L.Peterson, Bruce S.Davie 3 1. ISO OSI/RM( ) TCP/IP ( TELNET, FTP, SMTP ) (TCP UDP) IP 2. Internet : Internet 5 (1)
More information100/120EX A-61588_zh-tw 9E8696
100/120EX A-61588_zh-tw 9E8696 1 1-1........................................... 1-2............................................... 1-3.................................................. 1-3.........................................
More informationHKCERT
HKCERT 2008 8 1.............DNS............................. 1 HKCERT 2008 8 HKCERT 2008 8 HKCERT 2008 8 HKCERT 2008 8 DNS DNS - DNS TCP UDP - DNS - DNS 16 ( 65,535 ) DNS - DNS (resource record) ( ) (
More informationebook71-13
13 I S P Internet 13. 2. 1 k p p p P P P 13. 2. 2 1 3. 2. 3 k p p p 1 3. 2. 4 l i n u x c o n f P P P 13. 2. 5 p p p s e t u p 13. 2. 6 p p p s e t u p P P P 13. 2. 7 1 3. 2. 8 C a l d e r a G U I 13.
More information杭 州 顺 网 科 技 股 份 有 限 公 司 拟 实 施 股 权 收 购 涉 及 江 苏 国 瑞 信 安 科 技 有 限 公 司 股 权 评 估 项 目 资 产 评 估 报 告 目 录 杭 州 顺 网 科 技 股 份 有 限 公 司 拟 实 施 股 权 收 购 涉 及 的 江 苏 国 瑞 信 安
杭 州 顺 网 科 技 股 份 有 限 公 司 拟 实 施 收 购 涉 及 的 江 苏 国 瑞 信 安 科 技 有 限 公 司 股 权 评 估 项 目 资 产 评 估 报 告 苏 华 评 报 字 [2015] 第 192 号 江 苏 华 信 资 产 评 估 有 限 公 司 二 一 五 年 七 月 二 十 四 日 杭 州 顺 网 科 技 股 份 有 限 公 司 拟 实 施 股 权 收 购 涉 及 江
More information湖北省政府采购中心
湖 北 省 省 级 政 府 采 购 招 标 文 件 项 目 编 号 :EZC-2014-ZX1026 项 目 名 称 : 湖 北 省 测 绘 成 果 档 案 馆 测 绘 服 务 云 平 台 配 套 设 备 购 置 招 标 内 容 : 五 台 精 密 空 调 两 台 核 心 交 换 设 备 一 台 上 网 行 为 管 理 设 备 一 台 安 全 VPN 设 备 湖 北 省 政 府 采 购 中 心 二
More informationMicrosoft Word - DIR-615_B2_Manual_1.00_T_.doc
D-Link DIR-615 Wireless N Broadband Router DIR-615...4 DIR-615...6...7 DIR-615...10 IP...10 DIR-615...15 DIR-615...24 DIR-615...29 D-Link DWA-645 DIR-615...30 Windows XP SP2...32 Windows Vista...35 (1)
More information1
DOCUMENTATION FOR FAW-VW Auto Co., Ltd. Sales & Service Architecture Concept () () Version 1.0.0.1 Documentation FAW-VW 1 61 1...4 1.1...4 2...4 3...4 3.1...4 3.2...5 3.3...5 4...5 4.1 IP...5 4.2 DNSDNS...6
More information计算机网络概论
1 repeater bridge router gateway V.S OSI Repeater(Hub) 1 Repeater 2 3 ( Hub 4 Bridge 1 Bridge 2 N N DL1 DL1 DL2 DL2 Ph1 Ph1 Ph2 Ph2 1 2 Bridge 3 MAC Ethernet FDDI MAC MAC Bridge 4 5 6 7 50873EA6, 00123456
More information06 C H A P T E R 6-1 WWW 6-2 WWW WWW WWW
06 C H A P T E R 6-1 WWW 6-2 WWW 6-3 6-4 WWW 6-5 6-6 WWW WWW World Wide Web Tim Berners-Lee hypertext HTTP HTML URL 6-1 WWW WWW World Wide Web Web BBS Telnet Gopher FTP UseNet W3 3W W3 3W WWW WWW WWW Hypertext
More informationMicrosoft PowerPoint - 数据通信-ch1.ppt
主 要 内 容 与 基 本 要 求 主 要 内 容 数 据 通 信 与 计 算 机 网 络 计 算 机 网 络 的 发 展 过 程 分 类 以 及 主 要 性 能 指 标 ; 分 组 交 换 的 基 本 原 理 及 其 与 电 路 交 换 报 文 交 换 的 联 系 与 区 别 ; 计 算 机 网 络 的 协 议 与 体 系 结 构 第 1 章 概 述 基 本 要 求 掌 握 分 组 交 换 电 路
More information專業式報告
IP POWER 9258 1U IP POWER 9258IU 說 : V1.38 : 2006. 08-1 - VER. X.X, FCC CE 1. IP POWER 9258. 2. 9258 3. 9258-2 - 1....4... 9258... 2....5...... 3....6 4....8...... 5....9... PC WINDOWS... 6.... 11 7. IE...
More informationNSC-161
IP Session IP? IP Cisco IP IP IP IP IP? LAN Software Bluetooth,, 802.11 IP IP IP QoS IP Trust Domain (TD 1 ) TD 2 AR AR AP AP (MN) (MN) IP IP ( ) (MR) IP LAN MR (AP) IP 802.11 (AL) LAN/PAN 802.11, 802.15,
More information网康科技•互联网控制网关
网 康 科 技 互 联 网 控 制 网 关 Internet Control Gateway 用 户 手 册 Version 5.5 2009 年 12 月 关 于 本 手 册 版 权 声 明 2009 版 权 所 有, 保 留 一 切 权 力 本 文 件 中 出 现 的 任 何 文 字 叙 述 文 档 格 式 插 图 照 片 方 法 过 程 等 内 容, 除 另 有 特 别 注 明, 版 权 均
More information專業式報告
IP POWER 9258 IP POWER 9258 說 : V1.38 : 2006. 08-1 - VER. X.X, FCC CE 1. IP POWER 9258. 2. 9258 3. 9258-2 - 1....4... 9258... 2....5...... 3....6 4....7...... 5....8... PC / SERVER.. 6. IE... 11 9258...
More informationQL1880new2.PDF
ADSL Modem 1 MODEM 56K MODEM 128K ISDN INTERNET ADSL Modem VOD ADSL ADSL 2 1.1 ADSL 1.2 1.3 KM300A 2.1 2.2 2.3 2.4 2.5 KM300A 2.6 web 2.7 1.1ADSL 1.2 1.3 2.1 ADSL 2.2 ADSL 3 ADSL KM300A ADSL KM300A DIY
More information1. ( B ) IT (A) (B) (C) (D) 2. ( A ) (A) (B) (C) (D) 3. ( B ) (A) GPS (B) GIS (C) ETC (D) CAI 4. ( D ) (A) (B) (C) (D) 5. ( B ) (Stored Program) (A) H
... 2... 4... 6... 8... 10... 12... 14... 16... 18... 20... 22... 24... 25... 26... 28 1. ( B ) IT (A) (B) (C) (D) 2. ( A ) (A) (B) (C) (D) 3. ( B ) (A) GPS (B) GIS (C) ETC (D) CAI 4. ( D ) (A) (B) (C)
More information三人在线斗地主?唐人游游戏大厅三人斗地主游戏介绍
三 人 在 线 斗 地 主? 唐 人 游 游 戏 大 厅 三 人 斗 地 主 游 戏 介 绍 49 http://www.woniuvisa.com 三 人 在 线 斗 地 主? 唐 人 游 游 戏 大 厅 三 人 斗 地 主 游 戏 介 绍 关 键 字 : 麻 将 技 巧 麻 将 游 戏 下 载 收 费 麻 将 游 戏 视 频 麻 将 美 女 麻 将 麻 将 技 巧 交 换 群 一. 根 本 规
More information南京师范大学(下)
I ...1...6...8...13...15...21...22...23...23...25...26...28...31...34...36...38 II ...49 ( )...55...57 ( ) (1999)11...70...72 ( )...78...82 ( )...85...90... 102... 110. 113... 119... 122... 132 III ...
More informationFEELING COMFORTABLE ABOUT SEX
轻 松 性 谈 只 要 你 轻 松 自 然 的 面 对 自 己 的 性 生 活, 就 能 轻 松 自 然 的 与 人 谈 性 " 1. 自 幼 开 始 用 直 接 而 尊 重 的 态 度 来 解 释 男 孩 子 割 包 皮 和 女 孩 子 的 生 殖 器 官 是 什 么 回 事 让 儿 女 明 白 上 帝 所 创 造 的 身 体 是 可 爱 的. 当 幼 儿 开 始 对 自 己 的 身 体 产 生
More informationMicrosoft Word - 報告.doc
德 蘭 中 學 同 行 萬 里 高 中 學 生 內 地 交 流 計 劃 2011-2012 湖 北 水 利 及 工 業 規 劃 與 文 化 探 索 之 旅 日 期 : 2012 年 2 月 22 日 至 26 日 隨 團 老 師 : 葉 美 寶 團 員 姓 名 : 楊 綺 婷 胡 夢 吟 關 可 瑤 蔡 沅 汶 黎 佩 霖 梅 如 霞 吳 長 虹 劉 綺 霞 胡 子 祈 李 詠 詩 1 ( 一 )
More information1. 血 液 對 身 體 細 胞 的 重 要 性 身 體 得 以 健 康 運 作, 最 主 要 靠 的 是 血 管 內 的 血 液 ; 它 帶 著 養 分 與 氧 給 細 胞, 並 帶 回 廢 雜 物 及 二 氧 化 碳 排 出 體 外, 若 此 血 管 阻 塞 導 致 運 作 不 順 時, 各 部
慢 性 疾 病 真 相 大 揭 開 作 者 : 陳 鴻 烈 自 然 療 法 醫 師 著 作 : 協 和 岩 寶 的 神 奇 療 效 慢 性 病 的 醫 療 革 命 排 毒 與 細 胞 修 護 現 任 : 中 日 負 離 子 協 會 理 事 長 協 和 溫 泉 ( 股 ) 公 司 董 事 長 手 機 ( 台 灣 )0936914100,( 大 陸 )15816194647 1. 血 液 對 身 體 細
More informationbingdian001.com
1... 1 1.1... 1 1.2... 1 1.3... 1 1.4... 1 1.5... 1 1.6... 1 2... 1 2.1... 1 2.2... 2 2.3... 2 3... 2 4... 3 4.1... 3 4.1.1... 3 1.... 3 2.... 3 3.... 3 4.... 3 5.... 3 6.... 3 7.... 3 8.... 4 9.... 4
More information(i) (ii) (iii) (iv) 380,000 [ ] , , % % % 5.5% 6.5%
[] [] [] [] [] [] [] 1961 40 2,000 1990 [] (i) (ii) 38 (i) (ii) (iii) (iv) 380,000 [ ] 201017,763 201422,457 20152020 7.1% 2010 2020 2010 2015 6.2% 20152020 2010 2015 20152020 7.1% 5.5% 6.5% 2010 2011
More informationTrend Micro
資 訊 安 全 - 惡 意 軟 體 的 深 度 防 禦 胡 瑞 宸 大 綱 資 訊 安 全 概 念 現 在 流 行 什 麼? 病 毒 清 除 與 分 析 建 議 程 序 正 確 有 效 的 防 護 觀 念 Free Tool ( 免 費 工 具 ) Cloud technology ( 雲 端 技 術 ) 惡 意 程 式 威 脅 管 理 資 訊 安 全 概 念 資 訊 安 全 概 念 沒 有 任 何
More information联想天工800R路由器用户手册 V2.0
LSA-800R V2.0 2 0 0 4 l e n o v o 0755-33306800 www.lenovonetworks.com support@lenovonet.com 1 1 1.1 1 1.2 1 2 2 2.1 2 2.2 2 3 2 3.1 2 3.2 3 3.3 4 3.4 5 4 TCP/IP 5 4.1 Windows 95/98/ME 5 4.2 Windows 2000/XP
More informationMicrosoft Word - Enriched TEKLA Curriculum Guide (chi ver)
增 潤 科 技 教 育 學 習 領 域 課 程 指 引 ( 暫 定 稿 ) 本 文 件 根 據 課 程 議 會 於 2002 年 公 佈 的 科 技 教 育 學 習 領 域 課 程 指 引 ( 小 一 至 中 三 ) 中 提 及 的 課 程 架 構, 闡 述 中 一 至 中 三 學 生 在 每 一 級 別 在 不 同 知 識 範 圍 所 學 習 的 學 習 元 素 科 技 教 育 的 知 識 範 圍
More informationend to end 7.2 OSI 7 OSI 3 A B 7.2 Packet Routing LAN WAN 7.1.2 141
7 IP IP ARP ICMP IP OSI 3 7.1 7.1.1 7.1 DTE0/1 DCE0/1 DCE0/1 DCE2DCE3 DCE4 7.1 DTE1 DTE2 DCE1 DTE1 DCE2 DCE3 DCE4 MAC DCE2 DCE5 DTE1 DCE1 DCE3 DCE6 DTE2 DCE4 7.1 140 end to end 7.2 OSI 7 OSI 3 A B 7.2
More informationuntitled
IP POWER 9258SX IP POWER 9258SX 說 : V1.38 : 2006. 11-1 - VER. X.X, FCC CE 1.. 2. 9258 3. 9258-2 - 1....4... 9258... 2....5...... 3....6 4....8...... 5.... 10 PC... PC... 6.... 13 7. IE... 14 9258... 9258...
More information新婚夫妇必读(九).doc
...1...3...4...5...9...9...10...12...14 3...19...20...22...27...28...30...31...35...37 I 13...39...44...48...49...50...51...54...55...58...60...62...63...66...67...68...70...71 TOP10...73...77...79...80
More information工程师培训
.1 TCP/IP TCP/IP 1 .2.2.1 Host 1960 S 1970 S Host Low Speed Lines 1970 S 1980 S pc Server Local Interneting 1980 S 1990 S Branch. pc Branch. WAN Branch. pc pc IBM SNA IBM X.25 2 .2.2 OSI OSI Application
More information專業式報告
IP Kamera 9060A-SL IP Kamera 9060A-SL : V1.00 : 2006.04 IP KAMERA 9000(A) 說 FCC CE 1.IP Kamera 9060A-SL 2.IP Kemera 9060A-SL 3. 4. 9060A-SL 5. 9060A-SL - 1 - 1....3... 2....4 9060A-SL...... 3....5 4....6......
More information电信行业网上营业厅
2015 年 浙 江 首 届 网 络 安 全 管 理 员 职 业 竞 赛 竞 赛 指 南 竞 赛 组 委 会 2015 年 6 月 30 日 1 / 12 目 录 1 竞 赛 类 型... 3 1.1. 个 人 赛... 3 1.2. 团 队 赛... 3 2 题 型 及 数 量... 4 2.1. 个 人 赛... 4 2.1.1 个 人 初 赛... 4 2.1.2 个 人 决 赛... 4 2.2.
More informationSIP/ENUM Trial
Taiwan SIP/ENUM trial ENUM Director of TWNIC IP Department 2004/12/15 1 Outline What is ENUM Taiwan SIP/ENUM Trial Project ENUM 2 What is ENUM ENUMDNSE.164 ENUMDNS ENUM 3 ENUMDNSE.164 Enum telephone Number
More information.. 3 N
1 .. 3 N9.. 4 5.. 6 7.. 8 20.. 21 23.. 24.. 25 26.. 27.. 28.. 29 2 (Cyber Café) Linux (LAN) Linux Public Home 3 K12LTSP K12LTSPFedora Core 4 (Linux)LTSP Linux (command line interface) (Graphical User Interface,
More informationChapter #
第三章 TCP/IP 协议栈 本章目标 通过本章的学习, 您应该掌握以下内容 : 掌握 TCP/IP 分层模型 掌握 IP 协议原理 理解 OSI 和 TCP/IP 模型的区别和联系 TCP/IP 介绍 主机 主机 Internet TCP/IP 早期的协议族 全球范围 TCP/IP 协议栈 7 6 5 4 3 应用层表示层会话层传输层网络层 应用层 主机到主机层 Internet 层 2 1 数据链路层
More informationMicrosoft Word - PS2_linux_guide_cn.doc
Linux For $ONY PlayStatioin2 Unofficall General Guide Language: Simplified Chinese First Write By Beter Hans v0.1 Mail: hansb@citiz.net Version: 0.1 本 人 是 菜 鸟 + 小 白 欢 迎 指 正 错 误 之 处, 如 果 您 有 其 他 使 用 心 得
More information