darkone
12-14-2003, 02:03 PM
I've done major changes to config layout in 5.4.0. And as promised, socket buffer sizes are definable in config.
[ioFTPD]
Double_Click = https://127.0.0.1:10000/
Hide_Tray = False
[Threads]
Process_Priority = High # Suggested process base priority (Idle/Normal/High/Realtime)
Io_Threads = 3 # Number of io threads
Worker_Threads = 10 # Number of worker threads
Encryption_Threads = 2 # Number of encryption threads
TCL_Interpreters = 5 # Number of tcl interpreters (executed within worker threads)
[File]
MessageCache_Size = 1000 # Amount of message files to cache
DirectoryCache_Size = 1000 # Amount of directories to cache per cache bucket (8 buckets)
Device_Concurrency = 5 # Maximum simultanous io operations per device
Upload_PreAllocation = 0 #
[Locations]
User_Id_Table = ..\etc\UserIdTable
Group_Id_Table = ..\etc\GroupIdTable
Hosts_Rules = ..\etc\Hosts.Rules
User_Files = ..\users
Group_Files = ..\groups
Log_Files = ..\logs
Cache_Files = ..\cache
Default_Vfs = ..\etc\default.vfs
Environment = ..\etc\ioftpd.env
##################### DEVICES ########################
##
#
# [Device Name]
# Host = <Host/IP> # External host. Address shown to clients. (0.0.0.0 = any local ip)
# Ports = <Begin-End> # Ports to use for data transfers. May contain comma seperated list of port ranges.
# Random = <True/False> # Use ports in random order
# Bind = <Host/IP> # Internal host. If specified, connections are bound to this address instead of HOST.
#
# Global_Inbound_Bandwidth = <kB/s> # Limit overall inbound speeds
# Global_Outbound_Bandwidth = <kB/s> # Limit overall outbound speeds
# Client_Inbound_Bandwidth = <kB/s> # Limit client inbound speeds
# Client_Outbound_Bandwidth = <kB/s> # Limit client outbound speeds
#
[Any]
Host = 0.0.0.0
Ports = 1024-2048
Random = True
;Global_Inbound_Bandwidth = 1000
;Global_Outbound_Bandwidth = 1000
;Client_Inbound_Bandwidth = 100 [*registered version*]
;Client_Outbound_Bandwidth = 50 [*registered version*]
;Bind =
################## END OF DEVICES ####################
##################### SERVICES #######################
[FTP_Service]
Type = FTP
Device_Name = Any
Port = 9999
Description = My FTP Service
User_Limit = 10
Allowed_Users = *
Messages = ..\text\ftp
### Encryption ###
#
Require_Encrypted_Auth = !*
Require_Encrypted_Data = !*
Certificate_Name = 192.168.1.10
Explicit_Encryption = True
Encryption_Protocol = SSL3
Min_Cipher_Strength = 128
Max_Cipher_Strength = 256
#Max_Cipher_Strength = 384
### IDNT command handler ###
#
Get_External_Ident = True
### Traffic Balancing ###
#
;Data_Devices =
;Random_Devices = True
[Telnet_Service]
Type = Telnet
Device_Name = Any
Port = 10001
Description = My Telnet Service
User_Limit = 10
Allowed_Users = T !*
Messages = ..\text\telnet
[HTTP_Service]
Type = HTTP
Device_Name = Any
Port = 10000
Description = My HTTP Service
User_Limit = 50
Allowed_Users = H !*
Messages = ..\text\http
Certificate_Name = 192.168.1.10
Explicit_Encryption = False
Encryption_Protocol = SSL3
Min_Cipher_Strength = 128
Max_Cipher_Strength = 384
################## END OF SERVICES ###################
[Network]
Active_Services = FTP_Service Telnet_Service HTTP_Service
Nagle = False # Enable/Disable TCP Nagle algorithm
Ident_Timeout = 5 # Set ident timeout (seconds)
Hostname_Cache_Duration = 1800 # Seconds cached hostname is valid
Ident_Cache_Duration = 120 # Seconds cached ident is valid
Connections_To_Ban = 1000000 #
Ban_Counter_Reset_Interval = 30 #
Temporary_Ban_Duration = 1200 # Seconds host remains banned
Internal_Transfer_Buffer = 65536 # Internal transfer buffer size
Scheduler_Update_Speed = NORMAL # Socket scheduler update speed (HIGH/NORMAL/LOW/DISABLED)
[Ftp]
Idle_TimeOut = 120
Login_Attempts = 3
Login_TimeOut = 15
;Socket_Send_Buffer = 4096
;Socket_Recv_Buffer = 1024
;Transfer_Buffer = 65536
;DataSocket_Nagle = False
;DataSocket_Send_Buffer = 32684
;DataSocket_Recv_Buffer = 32684
[Telnet]
Idle_TimeOut = 120
Login_TimeOut = 15
;Socket_Send_Buffer = 4096
;Socket_Recv_Buffer = 1024
[Http]
Transfer_Timeout = 180
Executable = *.exe *.com *.cgi *.php *.php3 *.bat
;Socket_Send_Buffer = 16384
;Socket_Recv_Buffer = 16384
[Sections]
## Maximum of 10 different credit sections ##
#
# <alias> = <credit section #> <path>
# <alias> = <credit section #> <stats section #> <path>
#
Home = 0 1 /home/*
Default = 0 *
[VFS]
###
# Default attributes for files & directories
#
# Required Parameters: <filemode> <owner uid>:<owner gid>
#
Default_Directory_Attributes = 755 0:0
Default_File_Attributes = 644 0:0
###
# Command specific rules
#
Modify_Stats_On_Delete = False
###
# Detailed permissions for directories
#
# priviledge = <virtual path> <rights>
#
Upload = * *
Resume = * *
Download = * *
MakeDir = * *
RemoveOwnDir = * *
RemoveDir = * 1VM
Rename = * 1VM
RenameOwn = * *
Overwrite = * 1VM
Delete = * 1VM
DeleteOwn = * *
NoStats = * =lSpeed !*
ShowActivity = /private/* -ioFTPD !*
ShowActivity = * !A *
[Reset]
WeeklyReset = Sunday
MonthlyReset = 1st
[Scheduler]
###
# Scheduler
#
# Event = <minutes> <hours> <day of week> <day of month> Command
#
# Internal Commands:
#
# &Reset : Resets upload/download counters
# &Service_Update : Reloads devices and Restarts services, if bind ip of service has changed
#
Reset = 0 0 * * &Reset
Service_Update = 10,30,50 * * * &Service_Update
ioA-Weekly = 1 0 1 * EXEC ..\scripts\ioA\ioA.exe weeklyset
[Events]
;OnUploadError =
;OnUploadComplete = TCL ..\scripts\test2.itcl
;OnDownloadError =
;OnDownloadComplete =
;OnResume =
;OnUpload =
;OnNewDir =
;OnDelDir =
;OnLogIn =
;OnServerStart =
;OnServerStop =
;OnServiceStart =
;OnServiceStop =
OnUpload = TCL ..\scripts\ZipScript-TCL\postcheck.itcl up
OnResume = TCL ..\scripts\ZipScript-TCL\postcheck.itcl up
[Modules]
;MessageVariableModule = ..\modules\cookie.dll
;UserModule = ..\modules\networkuser.dll
;GroupModule = ..\modules\networkgroup.dll
;EventModule = ..\modules\eventmodule.dll
[FTP_Pre-Command_Events]
dele = %TCL ..\scripts\ZipScript-TCL\zipscript-tcl.itcl beforedel "%[$path]" "%[$pwd]" "%[$creditsection]"
;list =
;stor =
;mkd =
[FTP_Post-Command_Events]
;mkd =
;rmd =
;stor =
;dele =
[FTP_Custom_Commands]
## SITE <trigger> <parameters>
#
# trigger = !file # Show file
# trigger = @string # Alias
# trigger = EXEC script.exe # Execute file.exe
# trigger = %EXEC script.exe # Execute file.exe (translate cookies)
# trigger = TCL script.itcl # Execute file.itcl
#
## Examples
# welcome = !..\text\ftp\welcome.msg
# rehash = @config rehash
# exec = EXEC ..\scripts\exec.bat
# myinfo = %TCL ..\scripts\whoami.itcl %[$user]
# cat = TCL ..\scripts\showfile.itcl
#
#TCL = TCL ..\scripts\test2.itcl
TCL = TCL ..\scripts\bottalk.itcl
BAT = EXEC ..\scripts\test.bat
[Telnet_Binaries]
hello = EXEC d:\ioFTPD\site\bin\hello.bat
[FTP_Command_Permissions]
[FTP_SITE_Permissions]
## SITE <cmd> ##
#
# 'M' - MASTER
# 'V' - VFS ADMINISTRATOR
# 'G' - GROUP ADMIN RIGHTS
# 'F' - FXP DENIED (DOWNLOAD)
# 'f' - FXP DENIED (UPLOAD)
# 'L' - SKIP USER LIMIT PER SERVICE
# 'A' - ANONYMOUS
#
adduser = 1GM
deluser = 1GM
renuser = 1M
gadduser = 1GM
grpadd = 1M
grpdel = 1M
grpren = 1M
chgrp = 1M
kick = 1M
addip = 1GM
delip = 1GM
passwd = !A *
stats = !A *
tagline = !A *
swho = !A *
chmod = !A *
chown = MV
chattr = MV
config = M
uinfo = 1GM
users = 1GM
[Telnet_Command_Permissions]
adduser = 1GM
deluser = 1GM
renuser = 1M
gadduser = 1GM
grpadd = 1M
grpdel = 1M
grpren = 1M
kick = 1M
addip = 1GM
delip = 1GM
chmod = !A *
chown = MV
chattr = MV
list = *
cd = *
passwd = *
stats = *
tagline = *
swho = *
chgrp = 1M
config = M
uinfo = 1GM
[Telnet_Binary_Permissions]
[Change_Permissions]
admingroup = 1M
credits = 1M
flags = 1M
groupdescription = 1M
groupslots = 1M
groupvfsfile = M
homedir = 1GM
logins = 1M
passwd = 1GM
ratio = 1GM
stats = M
tagline = 1GM
showjobs = M
speedlimit = 1GM
vfsfile = M
[Http_Permissions]
users = 1GM
uinfo = 1GM
addip = 1GM
delip = 1GM
config = M
On Windows 2003 using default settings, my p4 1.8ghz, 512mb gives output speed of ~80mb/sec.
ftp> get image.nrg nul
200 PORT command successful.
150 Opening BINARY mode data connection for Image.nrg.
226 Transfer complete.
ftp: 85964896 bytes received in 1,08Seconds 79450,00Kbytes/sec.
ftp> get image.nrg nul
200 PORT command successful.
150 Opening BINARY mode data connection for Image.nrg.
226 Transfer complete.
ftp: 85964896 bytes received in 1,05Seconds 81715,68Kbytes/sec.
ftp> get image.nrg nul
200 PORT command successful.
150 Opening BINARY mode data connection for Image.nrg.
226 Transfer complete.
ftp: 85964896 bytes received in 1,06Seconds 80946,23Kbytes/sec.
[ioFTPD]
Double_Click = https://127.0.0.1:10000/
Hide_Tray = False
[Threads]
Process_Priority = High # Suggested process base priority (Idle/Normal/High/Realtime)
Io_Threads = 3 # Number of io threads
Worker_Threads = 10 # Number of worker threads
Encryption_Threads = 2 # Number of encryption threads
TCL_Interpreters = 5 # Number of tcl interpreters (executed within worker threads)
[File]
MessageCache_Size = 1000 # Amount of message files to cache
DirectoryCache_Size = 1000 # Amount of directories to cache per cache bucket (8 buckets)
Device_Concurrency = 5 # Maximum simultanous io operations per device
Upload_PreAllocation = 0 #
[Locations]
User_Id_Table = ..\etc\UserIdTable
Group_Id_Table = ..\etc\GroupIdTable
Hosts_Rules = ..\etc\Hosts.Rules
User_Files = ..\users
Group_Files = ..\groups
Log_Files = ..\logs
Cache_Files = ..\cache
Default_Vfs = ..\etc\default.vfs
Environment = ..\etc\ioftpd.env
##################### DEVICES ########################
##
#
# [Device Name]
# Host = <Host/IP> # External host. Address shown to clients. (0.0.0.0 = any local ip)
# Ports = <Begin-End> # Ports to use for data transfers. May contain comma seperated list of port ranges.
# Random = <True/False> # Use ports in random order
# Bind = <Host/IP> # Internal host. If specified, connections are bound to this address instead of HOST.
#
# Global_Inbound_Bandwidth = <kB/s> # Limit overall inbound speeds
# Global_Outbound_Bandwidth = <kB/s> # Limit overall outbound speeds
# Client_Inbound_Bandwidth = <kB/s> # Limit client inbound speeds
# Client_Outbound_Bandwidth = <kB/s> # Limit client outbound speeds
#
[Any]
Host = 0.0.0.0
Ports = 1024-2048
Random = True
;Global_Inbound_Bandwidth = 1000
;Global_Outbound_Bandwidth = 1000
;Client_Inbound_Bandwidth = 100 [*registered version*]
;Client_Outbound_Bandwidth = 50 [*registered version*]
;Bind =
################## END OF DEVICES ####################
##################### SERVICES #######################
[FTP_Service]
Type = FTP
Device_Name = Any
Port = 9999
Description = My FTP Service
User_Limit = 10
Allowed_Users = *
Messages = ..\text\ftp
### Encryption ###
#
Require_Encrypted_Auth = !*
Require_Encrypted_Data = !*
Certificate_Name = 192.168.1.10
Explicit_Encryption = True
Encryption_Protocol = SSL3
Min_Cipher_Strength = 128
Max_Cipher_Strength = 256
#Max_Cipher_Strength = 384
### IDNT command handler ###
#
Get_External_Ident = True
### Traffic Balancing ###
#
;Data_Devices =
;Random_Devices = True
[Telnet_Service]
Type = Telnet
Device_Name = Any
Port = 10001
Description = My Telnet Service
User_Limit = 10
Allowed_Users = T !*
Messages = ..\text\telnet
[HTTP_Service]
Type = HTTP
Device_Name = Any
Port = 10000
Description = My HTTP Service
User_Limit = 50
Allowed_Users = H !*
Messages = ..\text\http
Certificate_Name = 192.168.1.10
Explicit_Encryption = False
Encryption_Protocol = SSL3
Min_Cipher_Strength = 128
Max_Cipher_Strength = 384
################## END OF SERVICES ###################
[Network]
Active_Services = FTP_Service Telnet_Service HTTP_Service
Nagle = False # Enable/Disable TCP Nagle algorithm
Ident_Timeout = 5 # Set ident timeout (seconds)
Hostname_Cache_Duration = 1800 # Seconds cached hostname is valid
Ident_Cache_Duration = 120 # Seconds cached ident is valid
Connections_To_Ban = 1000000 #
Ban_Counter_Reset_Interval = 30 #
Temporary_Ban_Duration = 1200 # Seconds host remains banned
Internal_Transfer_Buffer = 65536 # Internal transfer buffer size
Scheduler_Update_Speed = NORMAL # Socket scheduler update speed (HIGH/NORMAL/LOW/DISABLED)
[Ftp]
Idle_TimeOut = 120
Login_Attempts = 3
Login_TimeOut = 15
;Socket_Send_Buffer = 4096
;Socket_Recv_Buffer = 1024
;Transfer_Buffer = 65536
;DataSocket_Nagle = False
;DataSocket_Send_Buffer = 32684
;DataSocket_Recv_Buffer = 32684
[Telnet]
Idle_TimeOut = 120
Login_TimeOut = 15
;Socket_Send_Buffer = 4096
;Socket_Recv_Buffer = 1024
[Http]
Transfer_Timeout = 180
Executable = *.exe *.com *.cgi *.php *.php3 *.bat
;Socket_Send_Buffer = 16384
;Socket_Recv_Buffer = 16384
[Sections]
## Maximum of 10 different credit sections ##
#
# <alias> = <credit section #> <path>
# <alias> = <credit section #> <stats section #> <path>
#
Home = 0 1 /home/*
Default = 0 *
[VFS]
###
# Default attributes for files & directories
#
# Required Parameters: <filemode> <owner uid>:<owner gid>
#
Default_Directory_Attributes = 755 0:0
Default_File_Attributes = 644 0:0
###
# Command specific rules
#
Modify_Stats_On_Delete = False
###
# Detailed permissions for directories
#
# priviledge = <virtual path> <rights>
#
Upload = * *
Resume = * *
Download = * *
MakeDir = * *
RemoveOwnDir = * *
RemoveDir = * 1VM
Rename = * 1VM
RenameOwn = * *
Overwrite = * 1VM
Delete = * 1VM
DeleteOwn = * *
NoStats = * =lSpeed !*
ShowActivity = /private/* -ioFTPD !*
ShowActivity = * !A *
[Reset]
WeeklyReset = Sunday
MonthlyReset = 1st
[Scheduler]
###
# Scheduler
#
# Event = <minutes> <hours> <day of week> <day of month> Command
#
# Internal Commands:
#
# &Reset : Resets upload/download counters
# &Service_Update : Reloads devices and Restarts services, if bind ip of service has changed
#
Reset = 0 0 * * &Reset
Service_Update = 10,30,50 * * * &Service_Update
ioA-Weekly = 1 0 1 * EXEC ..\scripts\ioA\ioA.exe weeklyset
[Events]
;OnUploadError =
;OnUploadComplete = TCL ..\scripts\test2.itcl
;OnDownloadError =
;OnDownloadComplete =
;OnResume =
;OnUpload =
;OnNewDir =
;OnDelDir =
;OnLogIn =
;OnServerStart =
;OnServerStop =
;OnServiceStart =
;OnServiceStop =
OnUpload = TCL ..\scripts\ZipScript-TCL\postcheck.itcl up
OnResume = TCL ..\scripts\ZipScript-TCL\postcheck.itcl up
[Modules]
;MessageVariableModule = ..\modules\cookie.dll
;UserModule = ..\modules\networkuser.dll
;GroupModule = ..\modules\networkgroup.dll
;EventModule = ..\modules\eventmodule.dll
[FTP_Pre-Command_Events]
dele = %TCL ..\scripts\ZipScript-TCL\zipscript-tcl.itcl beforedel "%[$path]" "%[$pwd]" "%[$creditsection]"
;list =
;stor =
;mkd =
[FTP_Post-Command_Events]
;mkd =
;rmd =
;stor =
;dele =
[FTP_Custom_Commands]
## SITE <trigger> <parameters>
#
# trigger = !file # Show file
# trigger = @string # Alias
# trigger = EXEC script.exe # Execute file.exe
# trigger = %EXEC script.exe # Execute file.exe (translate cookies)
# trigger = TCL script.itcl # Execute file.itcl
#
## Examples
# welcome = !..\text\ftp\welcome.msg
# rehash = @config rehash
# exec = EXEC ..\scripts\exec.bat
# myinfo = %TCL ..\scripts\whoami.itcl %[$user]
# cat = TCL ..\scripts\showfile.itcl
#
#TCL = TCL ..\scripts\test2.itcl
TCL = TCL ..\scripts\bottalk.itcl
BAT = EXEC ..\scripts\test.bat
[Telnet_Binaries]
hello = EXEC d:\ioFTPD\site\bin\hello.bat
[FTP_Command_Permissions]
[FTP_SITE_Permissions]
## SITE <cmd> ##
#
# 'M' - MASTER
# 'V' - VFS ADMINISTRATOR
# 'G' - GROUP ADMIN RIGHTS
# 'F' - FXP DENIED (DOWNLOAD)
# 'f' - FXP DENIED (UPLOAD)
# 'L' - SKIP USER LIMIT PER SERVICE
# 'A' - ANONYMOUS
#
adduser = 1GM
deluser = 1GM
renuser = 1M
gadduser = 1GM
grpadd = 1M
grpdel = 1M
grpren = 1M
chgrp = 1M
kick = 1M
addip = 1GM
delip = 1GM
passwd = !A *
stats = !A *
tagline = !A *
swho = !A *
chmod = !A *
chown = MV
chattr = MV
config = M
uinfo = 1GM
users = 1GM
[Telnet_Command_Permissions]
adduser = 1GM
deluser = 1GM
renuser = 1M
gadduser = 1GM
grpadd = 1M
grpdel = 1M
grpren = 1M
kick = 1M
addip = 1GM
delip = 1GM
chmod = !A *
chown = MV
chattr = MV
list = *
cd = *
passwd = *
stats = *
tagline = *
swho = *
chgrp = 1M
config = M
uinfo = 1GM
[Telnet_Binary_Permissions]
[Change_Permissions]
admingroup = 1M
credits = 1M
flags = 1M
groupdescription = 1M
groupslots = 1M
groupvfsfile = M
homedir = 1GM
logins = 1M
passwd = 1GM
ratio = 1GM
stats = M
tagline = 1GM
showjobs = M
speedlimit = 1GM
vfsfile = M
[Http_Permissions]
users = 1GM
uinfo = 1GM
addip = 1GM
delip = 1GM
config = M
On Windows 2003 using default settings, my p4 1.8ghz, 512mb gives output speed of ~80mb/sec.
ftp> get image.nrg nul
200 PORT command successful.
150 Opening BINARY mode data connection for Image.nrg.
226 Transfer complete.
ftp: 85964896 bytes received in 1,08Seconds 79450,00Kbytes/sec.
ftp> get image.nrg nul
200 PORT command successful.
150 Opening BINARY mode data connection for Image.nrg.
226 Transfer complete.
ftp: 85964896 bytes received in 1,05Seconds 81715,68Kbytes/sec.
ftp> get image.nrg nul
200 PORT command successful.
150 Opening BINARY mode data connection for Image.nrg.
226 Transfer complete.
ftp: 85964896 bytes received in 1,06Seconds 80946,23Kbytes/sec.