■回到討論區首頁■回到文章列表■文章編號:[1494498183]

emule伺服器軟體(windows BUG修正版)

  • 1樓
  • chris
  • ID:s5vU.wVU
  • 68%
短訊推文砍文載入全部圖片
emule伺服器軟體(windows BUG修正版)

載點:
[ 點我展開 ]


設定Lugdunu(適用於所有版本):

下載與你的系統和CPU對應的Lugdunum,然後解壓到任意文件夾中,再去下載ip-to-country.csv與ipfilter.dat,把他們放在Lugdunum存放的位置,這時就可以編寫Lugdunum的配置文件——donkey.ini。

這是核心部分:eD2k服務器的每一個變量都被寫在這個文件裡。 eserver開始運行時會讀這個文件。
警告:服務器軟件沒法接受語法錯誤(書寫時的錯誤),服務器不能明白某個命令它就不會工作,或者它會忽略寫得不對的命令(以及後面的任何東西);大小寫也是非常重要的;所有單獨條目均不能有註釋。

[server]
這個命令啟動控制進程。它必須被寫在方括號裡。在最後的那個方括號後面沒有空格,這一點非常重要。否則的話這將使服務器無法理解 ——也許它沒法工作了。接下來的條目只是例子而已!

name=LUCK
服務器的名字,就像你在客戶端看見的那個。你可以用任何你想用的的文字數字組合。

desc=社區 http://www.ied2k.com/
服務器描述信息,跟“name=”格式是一樣的。可以用任何文字。

thisIP=61.152.93.254
請注意大小寫! (IP“61.152.93.254 ”只是個例子而已)。這將告訴服務器你自己的,公開的公網IP。程序開始時,服務器會把它工作的IP發送到其他的服務器。請注意程序開始時所顯示的IP,它是你當前真正的,公開的IP,用戶會通過你提供的這個IP連接到你的服務器。

port=4242
在這裡你要指定可以跟服務器建立聯繫的端口。一般情況下這個端口是TCP:4661,如果你想用4661,那麼這個條目可以空著。如果由於某些技術原因該端口不可用的話,你可以用其他的端口。當然如果是這樣的話你就得給出這個條目了——如果可能的話,盡量不使用4661,因為某些無良ISP封鎖了4661與4662。端口缺省是TCP:4661

seedIP=195.154.83.5
注意大小寫! (IP地址“195.154.83.5”只是個例子而已)
這一項,就像名字示意的那樣,是指服務器從哪裡連接到網絡其他部分,它代表一個正在運行的ED2K服務器,這樣你的服務器才能夠找到它——它是你的服務器首先建立連上的那個服務器。首先,你的服務器發送自身的IP地址和端口號——然後他就會獲得種子服務器所知道的所有的IP地址(種子伺服器就是:195.154.83.5:7111)

seedPort=7111
注意大小寫! (端口“4242”只是個例子而已)
如果“種子服務器(Seed-Server)”的端口號不同於缺省的TCP:4661,就必須有這個條目。許多服務器使用4661端口“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”的,把它更改為true.

threads=10 (integer)
這個條目定義能夠同時處理的任務的數目,目前Lugdunum中此值為10且不可更改。

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=LUCK
desc=http://www.ied2k.com/
thisIP=61.152.93.254
port=4242
seedIP=195.154.83.5
seedPort=7111
verbose=false
public=true
threads=10
type=key
tableSize=3089
maxClients=100000
minVersion=57
maxVersion=9999
logFile=false
welcome[0]=歡迎登錄LUCK
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

回到討論區首頁

名字: 密碼 (可省略) :

readl.php ver3