tableSize=3089 (integer)
注意大小写!
这里的table就是包含了文件名和客户的数据库。这一定是一个素数。其技术背景(快速搜索次序)就不深入探讨了。这个值的大小看起来并没有什么太大区别。在默认的ini文件里这个值是“3089”——这实际就是一个素数。设为其他素数也没有任何影响。如果不去设定,服务器会自动生成一个素数取代。
maxClients=100000
注意大小写!
这里是多少客户可以同时连接到服务器的数目。如果“maxClient(最大客户数目)”——达到了峰值时,客户端在尝试连接到该服务器的的时候会出现“Can´t connect to...(无法连接到……)”这样的信息。
你必须试试才能知道你的服务器的最佳值,LUGDUNUM支持运行中更改可容纳客户端数目,更改后也无需重新启动程序。
type=key/substring (key 或者 substring)
注意大小写!
“type”缺省被设置成“key”,也就是快速模式;“substring”是老式方法,速度慢。
console=true/false
这个值决定服务器是否工作在控制台(命令行提示符)状态下。当服务器自动开始运行并且你不想使用“屏幕”命令的时候,这样做还是有用的。
如果“console=true”的话,你就必须在控制台下运行服务器,如果“console=false”则不必非要如此,但这时就不能用键盘给出任何命令了,并且不能显示任何东西。嗯,其实这两样都不是必需的,但是我喜欢时不时察看一下它在干什么并加以控制,以及看看它知道多少可用的服务器(敲“vs”)。 “console”缺省是设置成“true”
minVersion=57
注意大小写!
这定义低于v.57的版本不能连接到服务器。当有客户端软件的更新版本出现时,改改这个值是有用的,但请注意当时的形势,比如说,由于一个安全方面的bug,新版本v.61没法支持ed2k-links,因此没有很多用户升级到它,还有linux的版本可能比windows版本老很多……
如果没有设置“minVersion”值的话,所有版本的客户端都会被服务器接受。
maxVersion=9999
注意大小写!
这定义了服务器可接受的最大版本号。测试版的客户端程序往往有一个很高的值(比如1060)——因此这个值应该留为空白,否则的话你得常常更新这个值并且很容易忘记——正在测试新客户端的用户就被请出去了……:-( 设为9999就保险了。
如果“maxVersion”没有被设置的话,任何高于“minVersion”的版本均会被接受。
welcome[0]=Welcome to TheDonkeyNetwork
welcome[1]=share your Files and your upload Bandwith
这是欢迎信息,在登陆到服务器时被显示出来。设定时你要注意,[]里面的数字是变化的,每行的不一样。欢迎信息不应该太长,否则的话它们将需要许多带宽——每个字母1字节!当出现1000客户时,平均每分钟会有5-50个连接……
一个完整的可以使用的donkey.ini文件看起来像这样:
[server]
name=华语P2P源动力
desc=社区 http://BBS.VeryCD.COM
thisIP=61.152.93.254
port=4242
seedIP=62.241.53.16
seedPort=4242
verbose=false
public=true
threads=10
type=key
tableSize=3089
maxClients=100000
minVersion=57
maxVersion=9999
logFile=false
welcome[0]=欢迎登录华语P2P源动力
welcome[1]=***************************
welcome[2]=建立华语世界最大的P2P资料库
下面介绍一下一些其他的设置选项
LOWIDenable (integer)
如果为 1, LOWID 用户可以登录。缺省值为 1
LOWIDpercent (integer)
最大的 LOWID 用户比率。建议不要超过33%,缺省值为20
autoservlist (pathname)
如果设置了,服务器会每225秒将已知的其他服务器列表写入server。缺省值为none
auxportslist (list of ports values)
辅助监听端口列表,16.45版的新特性
例子:auxportslist=80,443,25,21
blacktime (integer)
黑名单时限。即将客户端ip列入黑名单保留的时限.缺省值为3600
bverbose (boolean)
如果为真,eserver会记录下黑名单ip。缺省值为false
connIP (IP address)
当服务器有多ip时,指定辅助监听的ip。和ftpd的virtual host不同,这里还有防止Hash Stealers的功能
filter[] (filter expression)
滤镜,防止共享某些不合法或不完整文件,有需要的话我会另外一个帖子介绍一下详细用法
例子:
filter[0]=(.part.met)
filter[1]=(.part.stats)
filter[2]=(#FORMAT met)
filter[3]=(#FORMAT part)
filter[4]=(#FORMAT dll)|(#FORMAT sys)
hardLimit (integer)
共享文件数目硬性限制,为避免某些用户共享过度的文件数浪费带宽而设置,拥有超过此数目共享文件的用户将被踢出服务器,默认值为4000
login_timeout (integer)
登陆时限,在时限内检验客户端获取 HighID 或 LOWID。默认值为20
max_clients_per_ip (integer)
限制同一IP连出的客户端数量,默认值为12。
可以防止某些蠕虫/病毒/机器人发起太多连接以填满服务器的资源,但是容易使国内一些宽带的用户进入黑名单。
maxSearchCount (integer)
从以连接客户中搜索返回结果最大数,默认值为200
maxUDPSearchCount (integer)
从非连接客户中搜索返回结果最大数,默认值为20
maxservers (integer)
服务器被加入服务器list的最大值,避免拒绝服务攻击。缺省值为4096
maxstrangers (integer)
最大陌生用户的数目,缺省为1000000
minEVersion (integer)
可登入服务器的Emule的最小版本,缺省值为0x26
注:EMULE的版本数字为16进制,范围从00到FF
minkeylength (integer)
搜索时关键字的最小长度,缺省为3
nbuserIP (IP address)
如果使用了nbuser来监听,在这里设置监听机器的ip,缺省为127.0.0.1
nbuserport (integer)
nbuser监听的端口,默认为5656
ncpus (integer)
设定主机可用的CPU的数目。
nickcommunity (string)
非陌生客户认证的标志,也就是登录服务器需要的TAG,比如POPGO服务器需要的EDTOON,缺省值为空
noudpslowsearches (boolean)
拒绝复杂搜索,即拒绝关键字搜索,缺省值为false
ping_delay (integer)
ping延迟时间,服务器会在一定的间隔获取用户总数和每一个用户共享的文件,这个过程叫做ping。缺省值为400
softLimit (integer)
共享文件数目软性限制,为避免某些用户共享过度的文件数浪费带宽而设置,用户超过此数目的共享文件将被服务器忽略,默认值为1000
tcpthreads (integer)
用于接受客户端请求的TCP请求的线程数目,默认值为当前主机的可用CPU数目
trackbademule (integer)
拒绝虚假版本EMULE的登入,要与minEVersion配合使用,默认值为30
trackemule (integer)
此项如果被激活(设为1),服务器程序将跟踪EMULE的版本,默认值为1
udpsearchers (integer)
为UDP搜索动作准备的线程数目,在单CPU机器上请设为1,多CPU机器上请设为2
warnfakes (integer)
恶意文件提示,当用户持有或正在下载fakes.txt中已知的虚假或恶意文件时,服务器发给该用户的警告信息的数目,默认值为0(不发送)
附:fakes.txt 的格式
纯文本格式,每行只写入一个虚假或恶意文件,以该文件的32位MD4 HASH值开头,后面是对于该文件情况的描述。
服务器命令
vc
查看当前服务器中用户登录情况
vs
查看种子服务器的运行情况
vo
查看当前服务器的一些选项的值,比如IP,端口,软硬限制等
name=valve
更改选项的值,比如键入 maxClients=30000 就是将最大客户端数目设为30000
print name
显示该选项的当前值,比如建入 print maxClients,服务器就会显示 maxClients=30000
g | stats
显示服务器当前的用户情况,搜索状况,端口信息,连接情况。
wel
显示服务器的欢迎信息
filters
设置服务器中的文件名过滤
slab
显示当前的内存使用情况
debug
显示服务器的调试信息
reload
重新载入配置文件
m message
向客户端广播信息,message指代广播内容。
在LINUX下的一些设置
对于大型服务器,修改/etc/sysctl.conf中的fs.file-max将其值改为 16384
官网推荐使用脚本启动服务器,脚本内容如下:
# script.sh file
ulimit -n 100000
while :
do
./eserver
sleep 1
done