Emule服务器与设置
2004-02-09 LifeNT lifent.5i6.net 点击: 3614

Emule服务器与设置
服务气端下载链接: http://lugdunum2k.free.fr/kiten.html

donkey.ini文件的配置

这是核心部分:电驴服务器的每一个变量都被写在这个文件里。dserver开始运行时会读这个文件。如果你改变了什么东西那么只有再次启动程序的时候才会被发现。非常重要:服务器软件没法接受语法错误(书写时的错误)。服务器不能明白某个命令,它就不会工作,或者它会忽略写得不对的命令(以及后面的任何东西)。大小写也是非常重要的。所有单独条目均不能有注释。

[server]

这个命令启动控制进程。它必须被写在方括号里。在最后的那个方括号后面没有空格,这一点非常重要。否则的话这将使服务器无法理解 ——也许它没法工作了。接下来的条目只是例子而已!

name=TheDonkeyNetwork

服务器的名字,就象你在客户端看见的那个。你可以用任何你想用的的文字数字组合。

desc=Celeron 366, 320MB RAM, Cable

服务器描述信息,跟“name=”格式是一样的。可以用任何文字。

thisIP=217.74.93.105

请注意大小写!(IP“217.74.93.105”只是个例子而已)。这将告诉服务器你自己的,公开的(!!!)IP。程序开始时,服务器会把它工作的IP打印出来并发送到其他的服务器。请注意程序开始时所显示的IP,它是你当前真正的,公开的IP。大多数的错误设置都是由这个设置所引起的。你必须用“thisIP=xxx.xxx.xxx.xxx”这样的格式写到文件里去。不幸的是,你必须写数字格式的IP地址,象xyz.dyndns.org这样的字母格式的条目是不行的,因为服务器没法解析DNS。下面有些给动态IP用的脚本,可以自动更新这个条目,这样你就不必天天都来编辑你的IP了。如果你把这个条目空着不写,服务器会尝试找到它自己的IP,不过大部分情况下都会失败:因此每次开始运行都检查一下!

port=4711

在这里你要指定可以跟服务器建立联系的端口号。一般情况下这个端口是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”的——所以如果你想让你的服务器连接到其他服务器的话,必须要有这个条目!

threads=5

这个条目定义能够同事处理的任务的数目。多任务操作系统,比如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条目):

[server]

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则有些地方出了问题。

服务器命令

Debugging

大多数情况下,刚开始的时候它不会如你所料地顺利运行。有了这个文档,希望将来情况可以好一点。如果在15秒后敲入“vs”没有服务器出现,试试这个:

1.donkey.ini文件中有没有语法上的拼写错误(命令的拼写)?注意大小写。在linux下,你应该注意,donkey.ini必须用小写书写!

2.你用IP请求器(IP-Requester)核实的IP跟程序运行时出现的显示的IP是否一致?如果不同:把正确的IP敲到donkey.ini文件中去——这是最常见的错误之一!

3.“seedIP”条目是否真的是一个电驴服务器?试试用客户端连接到这个IP。注意服务器端口号是否一致(如果相应的服务器被选中的话,该端口号显示在客户端左下角的小窗口里)

