LooseUDP 补丁允许通常使用 UDP 连接的对 NAT 半友好的游戏在 Linux IP 伪装服务器之后也能正常运行。
LooseUDP 补丁的作用是允许所有 UDP 数据包通过 NAT,无需任何检查或过期时间。这种宽松的转发方法被许多人认为是不安全的,并且在现代 2.2.x 内核中被禁用。2.4.x 内核及其 IPTABLES 状态 UDP 检查仅允许传入的 UDP 数据包进入机器(以及 MASQ),如果状态表中已经存在发往同一主机的传出 UDP 数据包。如果 MASQ 主机在约 30 秒内未向远程主机发送 UDP 数据包,返回的 UDP 表条目将被删除。因此,IPTABLES 消除了对 LooseUDP 补丁的大部分需求,因为它以更安全的方式执行此操作。
目前,LooseUDP 可作为 2.0.36+ 内核的补丁使用,并且已经内置于 2.2.3+ 内核中,尽管在 2.2.16+ 版本中默认情况下已被禁用(详情请参阅示例 rc.firewal 规则集注释)。
要在 2.0.x 内核上运行 LooseUDP,请按照以下步骤操作
将最新的 2.0.x 内核源代码解压缩到 /usr/src/linux 目录中
对于 v2.0.x 绝对需要:从 第 3.2.3 节下载并安装 IPPORTFW 补丁,并按照 HOWTO 的 第 6.7 节中的描述进行操作。
从 第 3.2.3 节下载 LooseUDP 补丁
现在,将 LooseUDP 补丁放入 /usr/src/linux 目录中。完成后,输入
For a compressed patch file: zcat loose-udp-2.0.36.patch.gz | patch -p1 |
For a NON-compressed patch file: cat loose-udp-2.0.36.patch | patch -p1 |
现在,取决于你的“补丁”版本,你将看到以下文本
patching file `CREDITS' patching file `Documentation/Configure.help' patching file `include/net/ip_masq.h' patching file `net/ipv4/Config.in' patching file `net/ipv4/ip_masq.c' |
如果你在补丁过程的开始时只看到一次“Hunk FAILED”文本,不用担心。你可能有一个旧的补丁文件(这已修复),但它仍然有效。如果它完全失败,确保你已首先应用 IPPORTFW 内核补丁。
补丁安装完成后,按照 第 3.2.3 节所示重新配置内核,并确保在“IP: loose UDP port managing (EXPERIMENTAL) (CONFIG_IP_MASQ_LOOSE_UDP) [Y/n/?]”选项中选择“Y”。
要在 2.2.x 内核上运行 LooseUDP,请按照以下步骤操作
在 /etc/rc.d/rc.firewall-* 脚本中,转到文件底部并找到 LooseUDP 部分。将行中的 “0” 更改为echo "0" > /proc/sys/net/ipv4/ip_masq_udp_dloose“1” 并重新运行 rc.firewall-* 规则集。在 第 3.4.2 节示例和 第 6.4.3 节示例中都给出了一个示例。
注意:LooseUDP 代码对于 2.4.x 内核是/不可用/(?必需?)的
有关所有详细信息,请参见本节的开头。基本上,旧的 2.0.x / 2.2.x LooseUDP 代码被认为是一个安全问题。因此,它已从内核中删除。幸运的是,某些过去在 2.2.x IPCHAINS 系统上需要 LooseUDP 代码的游戏可能在 2.4.x IPTABLES 内核下最终可以正常工作。如果游戏无法运行,我不知道有什么解决方案给你。抱歉。
一旦你运行了新的启用 LooseUDP 的内核,你应该可以顺利运行大多数 NAT 友好型游戏。已提供一些 URL,用于获取使 BattleZone 等游戏对 NAT 友好的补丁。更多详细信息,请参阅 第 6.3.1 节。