©2002-2004
by
Lugdunum
[http://lugdunum2k.free.fr/kiten.html]
Übersetzung:
Norman
[http://www.rechenkraft.net]
IhmSelbst
Hier gibt es nützliche Informationen über den Lugdunum-eDonkey/eMule-Server.
Die alte Seite enthält Informationen über Lugdunums vorherige Patches des dserver.
Die aktuelle Version des eservers ist die 17.14. - Serverbetreiber sollten ihre Serverversion auf den neuesten Stand bringen: Wir leben in einer feindlichen Welt...
Momentan erhältlich für Linux, Windows und verschiedene Unixe.
Besten Dank an bluecow vom Emuleentwicklerteam für die Zusammenarbeit:
emule 0.30b verwendet das neue Serverprotokoll (zlib, jumbo UDP frames).
eMule0.30d bündelt mehrere GetSources in einer TCP message.
eMule0.42e verwendet 'alle' Features der Version 16.45
eMule0.44a ist bereit für Unicode
eMule0.46a verwendet das erweiterte getsources-Protokoll, um Fehler durch falsche Filegrößenangaben zu vermeiden.
eMule0.46b wurde um den Befehl 'related search' erweitert.
eMule0.47a sollte FILERATING-tags an die Server schicken können.
eMule0.47a kann mit großen Dateien (>4GB) umgehen.
Der eDonkey von Metamachine wurde in der Version 1.4.3 aktualisiert, um nun ebenfalls all diese neuen Goodies zu beherrschen. (Aber keine großen Dateien.)
- Für Linuxrechner (Pentium) mit einem 2.4er Kernel:
eserver-17.14.i586-linux.gz
- Für Linuxrechner mit i686 CPUs (PII, PIII, PIV, Athlons, ...):
eserver-17.14.i686-linux.gz
- Für High-End-Linuxrechner ix86 mit neuerem 2.5/2.6 Kernel (benutzt futexes/NPTL):
eserver-17.14.i686-linux.nptl.gz
- Für High-End-Linuxrechner ix86 mit neuerem 2.5/2.6 Kernel (benutzt futexes/NPTL) und einem Prozessor (Uniprocessor):
eserver-17.14.i686-linux.nptl_up.gz
- Für AMD64 High-End-Linuxrechner mit neuerem 2.6 Kernel (benutzt futexes/NPTL):
eserver-17.14.x86_64-linux.nptl.gz
- Für AMD64 High-End-Linuxrechner mit neuerem 2.6 Kernel (benutzt futexes/NPTL) und einem Prozessor (Uniprozessor):
eserver-17.14.x86_64-linux.nptl_up.gz
- Für einen IBM S390 Rechner mit Linux:
eserver-16.45.s390-linux.gz
- Für WIN32-Rechner (win2000, winXP, win2003):
eserver-17.13.i686-win32.exe
Warnung: unter WIN32 sollte man zur Vermeidung eines CPU-Loops auxportslist
verwenden.
- Für eine Digital alpha ev56, osf 5.1 Maschine (64 bit):
eserver-16.46.ev56-dec-osf5.1.gz
- Für eine Sun solaris 5.9 i586 Maschine (32 bits):
eserver-16.45.i586-solaris5.9.gz
- Für eine Sun solaris 10 x86_64 Maschine (64 bits):
eserver-17.3-x86_64-sol10.gz
- Für eine Sun solaris 2.8 sparcv9 Maschine (32 bits):
eserver-17.7.sparcv9-solaris2.8.gz
- Für eine HPPA Maschine, HPUX11i, (verwendet /dev/poll, falls verfügbar) (32 bits):
eserver-16.48.hppa1.1-hp-hpux11.gz
- Für eine HPPA-Maschine, linux (32 bits) [füge noepoll=true in der donkey.ini für linux 2.4 hinzu]:
eserver-16.48.hppa-linux.gz
- Für einen Apple PowerPC G4, mit Darwin 6.6 (32 bits):
eserver-16.44.darwin-6.6.gz
- Für FreeBSD 6.1, versuche die FreeBSD native binary : eserver-17.12-i686-freebsd-6.1.gz
- Für FreeBSD 6.0, versuche die FreeBSD native binary : eserver-17.10-i586-freebsd-6.0.gz
- Für FreeBSD 5.3, versuche diese 5.3 native binary : eserver-17.3.i586-freebsd.gz
- Für FreeBSD 4.11, versuche diese 4.11 native binary : eserver-17.11.i586-freebsd.gz
- Für FreeBSD 6.0 x86_64, verwende die Datei: eserver-17.7.x86_64-freebsd-6.0.gz
- Falls Wünsche zu anderen Architekturen/CPUs/Betriebssystemen bestehen, fragen Sie einfach Lugdunum.
- Bitte auf französisch oder englisch.
Runterladen und installieren:
$ wget http://lugdunum2k.free.fr/files/eserver-17.14.i686-linux.gz
$ wget -O ipfilter.srv http://lugdunum2k.free.fr/files/ipfilter.srv
$ gzip -d eserver-17.14.i686-linux.gz
$ chmod 755 eserver-17.14.i686-linux
$ rm -f eserver
$ ln -s eserver-17.14.i686-linux eserver
Optionen:
Falls eine ipfilter.dat verwendet wird, sollte man auch darauf achten, diese regelmäßig zu aktualisieren.
$ wget -N http://emulepawcio.sourceforge.net/nieuwe_site/Ipfilter_fakes/ipfilter.dat
$ wget -N http://ip-to-country.webhosting.info/downloads/ip-to-country.csv.zip
$ unzip ip-to-country.csv.zip
Der eserver braucht eine Konfigurationsdatei namens donkey.ini, die im gleichen Verzeichnis wie der eserver liegen muß.
Diese Konfigurationsdatei ist kompatibel mit der des originalen dserver. Schauen Sie sich dahingehend mal die Seite von MetaMachine an.
Die 'nackte' donkey.ini sollte mindestens folgendes enthalten:
[server]
name=Der Name des Servers
desc=Eine kurze Beschreibung des Servers
thisIP=81.12.34.56 # Die öffentliche IP des Servers
port=4232 # der TCP-port (Standard ist 4661, aber es wird angeraten, einen anderen Wert zu wählen.)
Zum Betrieb des eServers kann ich den Befehl screen empfehlen, weil der Server eine Textkonsole hat, in der die Befehle ausgeführt werden können.
Der Server kann nicht als Dienst (daemon) betrieben werden.
Um ihn automatisch wieder zu starten, z.B. bei einem Fehler, empfehle ich, ein Skript in der Art wie dieses hier zu benutzen:
# script.sh file
ulimit -n 100000
while :
do
./eserver
sleep 1
done
Wenn die script.sh-Datei fertig ist, führt man, um sie ausführbar zu machen, in einer Konsole einmalig "chmod +x script.sh" aus.
Dann, um den Server zu starten:
screen -d -m ./script.sh
Zur Bedienung gibt man ein:
screen -r
Neu in Version 17.14 (21. Oktober 2006):
- Einige Änderungen bei der Kommunikation zwischen den Servern. (weniger Traffic)
- Änderungen in Grössenkonflikten (wenn gleiche Prüfsummen, aber verschiedene Dateigrössen vorliegen)
- "Related Searches" wurde erweitert. Ein Client kann mehrere Dateiprüfsummen bei der "Related Search"-Anfrage angeben.
- Eine neue Höchstpuffer-Einstellung wurde eingeführt, um den Speicherverbrauch bei Netzwerküberlastung zu begrenzen.
Neu in Version 17.13 (10. September 2006):
- Verschleierungsprotokoll (von eMule0.47b): Nicht wirklich ein Geheimkode, aber schonmal... Beide TCP-Sitzungen und UDP-Nachrichten können verschleiert werden, um Filterung und Schnüffeleien zu umgehen.
Neu in Version 17.12 (5. August 2006):
- Fehlerkorrekturen
- "Related Searches" versagten in 17.11
- Ein böser (aber seltener) Fehler (wurde mit den grossen Änderungen in 17.11 eingeschleppt) konnte zu Abstürzen führen.
- Verbesserte Unterstützung von "ed2khistory"
Neu in Version 17.11 (29. Mai 2006):
Neu in Version 17.10 (12. April 2006):
- Hotfix: Unter gewissen Umständen konnte ein Publish-Paket einen eServer-Core-Dump herbeiführen. (Aus verständlichen Gründen können darüber keine genaueren Einzelheiten mitgeteilt werden.)
- Ein neues Indexaussehen kann etwa 12 Bytes Speicher pro Datei einsparen. Ausserdem wird dadurch die Suche beschleunigt.
- gcc-4.1.0
Neu in Version 17.9 (20. Januar 2006):
- Hotfix: ein Suchfehler wurde in 17.8 eingeschleppt
Neu in Version 17.8 (19. Januar 2006) :
- Unterstützung für große Dateien im eD2k-Netzwerk (Größe > 4GB), aber Clients brauchen emule 0.47a. Alte Clients werden immer noch unterstützt.
- Übergeht alte eserver (Versionen < 17.6)
Neu in Version 17.7 (16. September 2005):
- Unterstützt Suchanfragen nach mehreren Dateiendungen, unterstützt die Operatoren not or ! in den Dateiendungen (wie "zip,rar,cbz,cbr" oder "!wme,!wma" or "not wme")
- Netzwerkbandbreite: Es werden weniger Pings an die Clients geschickt. (berücksichtigt die von den Clients empfangenen Daten, über die sie uns mitteilen, daß sie noch auf dem Socket vorhanden sind.)
berücksichtigt ebenfalls, daß an Low-ID-Clients eine Lowidnachfrage geschickt wird: huckepack im gleichen TCP-Paket ein 'ping'-Paket)
- Ignoriert alte eserver (Versionen < 17.5)
- zlib-1.2.3
Neu in Version 17.6 (5. August 2005):
- Unterstützung des features FILERATING (Bewertung einer Datei). Die User können nun jedes File nach einer Skala von 1 (sehr schlecht) bis 5 (außergewöhnlich gut) bewerten. Die Server sind in der Lage, Durchschnittswerte für die FILERATINGS in den Suchergebnissen auszugeben. Die nächsten Versionen von emule und shareaza sollten dieses Feature verwenden.
- Wegen des FILERATINGs ist der Speicherverbauch in etwa um den Faktor 4% höher, als in den vorherigen Versionen. Serverbetreiber sollten die user/file limits beachten.
- AMD64 Spezial 64bit Version (Verwendung von !3DNOW Befehlen zur Leistungssteigerung), läuft nicht auf EMT64 Intel cpus.
- Ignoriert alte eserver (Versionen < 17.4)
- edonkey lowid clients müssen mindestens edonkey 1.4.3 (oder neuere Versionen) verwenden.
- gcc 4.0.1 compiler.
- Ein country tag wurde zur server.met hinzugefügt (kosmetisch)
Neu in version 17.5 (10. Juli 2005):
-
Die Fähigkeit, 'related searches' (Eine Suche nach ähnlichen, 'artverwandten' Dateien.) auszuführen. - Die Syntax ist:
related::<Filehash> oder related:<Größe>:<Filehash>, oder ab emule 0.46b Rechtsklick auf das File, und dann -> 'related search'.
- Eine 'related search' gibt die Dateien aus, die neben derjenigen, die man gerade von den anderen Clients runterlädt, am häufigsten von ihnen angeboten werden. Sie kann sowohl zum Auffinden ähnlicher Dateien, als auch zum Erkennen von Unregelmäßigkeiten in der Dateiverteilung benutzt werden.
- Unterstützung des in emule 0.46b vorgestellten Filetyps 'emulecollection'.
- Sicherheitsfix: zlib 1.2.2.2 (Patch, um den Bug CAN-2005-2096 zu beheben.)
Neu in Version 17.4 (18. Mai 2005):
- Die Fähigkeit, genaue Suchen durchzuführen: Clients können Worte in '
oder " enthalten. (für " wird eine Folgeversion des emule benötigt). Beispiel: 'blank & john'
OR 'the the'
- Geringhalten der verfügbaren Filedescriptoren, um die Filedescriptorzuordnung unter Linux zu beschleunigen.
- Zur Speicherersparnis werden einige zu oft verwendete Worte nicht indiziert.
- Ignorieren alter eserver (Versionen < 17.3)
- gcc 4.0 compiler
- Einige bugfixes (in seltenen Fällen konnte eine segmentation violation auftreten)
Neu in Version 17.3 (15. Februar 2005):
- ZLIB auf zlib-1.2.2 aktualisiert: Frühere Versionen sind verwundbar (Denial Of Service-Zustand).
- Überprüfung, ob ein angebotenes File mit der bekannten Filegröße übereinstimmt. Etliche schadhafte oder böswillige Clients versuchen, das Netzwerk zu schädigen.
- Änderung des eD2k-Protokolls, damit die Clients uns die Größe des Files mitteilen, das sie runterladen, und nicht nur den Filehash.
- Das Semikolon ; ist ein Worttrenner in Filenamen.
- Etwas Code (für x86, 32bits und 64bits) zur Beschleunigung der Suchfunktion.
- Schickt ein CT_EMULE_VERSION tag im Hello-Frame, um ein von eMule versendetes Paket einzusparen (EMULEINFO).
Neu in Version 17.2 (5. Januar 2005):
- Einige Würmer und anti-p2p-Robots öffnen *viele*
Verbindungen zu den Servern, um deren Speicher mit nutzlosen Daten zu fluten. Wir begrenzen nun die Anzahl von Clients mit der gleichen IP. Dies erfolgt über den neuen Parameter max_clients_per_ip
- Fehlerkorrektur
bei der Suche nach Video- und Audiodateien (nicht irgendwelche)
- Fehlerkorrektur
im community-feature
Neu in Version 17.1 (1. Dezember 2004):
- Unicodeunterstützung: Die Mehrzahl der Clients verwendet UTF-8-kodierte Filenamen bei deren Bekanntgabe. - Es ist demnach an der Zeit, auf Unicode umzustellen.
- Unicodeunterstützung: Begrenzte Unterstützung füür Groß-
und Kleinschreibung & accents (#U00C0 to #U00FF).
- Unicodeunterstützung: Echtzeitumwandlung von CP949-kodierten Strings (Koreanische
Codepage/locale) auf UTF-8
- Unicodeunterstützung: Unterstützung für Groß- und Kleinschreibung
des Kyrillischen Zeichensatzes (#U0410 to #U044F)
- Suchergebnisse können ein neues tag verarbeiten: #LASTSEEN, das die letzte komplette Sichtung des Files auf dem Server in Sekunden angibt.
- Unterstützung des ip-to-country.csv-Files, um statt eines einheitlichen Willkommenstextes für alle Clients (welcome[]-Message) einen länderspezifischen Willkommenstext (welcome.xx) senden zu können. Man kann das File mit dem eServerkommando "loadipcountry ip-to-country.csv" neu laden.
- Unterstützung des neuen ed2khistoryservices.
(Der Server behält einen #ASKED-counter für jedes File.)
- Spart ein TCP-Paket für den High-ID-Test beim
Verbinden mit dem Client.
- Fängt HTTP-Anfragen ab, die an den eServerport gesendet werden. (Anzeige einer userfreundlichen Seite, auf der die IP angezeigt wird.) Siehe dazu auch den Parameter http_trace.
- Razorback2 kann mehr als 900.000 Clients versorgen.
Neu in Version 16.49 (30. August 2004) :
- Fehlerkorrektur der ia32 linuxversionen (32bits). Einige Suchanfragen wurden nicht richtig
ausgeführt. Dieser Bug trat in 16.46 auf.
Neu in Version 16.48 (20. August 2004):
- Wenn eine Verbindung in die blacklist geriet, wurde die Meldung "ERROR : Connection refused. Your IP is currently blacklisted." nicht richtig verschickt.
- Fehlerkorrektur bei der Verarbeitung der ipfilter.dat. Einige Netzbereiche wurden nicht berücksichtigt.
- A
flush of socket buffers was added to save some kernel memory for
sockets in CLOSE-WAIT state.
Neu in Version 16.47 (19. Juli 2004):
- Verbesserungen der Suchfunktion.
- Schutz gegen Servermißbrauch durch Shareaza. Shareazauser sollten mindestens auf die Shareazaversion 2.0.0.5 aktualisieren.
- Schutz gegen veraltete amule/xmule/edonkey-Programme, die zwar vorgeben, zlib zu verwenden, allerdings unkomprimierte Daten zum Server schicken. edonkey-user sollten auf Version 0.53.21 oder
höher aktualisieren.
- Schutz gegen Fakeclients. Wenn Du wissen willst, wie Fakeclients Deinen Server infizieren, tippe folgendes Kommando in der Serverkonsole ein: "vc 38.0.0.0/8"
- ipfilter.dat-Unterstützung, um den Server von den bekannten IP-Bereichen freizuhalten, die von anti-p2p-Gesellschaften benutzt werden. Dazu kann der Serveradmin im aktuellen Verzeichnis entweder seine eigene ipfilter.dat, oder die von Pawcio verwenden:
http://emulepawcio.sourceforge.net/nieuwe_site/Ipfilter_fakes/ipfilter.dat
Die ipfilter.dat kann mit diesem Kommando neu geladen werden:
"loadipfilter ipfilter.dat"
Neu in Version 16.46 (26. April 2004):
- Protokollerweiterung:
Tags compression. Sollte von eMule 0.42f verwendet werden, um Bandbreite und Kompressionsanforderungen einzusparen.
- Unterstützung von Suchen über den Filehash. Akzeptiert verschiedene Links
(ed2k://|file|name|Filegröße|Hash),
(ed2k:Filegröße:Hash), (magnet:?xt=ed2k:Hash), ...
- Suchoptimierung: Suchanfragen verbrauchen die Hälfte der CPUleistung gegenüber der Vorgängerversion.
- Bugfix:
Ein Bug, der in der 16.45 auftrat, ist nun beseitigt.
Neu in Version 16.45 (31. März 2004) :
- Tuning
für Multiprocessormaschinen (SMP) : TCP worker threads (see tcpthreads
param) and fine grained locks to reduce lock contention.
- Portierung
auf x86_64 Linux (für AMD64, sowie vielleicht auch
demnächst für Intel IA32E ). Der eserver ist von Haus
aus ein 64bit-Programm, das 32GB RAM verwenden kann.
- Razorback
(Dual Opteron, 6GB Speicher) verwaltete mit dieser Version 600.000
Clients.
- Um
Speicher zu sparen, werden einige zu allgemeine Suchbegriffe nicht mehr
indexiert (avi,jpg,the,avi,zip,rar,mpg), während die Suche
weiterhin wie bisher klappt.
- Zum
Quellenspeichern wird ein neues Schema (chunks) verwendet (10 bytes pro
'file' statt 16). (Besten Dank an tecinv & Lobuz vom Emuleforum
für diesen Hinweis.)
- Ein
neues Speichermanagement, um eine Fragmentationshäufung zu
vermeiden, sowie der neue Parameter hugefile2.
- Ein
neues Feature: COMPLETE file. Aktuelle Clients (eMule 0.42e)
können während des Publizierens mitteilen, ob ein
geshartes File komplett ist, oder nicht. Die Suchergebnisse enthalten
diese neue Information.
- In
Suchanfragen ist der Buchstabe ñ ein Alias für den
Buchstaben n. Bei einer Suche nach 'espana' wird demnach auch
'españa' gefunden.
- Der
Server kann auf weiteren TCP-'Hilfs'ports lauschen, um die durch einige
Internetprovider betriebene Filterung zu umgehen. Siehe dazu auch den
Parameter auxportslist.
- Die
Standard-IP für jigle wurde in 62.2.249.5 geändert.
(ja, wir wissen, daß jigle momentan off ist.)
- Der
neue Parameter opIP
gestattet es nun auch Serverbetreibern, einen eD2k-Clienten laufen zu
lassen.
- ZLIB
wurde auf Version 1.2.1 aktualisiert.
- Portierung
auf die IBM
S390-Architektur. (linux
powered).
Neu in
Version 16.44 :
- Parameter
zur Einrichtung von TCP_QUICKACK und TCP_DEFER_ACCEPT unter Linux
hinzugefügt, s. dazu quickack
und defer_accept.
- Der
Parameter maxnozlib
kann zlib-Clients etwas mehr Priorität beim Login zukommen
lassen.
- Ein
neuer, extra dafür hinzugefügter thread
übernimmt die Unpublish operations, wenn der Client sich vom
Server trennt. Netzwerkfehler lassen den Server nicht mehr
"einfrieren".
- Bessere
Multiprozessor use. (aber noch nicht perfekt: wird in 16.45 beseitigt
sein.)
- Erkennen
schlechten Verhaltens von LOWIDclients, die Rückfragen an
andere LOWID clients senden. (emule BUG, beseitigt in 0.30d)
- Implementierung
der OVERNET BACKCALL die an UDP port 4661 gesendet wird.
- Erkennen
schlechter frames, die an falsche Ports geschickt werden. (UDP 4669).
(shareaza bugs, mldonkey, ...)
- Erkennen
eines shareazabugs, der btih und ed2k-Protokoll falsch mischte.
- Support
für UDP LOWID-Anfragen hinzugefügt.
- Speicherersparnis
(keine Indexierung von Schlüsselwörtern mit einer
Länge < 3, s. dazu den Parameter minkeylength)
- Einige
Optimierungen der Suchfunktion und in anderen Bereichen.
- Portierungen
auf Maschinen, die nur select() und nicht
poll(),epoll,kqueues,/dev/poll haben. ( MAC OS X, Darwin 6)
- Bugfixes.
- Der
neue Parameter connIP
kann verwendet werden, um ausgehende TCP sockets an eine einzelne IP zu
binden.
- Der
Server kann automatisch eine server.met schreiben, s. dazu den
Parameter autoservlist.
- Einige
Neuigkeiten über Razorback: Die durchschnittliche
framegröße beträgt 27.2 bytes. Der Server
kann nun 340000 Clients verwalten.
Neu in
Version 16.43 :
- Ein
weiterer Bugfix für Unixrechner ohne epoll/poll/kevent, wo
standard poll() verwendet wird.
Neu in
Version 16.42 :
- Bugfix
für Unixrechner ohne epoll/poll/kevent, die den standard
poll() verwenden.
Neu in
Version 16.41 :
- Einige
Neuigkeiten von Razorback: 25% seiner Clients benutzen
zlib-Kompression, und die durchschnittliche
UDP-Framegröße beträgt 20,2
Bytes statt 17,8 Bytes vor einer Woche.
- Ein
Performanceproblem für Rechner ohne Epoll wurde
behoben. Danke an Tim French für den Problembericht und den
ssh-Zugriff
auf seinen Server.
- Ein
Blackholefeature wurde integriert, und kann einen externen
Daemon
verwenden, um einige Firewallregeln hizuzufügen oder zu
löschen: Einige
Clients versuchen, sich einmal pro Sekunde auf einem Server
einzuloggen. Ich habe mehr als 10000 Versuche innerhalb einer Stunde
beobachtet, die alle von einem einzigen Client kamen.
- Ein
Whitelistfeature, um einige IPs oder Netzbereiche
zuzulassen, die von einigen bedauernswerten NAT-Usern verwendet
werden... Dieses ist kombiniert mit einer 'lowid only' Liste, um
Backdoortests bereits bekannter IPs/Netzbereiche zu verhindern.
- Durch
den neuen Parameter (msgrandomport=true)
kann den Server Mitteilungen an Clients senden, die den Standardport
4662 verwenden.
Neu in
Version 16.40 :
- Komplett,
von Grund auf, in der Programmiersprache C neu
geschrieben. Sehr hohe Performance, wie erwartet (280.000 Benutzer auf
einer Linux-Maschine mit 4Gig RAM).
- WIN32
port (Verwendet native asynchronous winsock calls : sollte ebenfalls
hohe Performance bringen.
- 64
bit Zielrechner (IBM AIX V5.1, Tru64 5, HPUX 11, Solaris, linux x86_64,
...)
- Erweiterung
des UDP-Protokolls, um den Clients das
Anfragen von vielen MD4 Hashwerten aufeinmal zu erlauben, anstatt
für
jeden MD4-Hash ein UDP-Paket zu senden. (Sollte den UDP-Datenverkehr um
den Faktor 2 oder 3 senken). Die Erweiterung des UDP-Protokolles um
viele Suchanfragen auf einmal zu senden.
- Die
Erweiterung des UDP-Protokolles um viele Suchanfragen auf einmal zu
senden.
- zlib
Unterstützung, um große frames, welche zwischen den
Clients ausgetauscht werden, zu komprimieren.(Shareliste,
Suchergebnisse...)
- Unterstützung
von Dateien > 2Gig.
- Unterstützung
von FreeBSD kqueue (FreeBSD vergleichbar mit Linux epoll)
- Unterstützung
von Solaris/HP /dev/poll
- Möglichkeit
eine MD4 Hashsuche durchzuführen. (um
zusammengehörende tags einer Datei zu empfangen( Name,
Größe, Typ,...)).
- Besseres Serverlistenhandling.
- Erkennung von veralteten Emuleversionen.
- keepalivepings sind meist in anderen Dienstnachrichten enthalten: kleinere TCP
Bandbreite (benutzt weniger IP-Pakete).
- Adaptative Pingverzögerungen um NAT Benutzern evtl. helfen zu können. (Die zu niedrige idle timeouts haben.)
- ...viele andere Sachen...
Sie können alle verfügbaren Parameter und deren aktuelle Werte auflisten, wenn Sie folgenden Eserverbefehl benutzen:
print
Alle diese Parameter können Sie in der donkey.ini verändern, und viele davon sogar auch dynamisch in der Serverkonsole. Anmerkung: boolsche Werte können false, true, 1, oder 0 sein.
LOWIDenable
(boolean = TRUE/FALSE)
Wenn true , können LOWID-Benutzer sich einloggen. Vorgabe: true
LOWIDpercent (integer = Ganzzahl)
Maximaler Prozentwert von Clients mit LOWID. Warnung: Zuviele LOWID-Benutzer einloggen zu lassen, ist eine sehr schlechte Idee, weil niemand von denen Quellen bekommt. Es wird empfohlen, nicht mehr als 33% zuzulassen. Vorgabe: 20.
autoservlist
(pathname)
Wenn gesetzt, kann der Server (etwa) alle 225 Sekunden eine server.met
der ihm bekannten working Servers schreiben.
Vorgabe : nichts
auxportslist (eine Liste von Portwerten))
Neu in 16.45
Der Server kann auf tcp-auxports (tcp-Hilfsports) lauschen. Dieses Feature wurde eingebaut, um einigen Usern das Umgehen der möglicherweise von ihren Providern verwendeten Filtern zum Blocken bekannter Standardports (4661, 4242) zu ermöglichen. Standardwert: keiner
Nur aktuelle Clients sollten diese auxports verwenden, weil wir sie bitten, die auxports nicht an andere Clients weiterzugeben, da wir keinen zusätzlichen UDP-Traffic empfangen wollen.
Diese Liste kann dynamisch erweitert werden.
Beispiel:
auxportslist=80,443,25,21
blacktime
(integer)
Die Anzahl in Sekunden der Blacktime (=Bannzeit): Wenn
ein Client blacklisted ist (weil er zu viel Suchanfragen an den Server
gestellt hat), steht er für die Dauer in der Blacklist.
Vorgabe: 3600 .
blocsize
(integer)
Die Anzahl von Bytes der Speicherbelegungseinheit. Verändern
Sie diesen Wert nicht, weil es die Größe der
HugeTLB-Seite ist (4Mo). Vorgabe = 4194304.
bverbose
(boolean)
Wenn true, loggt der Eserver (in der Konsole und/oder in der Logdatei)
die
geblacklisteten IP´s und "doppelten Verbindungen" mit:
Vorgabe: false .
connIP
(IP-Addresse)
Wenn ein Server mehr als eine IP hat, können Sie eine zweite
IP benutzen, um die ausgehenden sockets zu bündeln. Diese
benutzt der Server, um den LOWID/HighID Test bei neuen Clients
durchzuführen. Benutzung von unterschiedlichen IP?s kann
einige schlechte Clients abwehren, welche falsche Informationen
übermitteln (Hash-Klauer / Hash-Stealers).
console
(boolean)
Wenn
der Eserver eine Nachricht ausgibt, wird diese in der Konsole
angezeigt, aber nur wenn der Wert "true" ist und/oder wenn bei der
logFile ein "true" steht. Standard: true
Wenn ein Server mehr als eine IP hat können Sie eine zweite IP
benutzen um die ausgehenden sockets zu bündeln. Diese benutzt
der Server um den LOWID/HighID Test bei neuen Clients
durzuführen. Benutzung von unterschiedlichen IP?s kann einige
böse Clients abwehren, welche falsche Informationen
übermitteln (Hash-Klauer / Hash-Stealers).
dcache_line
(integer)
Diese
kontrolliert die Ausrichtung der Speicherblöcke die der
Eserver
benutzt, um Dateibeschreibungen zu speichern. Versucht die
Größe des L1
Caches auszunutzen um die Performance zu unterstützen, kann
aber mehr
RAM verbrauchen. Die Größe des L1 Cache von PII und
PIII ist 32 Byte.
Für Athlons und P4 sind es 64 Byte. Vorgabe:
Systemabhängig.
defer_accept
(integer)
Der Linuxkernel hat ein DEFER_ACCEPT-Feature, das den accept() eines
neuen TCP stream verzögert. Die horchende Anwendung wird nicht
eher über eine neue Verbindung benachrichtigt, bis nicht
einige Daten darüber empfangen wurden. Der Parameter
defer_accept ist die maximale Verzögerung zwischen
Verbindungsaufbau und den ersten Daten.
Vorgabe = 10 Sekunden.
desc
(string)
Das ist die Serverbeschreibung. Diese wird an die Clients gesendet.
Vorgabe: eserver .
filter[]
(Filterausdruck) Aufstellung
von Filterregeln welche sich auf die freigegebenen Dateien der Clients
wenden. Bitte beziehen Sie sich für mehr Details auf die
Dserverdokumentation.
Beispiel von Filtern:
filter[0]=(.part.met)
filter[1]=(.part.stats)
filter[2]=(#FORMAT met)
filter[3]=(#FORMAT part)
filter[4]=(#FORMAT dll)|(#FORMAT sys)
fwcommand
(Pfadname)
Dieser Parameter, erstmalig in Version 16.40 vorgestellt, gibt
einen Filenamen an. Dieses File wird aktualisiert, wenn der eserver
feststellt, daß ein Client in einer Endlosschleife von
Permanent-Logins
hängt.
Wenn eine IP in die 'bad list' aufgenommen wurde, wird eine Zeile
ähnlich dieser hinzugefügt:
Wed
Oct 8 16:07:06 2003
DENY
172.16.0.156
Wenn der Server meint, daß der Client wieder akzeptiert
werden kann:
Wed
Oct 8 16:07:06 2003
ACCEPT
172.16.0.156
Dieses
File kann von einem Daemon, der die Neueinträge darin
ausliest, verwendet werden, um einige iptables/ipfw/oderandere-Befehle
auszuführen.
Beispiel
für iptables bei Linux:
Zu
Beginn (firewall setup) initialisiere die SYN-chain und füge
sie in die INPUT-chain ein, und zwar nur für SYN TCP Pakete.
iptables
-N SYN
iptables -I INPUT -p tcp --dport 4661 --syn -j SYN
Nach Neustart des eservers oder des Daemons die Regel in der SYN-chain
löschen:
iptables
-F SYN
Dann, wenn ein 'DENY' vom Server verschickt wurde, eine Regel in die
chain einfügen:
iptables
-I SYN -s
the_IP -j DROP
Wenn ein 'ACCEPT' vom Server gesendet wurde, die Regel entfernen:
iptables
-D SYN -s theIP
-j DROP
Man kann auch clevere iptables-Module, wie RECENT, ausprobieren,
die bei höherer IP-Anzahl schneller sind. (Hashtable statt
Liste).
hardLimit
(integer)
Wenn
ein Client versucht mehr Dateien freizugeben als im hardlimit erlaubt
sind, wird der Server ihn trennen ( bevor er die ganze Liste von ihm
empfängt). Das ist so um mehr Bandbreite einzusparen, weil
einige faule
Leute íhre ganze Festplatte freigeben. Vorgabe: 4000 .
Schauen Sie in die softLimit
Parameterbeschreibung.
http_trace
(boolsch) (Neu in eserverversion 16.50)
Wenn auf true gesetzt, schreibt der eServer HTTP-Anfragen in das File
"loghttp". Standard = false
hugefile
(string = Zeichenkette)
(Linux 2.5/2.6 ausschließlich) : Der
Pfad der Datei innerhalb des hugetlbfs-Systems. Dieses erlaubt dem
Server 4Mo Seiten zu belegen, um hardwarebedingte TLB
Verluste zu
reduzieren. Die normale Seitengröße auf einem ia32
ist 4kbyte, welche
viel zu wenig für ein Programm ist welches sehr viel Speicher
nutzt.
Beipiel der Benutzung:
Überprüfen Sie ihre Kernelkonfiguration. Sie sollten
haben:
CONFIG_HUGETLB_PAGE=y
CONFIG_HUGETLBFS=y
Dann können Sie hugetlbfs mounten : (in der Startdatei,
gewöhnlich /etc/rc.d/rc.local)
mkdir /huge
mount -t hugetlbfs none /huge
echo 100 >/proc/sys/vm/nr_hugepages
Dann in der donkey.ini einfügen :
hugefile=/huge/eserver
Anmerkung : Bei HPUX, Solaris, Windows2003, versucht der Eserver
automatisch große Seiten zu reservieren.
Bei Windows2003, muss das SE_LOCK_MEMORY Privileg
durch den Benutzer gewährleistet sein, BEVOR er den Server
startet.
Wenn nicht wird der Server auf die Benutzung von normalem Speicher
zurückgreifen (keine 4Mo große Seiten).
hugefile2
(string)
Since 16.45, the HugeTlb pages may be used for the heap storage too.
(linux 2.5/2.6 only) : The path of a file located in a hugetlbfs file
system.
jigleIP
(IP address)
Die IP Adresse von jigle um blacklisting zu vermeiden http://www.jigle.com/.
Vorgabe: 62.2.249.5
listenIP
(IP address)
Der Server kann die TCP Verbindungen einer bestimmten Adresse
abhören, anstatt alle IP´s des Hosts.
Vorgabe: jede Adresse (0.0.0.0)
listen_backlog
(integer)
Der abgehörte Backlog. Der
Eserver hat einen sehr hohen Wert, ist aber geeignet für jeden
Server
geeignet. Sie können den Wert aber abändern. Vorgabe:
1024 .
Anmerkung: Bei Linux sollten Sie /proc/sys/net/ipv4/tcp_max_syn_backlog
überprüfen: globales Systemlimit.
logFile
(boolean)
Wenn
true gesetzt ist speichert der Server alle Ereignisnachrichten in die
"log" Datei die im selben Verzeichnis liegen wird. Vorgabe: false
login_timeout
(integer)
Die
Zeit in Sekunden, welche der Server mit dem Backfoortest
wartet, um ihn
dann erfolgreich auszuführen. Der Backdoortest ist eine
bestehende
Verbindung vom Server zum Clienten auf Port 4662, um zu checken, ob
dieser
eine HighID oder ein LOWID hat. Vorgabe: 20
maxClients
(integer)
Die maximale Anzahl von Benutzern auf diesem Server. Vorgabe: 1024
max_clients_per_ip
(integer)
Begrenzt die Anzahl der Clients, die auf der gleichen IP reinkommen. -
Standardwert = 12
Der Sinn dieses Parameters ist es, einige Würmer, Viren und
Robots, die zu viele Verbindungen öffnen, vom Server
fernzuhalten,
um ihn nicht noch unnötig zu belegen.
max_frame_size
(integer)
Wenn
ein Client einen Rahmen (frame) mit mehr als in max_frame_size
eingetragen ist sendet, dann trennt der Server die Verbindung zu ihm.
Vorgabe: 250000
max_slimit_nb_cell
(integer)
Dies begrenzt die maximale Anzahl von IP´s, die die
slimitmodule verwalten können. Vorgabe: 262144
maxnozlib
(integer)
Eine Neuerung, die in Version 16.44 eingeführt wurde. Erreicht die Anzahl der Clients den
Höchstwert maxnozlib, können sich nur noch zlibunterstützende Clients einbuchen.
Vorgabe = 250000
max_string_size
(integer)
Dieses
ist die maximale Größe einer Zeichenkette. Einige
Clients senden sehr
lange Dateinamen. Die Server stutzen zu lange Zeichenketten. Vorgabe :
140
maxSearchCount
(integer)
Dies
ist die maximale Anzahl der Antworten die zurückgegeben werden
, welche
von einer Suchanfrage angefordert wurden (von einem verbundenen
Clienten). Vorgabe: 200
maxSearchCountz
(integer)
Das ist die maximale Anzahl der Antworten, welche eine Suchanfrage
angefordert hat (verbundener zlib Client). Vorgabe: 300
maxUDPSearchCount
(integer)
Dies
ist die maximale Anzahl der Antworten, welche eine Suchanfrage
angefordert hat ( von einem nicht verbundenen Clienten). Vorgabe: 20
maxVersion
(integer)
Eine
Clientsoftware hat eine Versionsnummer. Clients die eine Versionsnummer
haben, die größer ist, als der Wert, der in
maxVersion
steht,
können sich nicht
einloggen. Vorgabe: 2000
maxservers
(integer)
Legt
die maximale Anzahl der Server fest, die der Server in seine
Serverliste
aufnehmen darf. Um sich vor Denial Of Service Attacken zu
schützen.
Vorgabe: 4096
maxstrangers
(integer)
Zusammen mit dem nickcommunity
Parameter genutzt. Nicht mehr als 'maxstrangers' Benutzer (fremde) die
nicht der Gemeinschaft (Community) angehören sind berechtigt
sich einzuloggen. Vorgabe: 1000000
minEVersion
(integer)
Zusammen mit dem trackemule
Feature genutzt. Die älteste Emuleversion die der Server
erlaubt. Die Emuleversion ist ein Hexadezimalwert zwischen 00 und FF.
Vorgabe: 0x24
minVersion
(integer)
Eine
Clientsoftware hat eine Versionsnummer. Clients, die eine
Versionsnummer haben, die kleiner ist, als der Wert, der in minVersion
steht,
können sich nicht
einloggen. Vorgabe: 59
minkeylength
(integer)
Vorgabe = 3. Dies ist die Mindestlänge eines
Schlüsselwortes. Der Server bildet Indexe aus den in den
Dateinamen enthaltenen Schlüsselwörtern, um eine
schnellere Suche durchführen zu könnnen.
Da Indexe viel RAM benötigen, kann der Server 16.44 kurze
Worte ignorieren.
mmap_hint
(integer)
Ein
Hinweis für den Server um 4Mo Seiten im virtuellen Speicher zu
reservieren. Vorgabe: 0 (no hint). Bei einer ia32 Linuxversion kann man
mmap_hint=0x80000000 benutzen. Razorback benutzt 0x78000000 .
msgrandomport
(boolean)
Einige Provider (ISPs) filtern Port 4662. Um den Usern zu helfen,
besteht die Möglichkeit, sie darauf hinzuweisen,
gegebenenfalls einen
anderen Port als 4662 zu verwenden.
Bei der Einstellung msgrandomport=true verschickt der Server
automatisch eine entsprechende Mitteilung an Clients, die den
Standardport benutzen.
In der Grundeinstellung für MsgRandomport lautet diese Meldung:
WARNING : Please try to use a random port instead of 4662, because a
lot of ISP have filters on 4662 port. Any number between 80 and 65530
should be OK. Thanks
(zu deutsch:
WARNUNG: Bitte versuche, einen anderen Port als 4662 zu verwenden, weil
viele Provider Port 4662 begrenzen. Irgendeine Portnummer zwischen 80
und 65530 sollte in Ordnung sein. Danke.)
name
(string)
Der Name Ihres Servers, der an die Clients gesendet wird. Vorgabe =
eserver 16.40
nbuserIP
(IP address)
Der
Server hat einen speziellen TCP Empfänger an einem Port
welcher nbuser
erlaubt Informationen zu sammeln. Standardmässig ist der Port
an
127.0.0.1 (localhost) gebunden, sodaß sich nur ein lokaler
nbuser zum
Eserver verbinden kann. Sie können aber auch externen Zugriff
erlauben. Vorgabe = 127.0.0.1
nbuserport
(integer)
Der Port des nbuser Empfängers. Siehe oben. Vorgabe = 5656
ncpus
(integer)
Dieser
Wert ist beim Start des Eservers belegt und gibt die Anzahl der
CPU´s
des Hosts an. Wird nicht wirklich von dem Programm benutzt. Siehe udpsearchers.
Vorgabe = Anzahl der CPU´s des Hosts.
nickcommunity
(string)
Bestimmt
den string, den ein Benutzer in seinem Nicknamen haben muss, um sich
überhaupt beim Eserver einloggen zu können. Wird
zusammen mit maxstrangers
verwendet. Vorgabe: kein Eintrag (öffentlicher Server)
Achtung: Der Eintrag des communitystrings muß
in Kleinbuchstaben erfolgen, um wirksam zu werden!
nickname
(string)
Wenn
ein Backdoortest am Port 4662 des Clienten durchgeführt wird
verkörpert
der Eserver einen User. Dieser Parameter ist der Nickname des
getäuschten Benutzers. Vorgabe: eserver
opIP
(IP address)
If the server operator wants to use a ed2k client and connect to his
own server, he may have a problem because of a private IP. The opIP
parameter asks the server to replace the client'IP by the
listenIP/thisIP of the server. That way, when other client want to
contact the operator, their incoming connections can be NATed to the
operator.
noepoll
(boolean)
(Nur
Linux) Wenn auf true gesetzt dann benutzt der Server kein epoll
Feature. Ich weise Sie streng darauf hin dieses NICHT zu machen, weil
Ihre Linuxversion einen Fehler in dieser Funktion hat. Vorgabe = false
Bei Linux-2.4.21 oder Linux-2.4.22, können Sie den
Patch von Davide Libenzi
versuchen, um das epoll Feature hinzuzufügen.
noudpslowsearches
(boolean)
Sie
können den Zugriff auf die komplexe Suchfunktion sperren
welche von
abgelehnten Benutzern stammen. (Clients oder anderen Servern). Komplexe
Suchen scannen die Komplette Dateiliste, anstatt den
Schlüsselwortindex
(keywords) zu benutzen. Vorgabe = false
ping_delay
(integer)
Der
Server sendet periodisch ein Frame, welches "ping" aufruft und die
Anzahl der Benutzer und Dateien, die er hat enthält, und
dieses
an alle
anderen seiner Benutzer sendet. Das ist zum
überprüfen von jedem lebendigen TCP Sockel ( Benutzer
die ihre Computer
ausschalten ). ping_delay ist die maximale Verzögerung
zwischen
Suchpings. Vorgabe = 600
port
(integer)
Das ist der vom Server verwendete TCP Port. Vorgabe = 4661
public
(boolean)
Wenn auf true gesetzt, kündigt sich der Server selbst als
öffentlicher
(public) Server bei anderen Servern an. Dieser Parameter hatte in der
Vergangenheit noch seine Berechtigung, ist aber heutzutage nutzlos,
weil der Client automatisch Server in seine Liste aufnehmen kann,
sobald sich ein anderer Client zu ihm verbindet. Vorgabe = false
quickack
(boolean)
Wenn auf true gesetzt, verwendet der Server die
setsockopt(TCP_QUICKACK), um den Linuxkernel zu veranlassen, die TCP
ACK-Pakete zu verzögern, statt in den quickackmodus zu gehen.
Dies sollte Bandbreite sparen.
Vorgabe = true.
search_trace
(boolean)
Wenn auf true gesetzt, listet der Server in der/dem console/log
die gehandelten Suchanfragen auf.
Vorgabe = false.
seedIP
(IP address)
Die
IP Adresse eines anderen Servers. Dies wird benutzt wenn keine
"serverList.met" vorhanden ist (oder wenn diese leer ist) um sich eine
Serverliste zu beschaffen. Vorgabe: leer (nix)
seedPort
(integer)
Der Port des Seed Server. Vorgabe= 4661
slab
Gibt Ihnen weitere (evtl. nützliche)
Infos über einige Standardeinstellungen und aktuell benutzte
Werte
einiger wichtiger Parameter.
slimit_tableSize
(integer)
Die Größe der Hashtabelle, welche im Slimitmodul
benutzt wird. Vorgabe = 4021
softLimit
(integer)
Wenn
ein Client versucht mehr Dateien als im softLimit angegeben
freizugeben, sendet ihm der Server eine WARNnachricht und ignoriert
seine anderen Dateien. Vorgabe: 1000
Siehe auch hardLimitParameterbeschreibung.
tableSize
(integer)
Die
Größe der Hashtabelle, welche zum speichern der
Dateinamen verwendet
wird. Sie sollten den Wert aber nicht setzen, weil der eserver den Wert
bei Bedarf selbsttätig dynamisch erhöht.
tcpthreads
(integer)
Die Anzahl der worker-threads, um tcp-Anfragen (verbundene Clients) zu
verarbeiten. Siehe auch ncpus.
Kann dynamisch in der eServerkonsole geändert werden.
Vorgabe = Anzahl der CPUs des Hosts.
tcp_rbuffersize
(integer)
Der
TCP/IP Stack Ihrer Maschine reserviert für jeden Sockel eine
maximale
Größe um eingehende Nachrichten zu speichern. Sie
können den Wert auch
ändern.
Vorgabe = 0 (Systemstandard)
(BeiLinux überprüfen Sie bitte
/proc/sys/net/ipv4/tcp_rmem)
tcp_xbuffersize
(integer)
Der TCP/IP Stack ihrer Maschine reserviert für jeden Sockel
eine maximale Größe um
ausgehende Nachrichten zu speichern. Sie können den Wert auch
ändern.
Vorgabe = 0 (Systemstandard)
(Bei Linux überprüfen Sie bitte
/proc/sys/net/ipv4/tcp_wmem)
thisIP
(IP address)
Dies ist die IP des Servers.
Anmerkung:
Der Eserver kann die IP nicht automatisch finden! Sie MÜSSEN
die
korrekte IP eintragen, wenn Ihr Server öffentlich ist.
threads
(integer)
Überholte Parameter. Die Anzahl der Threads (Fäden)
im Eserver ist fixiert.
Ein Thread empfängt UDP Anfragen.
Ein oder zwei Threads handhaben UDP Suchen. (siehe udpsearchers)
Ein Thread akzeptiert neu eingehende Verbindungen.
Ein Thread handhabt die Loginphase von Clients.
Ein Thread übernimmt den Konsolendialog.
Ein Thread bewältigt den gesamten TCP Traffic (Anfragen von
verbundenen Clients)
Ein Thread handhabt die "nbuser" Anfragen.
trackbademule
(integer)
Eine Bitmaske von flags. Siehe minEVersion
Parameter. Vorgabe = 30
trackemule
(integer)
Wenn auf 1 gesetzt spürt Eserver die Emuleverion auf. Standard
= 1
type
(string)
Zwei Werte sind möglich :
key (Standard) : Der Server macht Indexe aus den
Schlüsselwörtern der Dateinamen. Suchen sind schnell.
substring : Der Server nutzt keine Indexe. Suchen sind langsamer.
udp_rbuffersize
(integer)
Der UDP/IP Stack ihrer Maschine reserviert für jeden Sockel
eine maximale Größe, um eingehende Nachrichten zu
speichern. Sie können die Größe
verändern. Vorgabe = 0 ( Systemstandard).
udp_xbuffersize
(integer)
Der UDP/IP Stack ihrer Maschine reserviert für jeden Sockel
eine maximale Größe, um ausgehende Nachrichten zu
speichern. Sie können die Größe
verändern. Vorgabe = 0 ( Systemstandard).
udpsearchers
(integer)
Die Anzahl der Threads, die den UDPAnfragen zugeordnet werden. Vorgabe :
1 Einzelprozessormaschine, 2 bei SMP Maschinen.
verbose
(boolean)
Wenn auf true gesetzt, logt der Server einige Nachrichten mit ( z.B.
Client login/logout). Vorgabe = false
warnfakes (integer) (Neu in 16.50)
Immer, wenn ein Client eine Datei anbietet, die in der fakes.txt steht, schickt der Server eine Warnmeldung mit dem Namen des FakeFiles an den User.
Dieser Parameter verwaltet die Anzahl solcher Meldungen. Standard 0.
welcome[#] (string)
Der Begrüßungstext. - Das sind die Nachrichten, die vom Server an jeden Client ausgegeben werden, nachdem er sich eingeloggt hat.
Zum Beispiel:
welcome[0]=Willkommen auf meinem Server.
welcome[1]=Sie sind nun mit dem eD2k Netzwerk verbunden.
welcome[2]=Viel Erfolg!
Neu in 16.50: Falls ip-to-country.csv verwendet wird, prüft der Server, ob im Serververzeichnis eine welcome.xx existiert, (wobei xx der Ländercode des betreffenden Clients ist.) Falls ja, wird deren Inhalt statt welcome [] aus der donkey.ini ausgegeben.
Seit Einführung der ip-to-country.csv-Unterstützung hat man dadurch die Möglichkeit, den Clients angepaßte Begrüßungstexte in ihrer jeweiligen Landessprache senden zu lassen.
Man erstellt sich dazu für jede gewünschte Sprache eine lokalisierte Textdatei namens "welcome.xx" im Serververzeichnis, wobei xx durch das jeweiligs zutreffende zweistellige Länderkürzel aus der ip-to-country.csv zu ersetzen ist.
Für einen deutschsprachigen Begrüßungstext wäre dies demnach die Textdatei "welcome.de".
Wird eine für den einbuchenden Client passende, länderspezifische Datei im Serververzeichnis gefunden, so gibt der Server den darin befindlichen Text aus. Wird keine für die IP des einbuchenden Clients passende welcome.xx gefunden, so wird stattdessen wie gewohnt der Standardwelcometext aus der donkey.ini gesendet.
zlib_complevel
(integer)
Kompressionslevel welchen der Server gibt. Eine Ganzzahl zwischen 0
(keine Kompr.) und 9 (max. Kompr.). Vorgabe = 9
zlib_enable
(boolean)
Erlaubt dem Server zlib Kompression mit eingehenden Clients zu
benutzen. Vorgabe = true
Linux Kerneltuning:
Bei
großen Servern nicht vergessen, /proc/sys/fs/file-max. zu
erhöhen (Vorgabe = 8192).
Sie können diese Zeile an das Ende von /etc/sysctl.conf
anhängen (oder wenn sie schon existiert, dann
abändern):
fs.file-max=16384
Sie können stattdessen auch echo 16384 >
/proc/sys/fs/file-max
eingeben. (Allerdings geht der Wert dann nach einem Reboot verloren.)
Bei
Linux 2.2 Maschinen bitte nicht vergessen, die
/proc/sys/net/ipv4/route/max_size abzuändern, weil ein zu
kleiner Wert dort steht und einige Probleme verursachen kann.
echo
32768 >
/proc/sys/net/ipv4/route/max_size
Sie sollten ebenfalls die Linux 2.2 VM Einstellungen abändern
:
echo
"1024 2048 4096"
>
/proc/sys/vm/freepages
Linux 2.2 hat ein Limit im poll() System Aufruf : Weil es
kmalloc(nbhandles*8) Kerneldienst nutzt, es hat eine Begrenzung auf
16384 Dateien die es handeln kann. Also: Ein Eserver, der auf Linux 2.2
läuft kann nicht mehr als 16300 Benutzer haben.
Ein
letzter Hinweis noch: Wir empfehlen, das Programm mit einem Skript script.sh
zu starten: Es nutzt ulimit -n 8192 um die Anzahl der Dateien, die ein
Prozess öffen kann, zu verändern. Wenn Sie einen
Server für 10000 Benutzer planen, verändern Sie den
Wert auf 16384!
Benutzer,
die ihren Eserver als normaler Benutzer laufen lassen wollen (nicht als
root), sollten in /etc/security/limits.conf diese Zeilen
einfügen:
* soft nofile 32768
* hard nofile 32768
Hinweise
bezüglich anderer
Betriebssysteme:
Tru64 Unix 5.1 : limit von 65536 file descriptor per Prozess: Ein
Server kann nicht mehr als 64k users verwalten.
FreeBSD:
prüfe die Limits mit dem Befehl sysctl
# sysctl kern.maxfiles
kern.maxfiles: 5000
# sysctl kern.maxfiles=65000
kern.maxfiles: 5000 -> 65000
# sysctl kern.maxfilesperproc
kern.maxfilesperproc: 4200
# sysctl kern.maxfilesperproc=65000
kern.maxfilesperproc: 4200 -> 65000
EMail
an lugdunum
Hier geht es
zu
Norman´s Seite:
Hier
geht es zum eD2k-serverboard:
|