4.是否有具备网络地址翻译器(NAT/Masquerading)功能的路由器?如果有的话:把路由器的端口映射设置到TCP端口:4661,4662,4663和 UDP端口:4665!如果没有UDP协议的话,服务器无法工作。
在Windows XP下:注意,在缺省状态下端口过滤器是被设成关闭状态的(点开始->设置->网络——在宽带接入或者叫做别的什么名字的那里双击——右键点击internet服务(PPoE协议)->特性->附加 ->设置,在“服务”下点击“添加”——在“端口”下激活4661,4662和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”减小一点吧……:-(
责任编辑: dash

DASH老大起家的玩意啊 :D ,从代序老大网站上找得,不过一些新特性还要自己琢磨。

Emule服务器与设置相关推荐

  1. 联通eMule的HighID设置方法

    联通eMule的HighID设置方法 1.Win+R打开CMD,输入ipconfig,看IP地址,子网掩码和网关: 2.右键任务栏右下角网络图标,打开网络设置,点网络和共享中心,点以太网,点属性,点I ...

  2. xp系统电脑ntp服务器,xp 设置ntp服务器

    xp 设置ntp服务器 内容精选 换一换 已获取服务器管理员帐号与密码.打开CMD运行窗口,输入gpedit.msc,打开本地组策略编辑器.打开组策略在指定RD会话主机服务器的授权模式下拉列表中选择按 ...

  3. 服务器修改mime类型,服务器上设置mime类型

    服务器上设置mime类型 内容精选 换一换 资源包括静态语音,TTS放音以及短消息,在您进行流程编排前,需要先将涉及到的资源,包括语音.短信模板添加到系统中,才能继续配置流程. 开发过程中,您有任何问 ...

  4. 华为服务器HBA卡在哪个位置,服务器hba 设置

    服务器hba 设置 内容精选 换一换 域名的DNS服务器定义了域名用于解析的权威DNS服务器.通过华为云注册成功的域名默认使用华为云DNS进行解析,详细内容,请参见华为云DNS对用户提供域名服务的DN ...

  5. linux mysql设置数据库utf_Linux系统下MySQL数据库服务器字符集设置

    Linux认证考试:Linux系统下的MySQL数据库服务器字符集设置 启动MySQL后,以root登录mysql isher@isher-ubuntu:~$ mysql -u root >sh ...

  6. mt4 不显示服务器速度,mt4显示服务器时间设置

    mt4显示服务器时间设置 内容精选 换一换 用户可通过云服务基线查看各项风险的详细信息和指导建议.态势感知支持检测云服务关键配置项,通过执行扫描任务,检查云服务基线配置风险状态,分类呈现云服务配置检测 ...

  7. 服务器的文件共享,服务器文件共享设置

    服务器文件共享设置 内容精选 换一换 本文介绍了弹性文件服务SFS各特性版本的功能发布和对应的文档动态,新特性将在各个区域(Region)陆续发布,欢迎体验. 云耀云服务器默认设置的时区,是您制作镜像 ...

  8. linux服务器安全文档,CentOS Linux服务器安全设置

    CentOS Linux服务器安全设置 我们必须明白:最小的权限+最少的服务=最大的安全 所以,无论是配置任何服务器,我们都必须把不用的服务关闭.把系统权限设置到最小话,这样才能保证服务器最大的安全. ...

  9. ftp服务器账户密码修改,ftp服务器如何设置账户密码

    ftp服务器如何设置账户密码 内容精选 换一换 在移动设备上正确安装APP后,就可以通过APP登录NetEco服务器. 本文介绍如何在裸金属服务器操作系统内部修改登录密码.建议优先在控制台上重置密码, ...

  10. CentOS 服务器安全设置

    一.注释掉系统不需要的用户和用户组 注意:不建议直接删除,当你需要某个用户时,自己重新添加会很麻烦. cp /etc/passwd /etc/passwdbak #修改之前先备份 vi /etc/pa ...

最新文章

  1. 数据库和服务器什么协议,数据库服务器协议
  2. 用db-RDA进行微生物环境因子分析-“ggvegan“介绍
  3. TX Pattern Generator功能块
  4. linux C 中的volatile使用
  5. 关不关机 扫地机器人_【小米智能家居】米家扫拖机器人,模拟人工来回擦拖地!...
  6. php改成IP连接数据库,thinkphp,pdo连接数据库,host自动被替换成了本机ip
  7. jax-ws和jax-rs_带有JAX-WS和Spring的Web服务应用程序
  8. Centos系统镜像下载
  9. python中的URL编码和解码
  10. 2017.4.19 数列 思考记录
  11. 用计算机找到自己的另一半,希望找到另一半的说说 期盼找到另一半的句子
  12. 一种解决各种 macos unlocker 无法下载 Darwin.iso 的方法
  13. 多个excel工作簿合并_Excel应用实践14:合并多个工作簿中的数据—示例3
  14. 二线城市疯狂抢人,技术人才何去何从?
  15. 如何在WhatsApp中设置两步验证
  16. Jhipster生成前端为Vue的项目引入Element-UI
  17. RMB小写转换成大写
  18. Matlab获取tif各格点经纬度
  19. canvas 烟花特效
  20. Elasticsearch 多种跨机房灾备方案对比与实战解读

热门文章

  1. 关于解决百度网盘盘符无法删除的问题
  2. ios标准时间转为北京时间
  3. 软件开发中的十大困难
  4. sentinel实现秒杀活动
  5. 开源的微信公众号管理工具
  6. java basic认证_HTTP Basic auth认证
  7. java cursor_cursor的基本使用方法
  8. (报错解决)Exception encountered during context initialization
  9. 关于 socket收发数据一样 接收的数据是错误
  10. [敏捷开发实践] 用Sonarqube评估系统中的 Technical Debt (技术债)