最新版本: Stable: 0.50a | Beta: 0.50b
 Deutsch English Fran鏰is Hebrew Chinese Traditional Spanish Italian Polish Lithuanian Estonian Danish Swedish Dutch (Netherlands) Portuguese (Brazil) Czech Portuguese - Portuga Russian Catalan Turkish Finnish Romanian Greek Serbian Chinese Simplified 






让Kad状态不再是“通过防火墙”! HelpNAV

此目录下的文档都是用户自己编写的指南,并未经过eMule(电骡)开发人员的验证。不过对于大多数用户而言,这些文章仍然颇有裨益。你可以在论坛的此专用主题贴找到相关的提问与评论


Hi,大家好

我与Kad的“通过防火墙”状态进行了不懈的斗争并最终胜利,现在就来分享一下我的心得。跟大多数伙计们碰到此问题的网络环境一样,我也是在一台位于NAT之后的Windows主机上运行eMule,平时分到私网IP。

感谢神圣的骡子,我是自己网站的管理员,因此有这个机会详细分析这个问题。故事的开始一如平常:我已经在WinXP中打开了eMule所需的端口,并且在路由器中已经设置了TCP和UDP端口的转发规则,但是Kad状态仍然是“通过防火墙”。更加搞笑的是,Kad状态曾经有一回蹦到了“打开”状态,之后又莫名其妙地变回“通过防火墙”,而我根本没碰任何设置。smile.gif不过我在Ed2k网络中总是能获得HighID。

后来我发现:除了设置端口转发规则之外,只要将私网IP映射到某个专用的公网IP上,Kad状态就会立即显示为“打开”。于是我恢复到只配置了端口转发规则的状态,然后同时tcpdump内部接口和外部接口的数据包。结果我发现,通过NAT向外发送的UDP数据包,仍然使用eMule赋给的初始端口,也就是说所发送的报文无法响应远端节点的UDP请求。想象一下这时我有多惊讶吧。

从上面的情况来看,端口转发设置有时对相反方向无效,至少对于某些路由器来说是如此。因此可能需要对NAT进行额外配置,这样在eMule试图连接外部节点时能够保持UDP初始端口。对于Kad网络来说保持UDP端口不变非常关键,因为你的IP以及端口等信息会被其它节点传播到整个网络。

举例说明:

假定你的eMule主机在局域网内的地址是10.1.1.10,通过NAT映射到互联网的2.2.2.2地址。eMule使用的UDP端口初始设置为4672。

当eMule试图连接IP地址为3.3.3.3的Kad节点时,NAT将内网IP 10.1.1.10转译为2.2.2.2,将内网端口4672转译为外网端口(例如65000之类)。只要NAT还记录着这条转译规则,那么3.3.3.3这个节点就能够通过65000端口反向联系到你。但是,其它Kad节点有可能通过3.3.3.3获得你的信息,此时这些节点会认为你的UDP端口是65000,而不是4672。毫无疑问,这些节点都无法通过Kad连接到你的骡子,因为转译规则仅对3.3.3.3这个IP有效。

解决办法是让NAT在向外的Kad“会话”时保持初始端口不变(通常是4672),也就是针对向外的UDP报文创建NAT规则条目。

我在*BSD中用PF实现此要求。配置语句如下所示:

nat on $extif proto udp from 10.1.1.10 port 4672 -> $realip port 4672
nat on $extif from 10.1.1.0/24 to any -> $realip
rdr pass on $extif proto tcp from any to $realip port 4662 -> 10.1.1.10 port 4662
rdr pass on $extif proto udp from any to $realip port 4672 -> 10.1.1.10 port 4672

第1行确保eMule的Kad端口在外网仍然是4672,第2行进行普通的NAT转发,第3行和第4行分别设置向内的Ed2k连接数据包以及Kad数据包的端口转发规则。

当然,你需要根据实际使用的路由器/NAT设备查阅相关手册,按照手册进行适当的配置。

希望这篇文章能帮上忙。


Last Update: 10.03.2011 13:48
端口,防火墙和路由器
图形用户界面
特色功能
常规信息
服务器
选项设置
常见问题
疑难排解
指南与问答
 
  下载并维护可信的服务器列表以及IPfilter
如何恢复损坏的下载文件
如何获取可信的服务器列表以及好用的IPFilter
对通知邮件进行加密
设置Norton AntiVirus 2005
定时开/关eMule
你想整理服务器列表吗?
让Kad状态不再是“通过防火墙”!
如何防范虚假文件
eMule和Internet连接共享
使用Web服务和文件预览功能鉴别虚假文件
Ipfilter.dat和Guarding.p2p
如何保存“损坏的”下载文件!
eMule通知我是Low-id!
一些和eMule有关的重要网站链接!
A4af是什么意思?
Ed2k链接无法添加到Emule该怎么办!
如何更新server.met文件
eMule为什么会发送电子邮件?
如何清除eMule的搜索历史!
如何安装或升级eMule!
在Linux上用Wine运行eMule
为何下载速度这么慢
降低CPU/系统资源占用的eMule选项
如何在eMule中过滤IP
与eMule存在冲突的软件列表
  初学者指南
常用工具
网络指南