可以到这里进行端口测试:
http://www.emule.org.cn/porttest/?tcpport=6643&submit=%B2%E2%A1%A1%CA%D4
下面的方法有的不可再现。基本原则是:尽量不要改第一个router的设置,注意安全性。
方法:(1)
1. 在dd-wrt界面上NAT/Qos--->Upnp中,启用upnp服务。
2. 在windows添加程序界面--->添加windows组建,“网络”中加入Upnp用户界面。
然后就可以在dd-wrt的管理界面 NAT/Qos--->Upnp中看到upnp的情况了。再次链接emule会显示高ID。
方法:(2)
在第一个(和互联网链接的)dlink router上,进阶设定--->特殊应用程序中设置端口区段,然后在第二个router相连的router也会显示高ID。
【注:第二个router上不需要任何设置】
方法:(3)
在在第一个(和互联网链接的)dlink router上,用DMZ完全暴露第二个router的互联网连接。成功。【注意——前提是:在第二个router上开启了upnp功能(虽然在与之相连的电脑上没有安装Upnp组建)】
估计是:emule本身有打开upnp的功能。只要把第二个router完全暴露,它就可以借助第二个router的upnp功能,获得高ID了。如果第二个router没有完全暴露,emule虽然打开了第二个router的upnp,但是还是处于第一个router的防火墙后面。
【问题是:为什么在安装了“upnp用户界面后”,即使不暴露第二个router,也可以获得高ID。这个“UPnP用户界面到底起了什么作用”?
方法:(4)成功
环境:关闭第二个router的upnp,不暴露第二个router。
在第一个(和互联网链接的)dlink router上,进阶设定--->特殊应用程序中设置端口区段,在第二个router上也做同样的设置。成功!
【从理论上说就是:在第一个和第二个router中间建立端口通道。】
可以参考这一篇(只有一个router):
http://www.emule-project.net/home/perl/help.cgi?l=1&topic_id=129&rm=show_topic