Linux IP 地址伪装 HOWTO

David A. Ranch

2005 年 11 月 13 日

2005 年 11 月 13 日

本文档描述了如何在给定的 Linux 主机上启用 Linux IP 地址伪装功能。IP 地址伪装是一种网络地址转换(NAT)形式,允许没有一个或多个注册互联网 IP 地址的内部连接计算机通过 Linux 服务器的互联网 IP 地址与互联网通信。


目录
1. 简介
1.1. IP 地址伪装或 IP MASQ 简介
1.2. 前言、反馈 & 致谢
1.3. 版权 & 免责声明
2. 背景知识
2.1. 什么是 IP 地址伪装?
2.2. 当前状态
2.3. 谁能从 IP 地址伪装中受益?
2.4. 谁不需要 IP 地址伪装?
2.5. IP 地址伪装是如何工作的?
2.6. Linux 2.4.x 上 IP 地址伪装的要求
2.7. Linux 2.2.x 上 IP 地址伪装的要求
2.8. Linux 2.0.x 上 IP 地址伪装的要求
3. 设置 IP 地址伪装
3.1. 编译新内核(如果需要)
3.2. 检查您现有的内核是否具有 MASQ 功能
3.2.1. 编译 Linux 2.4.x 内核
3.2.2. 编译 Linux 2.2.x 内核
3.2.3. 编译 Linux 2.0.x 内核
3.3. 为内部 LAN 分配私有网络 IP 地址
3.4. 配置 IP 转发策略
3.4.1. 在 Linux 2.6.x 和 2.4.x 内核上配置 IP 地址伪装
3.4.2. 在 Linux 2.2.x 内核上配置 IP 地址伪装
3.4.3. 在 Linux 2.0.x 内核上配置 IP 地址伪装
4. 配置其他要进行 MASQ 的内部机器
4.1. 配置 Microsoft Windows 95 和 OSR2
4.2. 配置 Windows NT
4.3. 配置 Windows for Workgroup 3.11
4.4. 配置基于 UNIX 的系统
4.5. 使用 NCSA Telnet 包配置 DOS
4.6. 配置运行 MacTCP 的基于 MacOS 的系统
4.7. 配置运行 Open Transport 的基于 MacOS 的系统
4.8. 使用 DNS 配置 Novell 网络
4.9. 配置 OS/2 Warp
4.10. 在 IBM AS/400 上配置 OS/400
4.11. 配置其他系统
5. 测试 IP 地址伪装
5.1. 加载 rc.firewall 规则集
5.2. 测试内部 MASQ 客户端 PC 的连接性
5.3. 测试内部 MASQ 客户端到 MASQ 服务器的连接性
5.4. 测试内部 MASQ 服务器的连接性
5.5. 测试内部 MASQ 服务器到 MASQ 客户端的连接性
5.6. 测试外部 MASQ 服务器的互联网连接性
5.7. 测试内部 MASQ 客户端到外部 MASQ 服务器的连接性
5.8. 测试外部 MASQ ICMP 转发
5.9. 在没有 DNS 的情况下测试 MASQ 功能
5.10. 使用 DNS 解析测试 MASQ 功能
5.11. 使用 DNS 测试更多 MASQ 功能
5.12. 任何剩余的功能、性能等问题...
6. 其他 IP 地址伪装问题和软件支持
6.1. IP 地址伪装的问题
6.2. 传入服务
6.3. 支持的客户端软件和其他设置说明
6.3.1. 与 IP 地址伪装 - 工作 - 的网络客户端
6.3.2. 在 IP MASQ 中没有完整支持的客户端:
6.4. 在初始测试后运行的更强的防火墙规则集
6.4.1. 更强的 IP 防火墙 (IPTABLES) 规则集
6.4.2. 更强的 IP 防火墙 (IPCHAINS) 规则集
6.4.3. 更强的 IP 防火墙 (IPFWADM) 规则集
6.5. IP 地址伪装多个内部网络
6.5.1. iptables 支持多个内部 lan
6.5.2. ipchains 支持多个内部 lan
6.5.3. ipfwadm 支持多个内部 lan
6.6. IP 地址伪装和按需拨号连接
6.7. 使用 IPTABLES 或外部工具(如 IPPORTFW、IPMASQADM、IPAUTOFW、REDIR、UDPRED 和其他端口转发工具)进行端口转发
6.7.1. 基于 IPTABLES 的 PORTFWD'ing:为 2.6.x 和 2.4.x 内核使用 IPTABLES 的 PREROUTING 选项
6.7.2. 基于 IPMASQADM 的 PORTFWD'ing:将 IPMASQADM 与 2.2.x 内核一起使用
6.7.3. 基于 IPPORTFW 的 PORTFWD'ing:在 2.0.x 内核上使用 IPPORTFW
6.8. CU-SeeMe 和 Linux IP 地址伪装
6.9. Mirabilis ICQ
6.10. 游戏玩家:LooseUDP 补丁
7. 常见问题解答
7.1. ( 发行版 ) - 哪些 Linux 发行版支持 IP 地址伪装?
7.2. ( 要求 ) - IP 地址伪装的最低硬件要求和任何限制是什么?它的性能如何?
7.3. ( 错误 ) - 当我运行我的特定 rc.firewall-* 规则集时,我收到“command not found”错误。为什么?
7.4. ( 仍然无法工作 ) - 我检查了我的所有配置,但我仍然无法让 IP 地址伪装工作。我该怎么办?
7.5. ( 电子邮件列表 ) - 我如何加入或查看 IP 地址伪装和/或 IP Masqurade 开发者邮件列表和存档?
7.6. ( NAT 与代理 ) - IP 地址伪装与代理或 NAT 服务有何不同?
7.7. ( GUI ) - 有没有 GUI 防火墙创建/管理工具?
7.8. ( MASQ 和动态 IP ) - IP 地址伪装是否适用于动态分配的 IP 地址?
7.9. ( MASQ 和各种网络 ) - 我可以使用有线调制解调器(双向和带有调制解调器返回),DSL,卫星链接等连接到互联网并使用 IP 地址伪装吗?
7.10. ( 按需拨号 ) - 我可以在 IP MASQ 中使用 Diald 或 PPPd 的按需拨号功能吗?
7.11. ( 应用 ) - IP 地址伪装支持哪些应用程序?
7.12. ( 发行版设置 ) - 我如何在 Redhat、Debian、Slackware 等上运行 IP 地址伪装?
7.13. ( 超时 ) - 如果我不经常使用连接,连接似乎会断开。为什么?
7.14. ( 奇怪行为 ) - 当我的互联网连接第一次出现时,一切都不起作用。如果我再试一次,一切都很好。为什么?
7.15. ( MTU ) - IP MASQ 似乎运行良好,但某些站点无法正常工作。这通常发生在 WWW 和一些 FTP 站点上。
7.15.1. 为 PPPoE 和一些 PPP 用户启用 PMTU 钳制:
7.15.2. 通过 IPTABLES 钳制 MSS:
7.15.3. 更改 MASQ 服务器的外部 MTU:
7.15.4. 更改各种操作系统的 MTU:
7.16. ( FTP ) - MASQed FTP 客户端无法正常工作。
7.17. ( 性能 ) - IP 地址伪装似乎很慢
7.18. ( PORTFW ) - 当我的线路空闲很长时间时,带有 PORTFW 的 IP 地址伪装似乎会中断
7.19. ( PORTFW - 本地 ) - 我无法从内部 lan 访问我的 PORTFW 服务器
7.20. ( 日志 ) - 现在我已经启动了 IP 地址伪装,我在 SYSLOG 日志文件中收到了各种奇怪的通知和错误。我如何读取 IPTABLES/IPCHAINS/IPFWADM 防火墙错误?
7.21. ( 日志缩减 ) - 由于新的“更强”规则集,我的日志正在被数据包命中填满。我该如何解决这个问题?
7.22. ( MASQ 安全性 ) - 我可以配置 IP MASQ 以允许互联网用户直接联系内部 MASQ 服务器吗?
7.23. ( 免费端口 ) - 我在 SYSLOG 文件中收到“kernel: ip_masq_new(proto=UDP): no free ports.”。怎么了?
7.24. ( SETSOCKOPT ) - 当我尝试使用 IPPORTFW 时,我得到“ipfwadm: setsockopt failed: Protocol not available”!
7.25. ( SAMBA ) - Microsoft 文件和打印共享以及 Microsoft 域客户端无法通过 IP Masq 工作!
7.26. ( IDENT ) - MASQed IRC 用户的 IRC 无法正常工作。为什么?
7.27. ( IRC DCC ) - mIRC 不适用于 DCC Sends
7.28. ( IP 别名 ) - IP 地址伪装是否只能使用一个以太网网络卡?
7.29. ( 多 LAN ) - 我有两个 MASQed LAN,但它们无法相互通信!
7.30. ( 整形 ) - 我想能够限制特定类型流量的速度
7.31. ( 计费 ) - 我需要对谁在使用网络进行计费
7.32. ( 多个 IP - DMZ 段 ) - 我有几个外部 IP 地址,我想将它们 PORTFW 到几个内部机器。我该怎么做?
7.33. ( 1:1 NAT ) - 我想做 1:1 NAT,但我不知道该怎么做
7.34. ( Netstat ) - 我正在尝试使用 NETSTAT 命令来显示我的伪装连接,但它不起作用
7.35. ( VPN ) - 我希望通过 IP MASQ 运行 Microsoft PPTP(GRE 隧道)和/或 IPSEC(Linux SWAN)隧道
7.36. ( 游戏 ) - 我想让 XYZ 网络游戏通过 IP MASQ 运行,但它不起作用。帮帮我!
7.37. ( 停止工作 ) - IP MASQ 可以在一段时间内正常工作,但随后停止工作。重新启动似乎可以解决这个问题。为什么?
7.38. ( SMTP 中继 ) - 内部 MASQed 计算机无法发送 SMTP 或 POP-3 邮件!
7.39. ( 源路由 ) - 我需要不同的内部 MASQed 网络才能从不同的外部 IP 地址退出
7.40. ( 2.4.x 内核上的 IPCHAINS 规则集 ) - ipchains.o 模块在 2.4.x 内核上可以做什么
7.41. ( IPTABLES 与 IPCHAINS 与 IPFWADM ) - 为什么 2.4.x、2.2.x 和 2.0.x 内核使用不同的防火墙系统?
7.42. ( 升级 ) - 我刚刚升级到 x.y.z 内核,为什么 IP 地址伪装不起作用?
7.43. ( EQL ) - 我需要关于 EQL 连接和 IP Masq 的帮助
7.44. ( 灰溜溜地退出 ) - 我无法让 IP Masquerade 工作!对于 Windows 平台,我有什么选择?
7.45. ( 开发者 ) - 我想帮助 IP Masquerade 的开发。我能做什么?
7.46. ( 更多信息 ) - 在哪里可以找到更多关于 IP Masquerade 的信息?
7.47. ( 翻译者 ) - 我想将这个 HOWTO 翻译成另一种语言,我应该怎么做?
7.48. ( 更新 ) - 这个 HOWTO 看起来过时了,你们还在维护它吗?你能包括更多关于 ... 的信息吗?有什么改进的计划吗?
7.49. ( 感谢 ) - 我已经成功设置了 IP Masquerade,太棒了!我想感谢你们,我能做什么?
8. 杂项
8.1. 有用的资源
8.2. Linux IP Masquerade 资源
8.3. 感谢以下支持者..
8.4. 参考
8.5. 更新日志