魔域桃源MSG程序修改端口号的问题!

edonkey2000 server
——————————————————————————–eDonkey Server v16.38的最佳配置
(本文原作者是Diesel)
介绍首要目的法律问题The eD2k-System per se运行服务器程序的必要硬件必要的网络连接新问题&&&&以及它们的解决方法服务器程序的操作系统在Windows 2000 和 XP上的安装在Linux上的安装‘donkey.ini’的配置服务器命令Debugging自动操作的一般问题在Linux上的自动化操作Linux上的网络优化在Win2000/XP上的自动化操作最后
电驴网络(The eDonkey-Network)已经存在了两年了,已经有超过50万人在使用它,并且有大约25万人始终连接到服务器。然而不幸的是,服务器容量不足,无法给更多的用户提供服务&&你常常无法真的受益于eDonkey,取而代之的是一条简单的&Can&t connect to: 213.46.52.13(无法连接到:213.46.52.13)& 信息&& 那就是我写这些文字的原因&&我希望你能够找到你一直想找的关于如何建立服务器的一切信息!别对这个响亮口号感到泄气&& 运行一个DonkeyServer其实比这个守则所建议的事情容易得多;-)这个守则只是在服务器配置上以及所有可能发生的问题上讲得比较深入(希望是这样)&&没有问题会找不到答案。它包括了系统本身的描述,在不同的操作系统上的服务器程序安装,ini文件里每一个变量的解释,以及相对于CPU的能力应该做的一些改动,还有internet连接的带宽和服务器的最大性能。这样,你可以让你的硬件给用户提供最大的利益,而不用多花钱。
是什么激发用户运行它自己的服务器的想法?嗯,最起码是一种团体意识,以及想要强化新生的&P2P文件共享结构&的愿望。当然也有政治上的驱动力(版权,自由的信息)&&这些就是我运行服务器的原因。但是你应该知道,你运行服务器程序的话也有一些不利因素:你的电脑也许不能再拿来干别的了,因为服务器程序占用了许多的CPU资源。如果你用一个速率不算很高的的工具比如DSL连接到internet的话,也许你得接受你浏览网页和下载的可用带宽很低这样一个事实。这是因为服务器需要一点带宽(取决于你服务多少用户)。尽管有这许多不足,我们仍然感到骄傲和满足,因为我们支持了电驴网络并推动了其用户量的增加。
有些人也许会问,运行eDonkey-Server是否犯法,以及会不会因此产生一些司法问题。Napster由于版权控制机构(Copyright-Control-Organisations)的诉讼,只好被关闭了&& 不承诺声明:我得强调,我不是律师!我只知道在德国的一些情况以及其他的运行服务器程序的人所告诉我的经验。所以如果你被卷入司法纠纷请不要对我提出诉讼。
目前尚无任何法律条款禁止文件共享索引服务器(FileSharing-Indexserver)的操作。由于在服务器没有提供什么文件,这样做理论上看起来是没问题的&& 一些美国的律师在对Napster提出审判的时候声称,运行索引服务器是一种侵犯版权的协作行为。有一句的德国的土语是这么说的:&在法庭上跟在海里一样,你的小命都掌握在神的手里& &&从我个人观点看来,在德国,审判的结果根本没法估计。相对于Napster这样的公司来说,他们有一个中心化的结构,而eDonkey服务器都是由居民私人自治管理的。如果要审讯的话,那只好每个用户都单独提出诉讼&&原告的来头不会这么大吧…
曾经有这样的例子:版权控制协会(Copyright-Control-Associations)请求因特网服务提供商(ISP)防止某些特定的客户这样做。 ISP就给该用户写信,提醒他不要提供有版权保护的数据。没有别的事情发生了。在这些具体的例子里,没有电驴服务器的加载者被卷入纠纷,但估计有Napster和Gnutella的用户。我从2001年3月开始就在运行我的服务器,直到现在也没有遇见什么麻烦&&甚至我的ISP也没有对我如此大的数据流量提出过什么质疑。
The eDonkey-System per se
整个系统被设计成为一个混血儿,不仅包含了自己的想法,同时还包含了Napster和Gnutella项目各自的最佳理念。它应该包含那些系统的优点,同时避开缺点。如果你进一步观察电驴的设计理念,你会看到这个目标已经达到了。嗯,有一些缺点(比如说,当ISP重新分配 IP的时候,更新服务器IP显得很笨拙,因为缺少动态DNS能力(DNS查询)或者客户端定义的服务器IP,然而另一方面你得看到,电驴仅仅诞生一年多一点&&今后会有重大的更新的&&
这个图表说明,谁跟谁在互通信息。缺少了服务器间的连接:它们之间非常频繁地互通它们所知道的所有服务器的IP。这样的话,即便是一个刚刚开始运行的服务器,如果它已经向另外一个服务器做过查询话,它也会知道系统中所有可用的服务器。服务器间没有用户数据和文件信息的的互通 &&缺少必要的带宽。
客户端需要服务器的IP地址(和端口号,如果标准端口4661没有使用的话)来与之建立连接。因为速率一般的用户通常IP也改变得比较频繁,所以客户端也许连一个可用的IP地址也没法知道。如果是这种情况,就没办法建立连接了。同时,也有可能定义一个可用IP&&有些动态IP的服务器加载者定制了所谓的&转向器(redirectors)&(//… ),这样的话就从动态的IP中定义了一个静态的域(比如说,&Little Red Corvette&&&服务器:&lrc.dyndns.org&)。
通过定义DNS(比如说,&ping lrc.dyndns.org&),DNS服务器就声明了一个实际的IP&&这个IP可以很容易地被添加到客户端的服务器列表里。也有几个站点提供了一个频繁更新的服务器列表,比如说或者。 这个令人迷惑的系统的主要目标 是确保网络的不可毁灭性。并不是只有一个服务器加载者(象Napster),这样就确保了整个系统的生命力。每个人都可以维持服务器。如果一个 服务器出了问题,不会出现系统整体的影响&&只少了一个服务器而已。从另一方面来说,这样也就有可能运行建立在动态IP基础上的服务器了&& 只有少量用户是有静态IP的&&大多数人每次拨号都是得到一个24小时有效的新IP&&但是ISP为什么要这样做呢?-&省钱! 数据流通要花钱,很多数据流通就要花很多钱&&但是如果IP每24小时换一次的话,顾客就没办法运行服务器了,运行服务器是会引起很多数据流通的 (顾客不需要花钱,因为他的速率不是很高那种的)。服务器的访问者不知道实际的服务器IP,因此很难确认服务器在哪里&&幸好有象DynDNS(动态DNS)的服务,才让 更新当前IP变得简单得多&&
运行服务器程序的必要硬件
你可在Pentium 100以及有至少128MB可用于快速搜索结果的RAM或以上的任何一台PC上运行服务器。没办法用硬盘来代替内存以处理这块数据,因为那样实在太慢了&& 嗯,我现在正运行这一个500用户的服务器,它现在占用了30MB内存&&因此你在一个比较简洁并且没有运行其他应用程序的操作系统下,如果有64M内存的话应该没问题&&在一个比如Pentium 100的比较慢的PC上运行服务器的话,应该减少一些用户&&在一个运行着LINUX(效率最高的服务器操作系统),Pentium 100的PC下, dserver最大可处理800客户&&如果再多的话,就会发生过载和丢包情况&&应该避免这种情况,否则服务器的运作不会让用户满意。机器忘记了其它服务器的IP地址(UDP丢包)并不再响应搜索请求。应该自己测试一下最佳的CPU动力,RAM大小以及网络带宽组合。
必要的网络连接
必要的端口是:TCP端口 4661, 4662 和 UDP-端口 4665! 我突出这一点是因为它经常被遗忘于是&&大吃一惊&&服务器坏了&&如果有防火墙或者路由器(Network Address Translation,NAT,Masquerading)的话,你应该把这些指定的端口释放出来并 把它们映射到有意向的服务器的特定私有IP地址上-&负责这个转换的路由器必须知道,它欲重新定向的特定端口应该定向到哪个IP上去。 有太多的不同的系统可供选择,所以在这个问题上我没办法给出一份一般性的操作说明&&因此请查阅一下路由器的使用手册,路由软件以及防火墙。
顺便说一句:Windows XP有一个整合的数据包过滤器,它会严重影响服务器的正常工作。如何使之无效的操作在下面给出。 重要:我不对防火墙的问题提供任何操作说明。人们常常问我为什么他们的服务器不能工作,大部分都是因为在某处有个防火墙阻塞了这些端口。 防火墙有很多很多种,所以我没有办法对每一种都提供支持。他们之中大部分都是可以用某种方法关闭的,但是他们仍然在起作用。 问题就在于,没有人知道这一点,只是盲目地在别处找问题。路由器也是如此。如果你第一次运行服务器,你应该整个地关闭掉防火墙, 直到服务器确实开始工作了&&如果你一把它重新开启服务器就不工作了,你就知道应该在哪里找问题了。
也有些防火墙带有数据包过滤器(比如ZoneAlarm)。通常这些防火墙都会不堪重负,因为电驴2000服务器带来许多地数据包。 它们会占用许多的CPU资源以检查每一个数据包,看它们是否有问题。便宜的路由器也是这样,500个用户简直是难以处理。如果你想要一个 软件防火墙,可以试试tiny personal firewall(简洁的个人防火墙)&&它在我的机器上工作良好。
很难精确地指出到底占用了多少带宽。依赖于用户的数量以及当时的搜索请求数量,所需带宽波动得很厉害。如上所述,它取决于你的个人环境设置。容纳500用户的最低要求是64kbit的ISDN连接。上行128kbit下行768kbit的ADSL足可用于1500用户&&你应该仔细观察一下这个瓶颈: ADSL的上传带宽!这是ADSL的大问题,当上传满负荷时,下传速率也会非常明显地下降&&每个下传的数据包都要被验证&&这需要未被占用的上传带宽&&如果上传的带宽都被占用光了,那么这个验证就需要消耗长得多的时间,相应的接收者也会停止发送数据包,直到接到验证为止。你没办法解决这个问题,只能把上传速度设置得比最大可用上传速度稍小一点。
&&以及它们的解决方法
服务器程序的操作系统
&&&&&& 运行电驴服务器最好的操作系统是Linux,Windows2000和XP。不适合用Windows 9x 和 ME,因为它们只能允许同时建立100个连接,更深一层地说,它们非常慢。即便你有一个很快的电脑,你也不可能同时服务100个客户以上。服务器会变得非常慢,并且不稳定。当有100个用户登陆的时候,没法打开网站,因为所有的连接都已经用完了。因此你得有Linux,Win2k或者XP。最好是让服务器工作的时候能够能够不被干扰,因此所以运行Linux比较合适。它比较小,简洁,并且的确是目前的操作系统中最快的。如果你使用linux不太熟练的话,也许你会感到有些泄气,但我真的鼓励你能试试它。在我的观点看来,将来会是Linux的天下,如果你已经有了linux工作经验的话,这也许将是 你的长处。有成千上万的Linux用户,遍布全世界,可以通过internet帮助你解决安装,设置和困难方面的问题。但如果你确实想改用Win2k或者XP的话,也没有问题&&服务器可以以控制台的方式运行在两者之上。性能将会比Linux低15%,并且它们自身要用更多的内存,因此你必须有足够的内存&&
在Windows 2000 和 XP上的安装
也许不能称其为&安装&,因为你不过是下载这个文件 并把它解压缩到指定的donkeyserver文件夹而已。里面有两个文件:&dserver.exe&和&donkey.ini&。配置文件donkey.ini在下面描述。只需在浏览器中双击dserver.exe或者用&ServerMaker(服务器制造器)&即可在控制台中运行服务器。
在Linux上的安装
跟在Windows中一样,你需下载这个文件并把它接压缩到任意的文件夹里。它包括了&dserver&文件。这是个可执行的二进制文件。你必须象下面描述的那样用文本编辑器手工写一个 donkey.ini并把它解压到相同目录下。你可以敲一个&./dserver&来手动开始运行服务器,或者,如果你想的话,敲入每个脚本。
‘donkey.ini’的配置
这是核心部分:电驴服务器的每一个变量都被写在这个文件里。dserver开始运行时会读这个文件。如果你改变了什么东西那么只有再次启动程序的时候才会被发现。非常重要:服务器软件没法接受语法错误(书写时的错误)。服务器不能明白某个命令,它就不会工作,或者它会忽略写得不对的命令(以及后面的任何东西)。大小写也是非常重要的。所有单独条目均不能有注释。如果你不想自己完成每个设置,那么可以用本站上的 替代你完成。
这个命令启动控制进程。它必须被写在方括号里。在最后的那个方括号后面没有空格,这一点非常重要。否则的话这将使服务器无法理解 &&也许它没法工作了。接下来的条目只是例子而已!
name=TheDonkeyNetwork
服务器的名字,就象你在客户端看见的那个。你可以用任何你想用的的文字数字组合。
desc=Celeron 366, 320MB RAM, Cable
服务器描述信息,跟&name=&格式是一样的。可以用任何文字。
thisIP=217.74.93.105
请注意大小写!(IP&217.74.93.105&只是个例子而已)。这将告诉服务器你自己的,公开的(!!!)IP。程序开始时,服务器会把它工作的IP打印出来并发送到其他的服务器。请注意程序开始时所显示的IP,它是你当前真正的,公开的IP。大多数的错误设置都是由这个设置所引起的。如果你想100%确信你当前的IP到底是什么,可以试试。这个连接所显示的IP绝对是你的IP,你必须用&thisIP=xxx.xxx.xxx.xxx&这样的格式写到文件里去。不幸的是,你必须写数字格式的IP地址,象xyz.dyndns.org这样的字母格式的条目是不行的,因为服务器没法解析DNS。下面有些给动态IP用的脚本,可以自动更新这个条目,这样你就不必天天都来编辑你的IP了。如果你把这个条目空着不写,服务器会尝试找到它自己的IP,不过大部分情况下都会失败:因此每次开始运行都检查一下!
在这里你要指定可以跟服务器建立联系的端口号。一般情况下这个端口是TCP:4661,如果你想用4661,那么这个条目可以空着。如果由于某些技术原因该端口不可用的话,你可以用其他的端口。当然如果是这样的话你就得给出这个条目了&&如果可能的话,就用4661端口,否则话可能会引起混乱。 &port=& 缺省是TCP:4661
seedIP=217.74.93.105
注意大小写!(IP地址&217.74.93.105&只是个例子而已)这一项,就象名字示意的那样,是指服务器从哪里连接到网络其他部分,它应该一直代表一个服务器,这样你的服务器才能够找到它 &&它是你的服务器首先建立连上的那个服务器&& 首先,你的服务器发送自身的IP地址和端口号&&然后他就会获得种子服务器所知道的所有的IP地址。这些地址被写到数据库里&&在关机以后,这个数据库被写到硬盘上,名字叫做&serverList.met&。下次启动的时候,种子IP(seedIP)就不再需要了,因为服务器已经在它的serverList.met里面有了很多的服务器IP了&&但是被写到seedIP条目里的服务器在本地服务器开始运行的时候必须是工作良好的。如果在这个IP下没有可用的电驴服务器,你的服务器就不能工作了。只能用数字形式的条目,字母形式的诸如&xyz.dyndns.org&这样的URL是不行的(在当前的开发状态下)&& 如果你在硬盘相同目录下有一个很新的&serverList.met&的话你可以把这个条目留为空白。如果你的服务器在几天内均处于离线状态,那么有可能这时候的serverList.met中的全部服务器IP都不能用了,结果服务器就没法连接到网络了。如果是这种情况,你应该从
或者 得到一份实际的server.met&&我建议把这个条目留空,取而代之是在服务器所在文件夹放一份实际的serverList.met,因为这样的话你在开始时就有了更多的&可用的&服务器,这样比只知道一个IP保险一些&&只需从上面的连接那里得到一份server.met并把它重命名为serverList.met即可&&
seedPort=4711
注意大小写!如果&种子服务器(Seed-Server)&的端口号不同于缺省的TCP:4661,就必须有这个条目。大部分服务器(90%)使用4661端口&&当然如果在你的服务器有一份实际的serverList.met的话,你可以把该条目留空&& &seedPort&的缺省设置是4661
logFile=true/false
注意大小写!你可以把日志写到硬盘里,而不是把它们显示出来&&这也就是说把显示输出关闭掉&&这样的话服务器不会在屏幕上显示任何输出! &true&表示&激活该功能&,&false&表示&关闭该功能&。如果你不想显示输出而想用日志文件的话的话&&写true,否则写false&&请不要写both(两者都要),否则你的服务器会发癫的,或者将引起你的电脑爆炸!! &logFile&的缺省设置是&false&&&关闭&&
verbose=true/false
如果你想看所有的系统显示的注意信息,你应该把&verbose&激活(把它设成&true&)&&一般来讲如果所有的东西你都看看的话是很烦人的,因为&普通的&信息显示得太快了。不要感到惊讶:即使是&verbose=false&,服务器仍然会打出&ERROR: unknown type MetaTag::MakeTag() 72&或者类似的信息 &&别管它,服务器会工作的。为什么会显示这个信息呢?我不知道!总之别理它就行了&& &Verbose&缺省是设成false&&关闭&&
public=true/false
这个条目决定了你的服务器是否把自己的IP发送到其他服务器去。把这个条目设置为&true&对网络来讲是非常重要的&&否则的话没有人会知道网络上有你这个服务器(如果你不把它告诉别人的话)。只有设置为&public=true&你的服务器才能够登陆到网络上去!注意:&public&缺省是设成&false&的&&所以如果你想让你的服务器连接到其他服务器的话,必须要有这个条目!
这个条目定义能够同事处理的任务的数目。多任务操作系统,比如Linux,Windows 2000或者XP可以安排交互的不同的任务以及资源,比如内存和处理器时间。这个工作进行得很快,看起来好像任务都是同时进行的一样。就象所有的&诺曼机器&的情形一样,因为PC处理命令都是串行的,所以这个同时处理实际上只是看起来象而已,因为速度很快所以感觉不出来。由于工作的交互进行性,&老&任务的数据必须被写到缓冲区去,新线程的数据必须从缓冲区(或者更糟糕,从主内存中读)中读出来,每次任务交互都需要时间。我的经验表明,线程数目太高的话会带来不利。每个线程,即使它并不工作,也需要占用CPU时间以及一定内存。如果你的服务器工作于1000客户,我建议你把线程(thread)数量设置为5。这个数量决不应该高于&30&(如果你的电脑&1GHz):你的电脑会明显地慢下来,并毫无意义地失去许多内存。为什么官方站点上的ini文档说应该设置为5(!)线程/100客户对我来讲是个迷&&这就是2000客户100线程&&服务器永远不会需要那么多!如果你有个很快的PC(&1.5GHz),你可以试试能不能运行多于30线程&&这样做也许可以提升性能。
tableSize=3089
注意大小写!这里的table就是包含了文件名和客户的数据库。这一定是一个素数。其技术背景(快速搜索次序)就不深入探讨了。这个值的大小看起来并没有什么太大区别。在默认的ini文件里这个值是&3089&&&这实际就是一个素数。我试了试用其他的素数,结果没有任何不同。象我一样设置它算了:&tablesize=3089&,自己计算浪费时间。服务器没有&tableSize&条目也可以工作。
maxClients=1500
注意大小写!这里是多少客户可以同时连接到服务器的数目。如果&maxClient(最大客户数目)&&&达到了峰值时,客户端在尝试连接到该服务器的的时候会出现&Can&t connect to…(无法连接到&&)&这样的信息。你必须试试才能知道你的服务器的最佳值&&如果太低了,那么你就浪费了资源,如果太高则可能会发生丢包现象,服务器的反应变得非常迟钝,甚至根本不响应客户请求。其次,ping的时间会变得很高,搜索请求会变得很高,内存会被扩展到硬盘上(使用虚拟内存)等等。你可以通过在客户端&&服务端状态窗口里比较不同服务器之间的ping值来检查这一点。你还要计算出为峰值情况做的足够的资源保留应该是多少,当有许多很消耗资源的请求(比如说,在周末的时候,用户感觉无聊,所以就随便乱按几下他们客户端上的按钮;-))以及许多数据被写到索引表时&&数据的大小对所需的内存有着直接的影响。如果你的机器开始&swap(交换)&&&把数据写到硬盘上去,这个动作会使电脑发出隆隆的声音&&你应该考虑减小最大用户数量。当然你的网络连接必须足够可靠。你应该把&maxClient(最大用户数)& 设到一个不会使平均CPU使用率超过50%的位置&&如果你使用&type=key&,你可以使之达到70%。如果你的服务器满载,并且你注意到在&vs&(View Servers,察看服务器)上的可用服务器数目在减少时,你已经有了大量的丢包情况。这使得你的服务器几乎变得完全没有价值。客户在跟你连接的时候只能得到少数几个服务器的IP,因为他们找不到文件,而搜索请求花的时间又很长。如果是这种情况,你应该检查一下,你的服务器是否有足够的内存,CPU是否太慢,可用带宽是否太小了一点。关于这个参数的所有问题,有一些有用的监视工具,甚至在linux-bash下也有的(比如说,&TOP&可以监视CPU和内存使用量,&IPTRAF&可以监视带宽使用情况)。一个借鉴:&Little Red Corvette(小红巡洋舰)&这个服务器有一个AMD K6 III 400MHz CPU(66MHz FSB, Intel TX),运行Linux,256MB内存,T-DSL(128/768kbit/s), .ini文件设置是&type=key&。当有1000个客户连接的时候CPU使用率达到20%-50%,内存使用量是180MB(在bash上,没有KDE或者类似的东西)。 1300客户的时候CPU使用率达到40%-100%,并且内存几乎全部用完:230MB。不能够正常负荷1500用户,因为这时候CPU和内存使用量都已接近 100%,并且机器部分被阻塞。在另一方面,T-DSL在保证上传数据流不拥挤的情况下,也没法快到能给1300以上的用户使用。我设置的是&maxClients=1000&,工作良好。
type=key/substring (key 或者 substring)
注意大小写! 在详细考虑之后,你可以转换到v.38版本的搜索程序。在普通模式下平均CPU使用率达到50%的时候,会有性能峰值出现,这样的情况可使机器在数秒钟(甚至数分钟)内 100%被占用。这样的峰值会导致上面所述的那种丢包情况出现。你可以通过激活&type=key&来避免这一点。现在你可以把&maxClient&设置到这样一个值:当服务器满载时,平均CPU使用率大约是70%。这时你将看到,峰值情况出现的很少,而且时间也短一些。&Little Red Corvette& 已经工作在&type=substring&,最多900用户的情况下好多个月了,当设置成&type=key&时,它达到最大用户。同样的硬件,变成了1300用户! &type&缺省被设置成&key&,也就是快速模式。
console=true/false
这个值决定服务器是否工作在控制台(命令行提示符)状态下。当服务器自动开始运行并且你不想使用&屏幕&命令的时候,这样做还是有用的。如果&console=true&的话,你就必须在控制台下运行服务器,如果&console=false&则不必非要如此,但这时就不能用键盘给出任何命令了,并且不能显示任何东西。嗯,其实这两样都不是必需的,但是我喜欢时不时察看一下它在干什么并加以控制,以及看看它知道多少可用的服务器(敲&vs&)。 &console&缺省是设置成&true&
minVersion=57
注意大小写! 这定义低于v.57的版本不能连接到服务器。当有客户端软件的更新版本出现时,改改这个值是有用的,但请注意当时的形势,比如说,由于一个安全方面的bug,新版本v.61没法支持ed2k-links,因此没有很多用户升级到它,还有linux的版本可能比windows版本老很多&&如果没有设置&minVersion&值的话,所有版本的客户端都会被服务器接受。
maxVersion=58
注意大小写! 这定义了服务器可接受的最大版本号。测试版的客户端程序往往有一个很高的值(比如1060)&&因此这个值应该留为空白,否则的话你得常常更新这个值并且很容易忘记&&正在测试新客户端的用户就被请出去了&&:-(如果&maxVersion&没有被设置的话,任何高于&minVersion&的版本均会被接受。
welcome[0]=Welcome to TheDonkeyNetwork
welcome[1]=share your Files and your upload Bandwith
这是欢迎信息,在登陆到服务器时被显示出来。你要注意,这里面的数字是变化的。欢迎信息不应该太长,否则的话它们将需要许多带宽&&每个字母1字节!当出现1000客户时,平均每分钟会有5-50个连接&&
一个完整的没问题的donkey.ini文件看起来像这样(只包含要求的东西&&在服务器所在文件夹中有一个serverList.met,所以不需要seedIP条目):
name=TheDonkeyNetwork desc=Celeron 366, 320MB RAM, Cable thisIP=213.47.54.71 port=2000 verbose=false public=true threads=3 type=key tableSize=3089 maxClients=500 keywordSearch=true welcome[0]=Welcome on TheDonkeyNetwork welcome[1]=*************************** welcome[2]=- Edonkey..Server – welcome[3]=- share your Files and your upload Bandwith
当所有的条目都正确时,donkey.ini文件会被保存在服务器所在文件夹中,然后服务器就可以启动了。当然你必须连接到因特网。3秒钟后你可以试试敲&vs&来看看在serverList.met中列出的服务器&&如果在&WORKING&后面没有IP则有些地方出了问题。
服务器命令
大多数情况下,刚开始的时候它不会如你所料地顺利运行。有了这个文档,希望将来情况可以好一点。如果在15秒后敲入&vs&没有服务器出现,试试这个:
1.donkey.ini文件中有没有语法上的拼写错误(命令的拼写)?注意大小写。在linux下,你应该注意,donkey.ini必须用小写书写!
2.你用IP请求器(IP-Requester)核实的IP跟程序运行时出现的显示的IP是否一致?如果不同:把正确的IP敲到donkey.ini文件中去&&这是最常见的错误之一!
3.&seedIP&条目是否真的是一个电驴服务器?试试用客户端连接到这个IP。注意服务器端口号是否一致(如果相应的服务器被选中的话,该端口号显示在客户端左下角的小窗口里)
4.是否有具备网络地址翻译器(NAT/Masquerading)功能的路由器?如果有的话:把路由器的端口映射设置到TCP端口:,4663和 UDP端口:4665!如果没有UDP协议的话,服务器无法工作。在Windows XP下:注意,在缺省状态下端口过滤器是被设成关闭状态的(点开始-&设置-&网络&&在宽带接入或者叫做别的什么名字的那里双击&&右键点击internet服务(PPoE协议)-&特性-&附加 -&设置,在&服务&下点击&添加&&&在&端口&下激活和4663的&TCP&端口,激活4665的&UDP&端口&&重新启动&&完成(如果按钮的对应名字的不正确的话,我感到抱歉,我不知道英文版本的XP是怎么样的&&所以你在这里得靠直觉
)(译注:本文原作者是德国人,在使用德文版winXP。国人也得靠直觉了:))。
5.在因特网和服务器之间是否有防火墙?如果是这种情况,跟上面一样处理&&命名的端口必须清除掉!(比如说,在&ZoneAlarm&中,&security&下,把两个开关都设置到&Low&,但最好是重新安装一下ZoneAlarm&&)。
6.如果在Linux中用1015版本以下的客户端连接到服务器,不考虑可用资源,试一试&filedescriptor-command(文件描述符命令)&: &ulimit -n 32000&。有了这个,也许可以容纳多于5000用户&&如果你的机器可以支持这么多人的话&&;-) 这个命令必须在跟服务器相同的控制台下使用,否则的话没用!
7.如果在Win9x/ME下,用户少于100人的话不要感到惊奇&&这些操作系统不能支持更多人了! 8.如果在有100个客户同时连接到服务器的情况下,Win9x/ME无法打开任何网站,那是因为已经连接已经被占用完了&&使用注则表补丁,另外一个操作系统或者把&maxClients&减小一点吧&&:-(
9.如果(win32)服务器在启动的时候被关闭并给出如下错误信息:
(因为我没有英文操作系统,所以消息是德文的,在英文里它的意思大致是&dserver.exe产生了一个错误,该应用程序被关闭。&)。检查一下在Internet-Explorer 中有没有代理服务器存在。如果是这种情况,服务器在启动的时候就会崩溃。解决办法:在IE中的&附加选项/Intenet属性/连接/局域网设置中,点击&设置&并把那里的&代理服务器&关掉。
自动操作的一般问题
如果你的因特网连接的IP是变化的,你很快就会希望能有自动化的操作帮助你。下面的解决方案是可能的:
1. 自动拨号:如果你的ISP 在建立连接后24小时关闭连接,你的机器必须重新建立连接。
2.IP鉴定:因为你几乎每次重新建立连接后都得到一个新IP,你必须重新编辑donkey.ini中的&thisIP&条目。其次,每回编辑完后都要重新启动计算机。当你这样做的时候,重定向器计数器会同时被更新,所以重定向器会指向正确的IP。
在Linux上的自动化操作
大多数的&linux信徒&都喜欢脚本,而没有什么比把GUI界面和服务器配置搅和在一起更糟糕的事情了。所以要认真考虑,并看看SuSE-Linux 7.0的脚本。我不知道跟其它的SuSE一起用行不行&&or even totally different distributions,你得测试一下,但应该只有一点小小的调整。
自动拨号: 有讲述所有的SuSE分配的特定文档,比如这里
自动关闭服务器,确认IP,编辑donkey.ini,重新启动服务器并更新重定向器:接下来的脚本(这就是我的服务器的工作状况)被连到/etc/ppp/ip-up的末尾。当然这些脚本和donkey.ini必须按照你的环境进行调整&&重定向器和库的列表也是如此。 Needed programs: 需要的程序:可以用脚本启动服务器的SCREEN(SuSE 分发或者FTP服务器)。 更新动态DNS账号的DDUP ()
##################### 开始 ################### ##################### 删除旧服务器 ############killall dserver &sleep 15killall -9 dserversleep 10##################### 写入新的donkey.ini ######echo &[server]name=TheDonkeyNetworkdesc=你有没有想过运行自己的服务器?那么就去做吧!logFile=falsetableSize=3089threads=5type=kyeconsole=truemaxClients=1300public=trueverbose=falsethisIP=$4minVersion=58seedIP=217.74.93.105welcome[0]=欢迎来到 Little Red Corvettewelcome[1]=AMD K6III-400, 256MB, Intel TX, SuSE Linux 7.0, 最大1500用户, 每天24小时在线welcome[2]=管理员说:共享你的文件和上传带宽welcome[3]=你有没有想过运行自己的服务器?那么就去做吧!你会在这里得到全部所需要的帮助:welcome[4]=请看一看:www.eff.org (Electronic Frontier Foundation)& & /usr/donkey/donkey.ini# 执行服务器sleep 5cd /usr/donkeyscreen -d -m ./dserverecho &`date`: $4& && /usr/donkey/bla##################### 执行动态DNS更新器 ############ddup –host lrc.dyndns.org##################### 结束 ################################
就是这样了。如你所见,服务器在/usr/donkey文件夹下。如果你的文件夹不一样的话,仅需要做一点小小调整。 你也许会问,&&screen&命令是怎么回事呢?&:服务器需要一个终端以得到键盘指令并在屏幕上显示一些东西。这就是为什么它以&screen -d -m ./dserver&开始运行。 当服务器已经开始运行时,你可以简单地通过在linux-bash上敲个&screen -r&来使之运作。
现在服务器在操作者毫不干涉的情况下也可运行数月之久。如果连接被ISP中断,这些脚本会停止服务器,测定新的IP,编辑donkey.ini文件,重新运行服务器并更新 动态DNS账号。不错吧,嗯?
Linux上的网络优化
在Win2000/XP上的自动化操作
跟给Linux写的脚本类似,这里是给windows用户的图形化的回答:在windows下,实现自动化更加容易,感谢恰如其分的工作!他写的这个程序配置了16.38版服务器并处理了它的终端。这个文件首先交互地查询donkey.ini所需的数据(帮助防止语法错误)并启动服务器。它定义,当连接中断时,创建一个新的连接并用新的IP重新启动服务器。我认为这个程序很容易看懂,因此详细的操作手册可以放在一边不看&& 基本内容在这里用一个简短的表格给出:基本操作在这里用一个简短的形式给出:下载该文件并把它解压缩到eDonkey-Server和donkey.ini文件所在的文件夹。也可以用。然后,运行ServerMaker.exe。它会打开一个有着如下内容的窗口:
因为我的服务器在路由器的后面,并运行于一台有私有IP(配置:192.168.0.1)的机器之上,所以我已经激活&via LAN(在路由器之后)&,由于&ServerMaker(服务器建立者)&定义了正确的(公开的)IP地址,因此你必须激活相应的选项。大部分情况下,DSL-Modem(或ISDN或类似的东西&&)是直接连接到服务器所运行的机器上的。不应该在这里输入正确的IP,因为ServerMaker 会在接下来的窗口里(自动)确认。如果你在上面点了&server-config(服务器配置)&,会打开另一个窗口,此处你可编辑donkey.ini的数据。
非常好的: &detect IP(检测IP)&按钮(上中部)。这样一来,可以毫无疑问地确认正确的(公开的)IP。接下来的设置非常重要:
1.被选中的&seed-server(种子服务器)&的IP地址和端口号。里给出了许多可用eDonkey-server(象上面详细讨论的那样)服务器。从中取一并填到这里。2.&Public Server(公开服务器)&必须被激活,这样服务器才能成为电驴网络的一部分。
3.激活&enable console(使能控制台)&!
4.这是是否使用快速搜索次序的开关。应该被激活!
5.根据我的经验,5个&threads(线程)&就足够了。
6.&tablesize(表大小)&:3089是个素数,可以不做改变。你自己去算一遍是没有意义的。
7.&Allows min client version(接受的最低客户端版本)&:由于应该不会有老的或者不兼容的客户端连接到系统,你应该把最低客户端版本限制到v.57。下一个选项&Allow max client version(接受的最高客户端版本)&应该留空,否则的话,可能出现新的测试客户无法连接的情况。
还有,你应该输入你的服务器的名字,一点描述以及欢迎信息。所有的条目都完成后,点击左上角的&Save(保存)&按钮,这些内容就会写入donkey.ini了。然后点击&leave(离开)&(在左上角)并在主窗口中点&StartServer(启动服务器)&来启动服务器。顺便说一句:在系统托盘里有一个图标是表示服务器制作者的:
&&这样,程序会隐藏在后台运行&&
嗯,我想这就是基本的操作说明,但对于刚开始来讲应该已经足够了。这样,你就可以很容易地在Windows 2000/XP下实现服务器的自动化操作了。
&&笔者希望有文件共享的新思路出现&&如果可能的话&&
有一次,一个老者告诉我,给予比索求要好&&如果他知道我们的Donkey或者只是我们这种&最后的衬衫没有口袋&的理念&& 谁知道。 所以不要光顾着看自己的下载速度,同时也要乐于上传。
还有,在某些方面说来运行服务器也是一种政治行为,它是对诸如唱片商标,电影工作室,软件公司等等的内容工业无节制的版权声明作斗争的一部分。当然,我知道人们想要从他们辛勤工作的劳动成果中有所收获&&但我的确看到,版权法简直是泛滥成灾。比如说,每次使用都要花钱:听一次就得掏一次腰包。DMR:&Digital Rights Management(数字化的权利经营)&Windows XP:一开始就要花钱,然后你必须到微软那里注册才能得到激活码。更别提满世界都是的所谓专利权&&居然连大米的品种也能被弄成专利&&简直是难以置信!什么时候哪个公司弄个人类基因的专利来看看?那样的话我能用这些基因么?或者我是不是要掏钱才能用?事情根本不能这么处理!
自打我能记事起,就一直存在着共享和拷贝的行为。当我还是个小男孩的时候,我们在学校里就互相换磁带听,当然,30年前还没有什么因特网,但音乐行业已经站稳脚步了,因为磁带录制人和磁带&&。当然,他们想赚点钱。嗯,其实从另外一个角度看来看来这样做也没有什么不妥&& 但是当时不允许,因为总的说来,当时有极其严格的法律以防止人们交换东西(文件)。我个人认为,这是对个人自由的严重侵犯&& 这是我们应该抗争的东西&&David Thoerau写过&温和抵抗的职责&&&只需想象一下我们的下一代,他们应该拥有象我们一样自由生活的权利,嗯,这是个政治问题,每个人都有自己的看法,并且我尊重这些看法&&我只是对这个问题给出一个回答
我感谢电驴2k网络的开发者们,没有你们的理念,就不会有这个网络了: Jed McCaleb,Steven Price,Daniel Eriksson,Jonathan Clark,Enoch Moeller,Laurens Lenior, Edward Ho, Ben Crofoot 和 Kobus Jooste。感谢你们,你们是个很棒的团体!
(c)版权属于
由翻译成英文
— 七★海棠 @ 6:16 pm
如果你是有关互联网的从业者、创业者或爱好者,只要你有自己个性化的理解和偏见,不论长短、不论高低,都欢迎参与我们每天一次的【】!我们的选题范围一般为互联网上的最新热点、最快动向和最酷产品。在这里,你我都是业界的审视者、批评者和建构者。
查看当天“业内人说”,请上;参与当天“业内人说”,请私信 。
CQ业余无线电
Ⅰ常用软件
Ⅱ软件下载
Ⅲ免费电影
Ⅳ流行站点
ⅤBT种子上传

我要回帖

更多关于 魔域桃源 的文章

 

随机推荐