Здравствуйте.
Озадачился я вопросом подбора vps хостинга, на котором мне нужно помимо всего прочего сделать ftp. Выбрав одного, столкнулся с проблемой того, что непонимаю, почему скорость передачи по ftp (загрузки на сервер) у меня слишком медденная. Не понятно, на кого грешить, то ли на хостера, то ли на своё непонимание происходящего.
Тем не менее, proftpd у меня стабильно показывает 70-80 KB/s, vsftpd показывает 230 KB/s.
Вопрос: я неправильно настраиваю или что?
конфиг proftpd:
Include /etc/proftpd/modules.conf[br][br]ServerName "Debian"[br]ServerType standalone[br]DeferWelcome off[br][br]MultilineRFC2228 on[br]DefaultServer on[br]ShowSymlinks on[br][br]TimeoutNoTransfer 600[br]TimeoutStalled 600[br]TimeoutIdle 1200[br][br]DisplayLogin welcome.msg[br]DisplayChdir .message true[br]ListOptions "-l"[br][br]DenyFilter \*.*/[br][br]DefaultRoot ~[br]ServerIdent on "FTP Server ready."[br][br]RequireValidShell off[br]AuthUserFile /etc/proftpd/ftpd.passwd[br]Port 21[br][br]<IfModule mod_dynmasq.c>[br]</IfModule>[br][br]MaxInstances 30[br][br]User proftpd[br]Group nogroup[br][br]Umask 022 022[br]AllowOverwrite on[br][br]TransferLog /var/log/proftpd/xferlog[br]SystemLog /var/log/proftpd/proftpd.log[br][br]<IfModule mod_quotatab.c>[br]QuotaEngine off[br]</IfModule>[br][br]<IfModule mod_ratio.c>[br]Ratios off[br]</IfModule>[br][br]<IfModule mod_delay.c>[br]DelayEngine on[br]</IfModule>[br][br]<IfModule mod_ctrls.c>[br]ControlsEngine off[br]ControlsMaxClients 2[br]ControlsLog /var/log/proftpd/controls.log[br]ControlsInterval 5[br]ControlsSocket /var/run/proftpd/proftpd.sock[br]</IfModule>[br][br]<IfModule mod_ctrls_admin.c>[br]AdminControlsEngine off[br]</IfModule>[br][br]Include /etc/proftpd/conf.d/[br][br]UseReverseDNS off[br]IdentLookups off[br]UseIPv6 off[br]
vsftpd.conf
[br]# Example config file /etc/vsftpd.conf[br]#[br]# The default compiled in settings are fairly paranoid. This sample file[br]# loosens things up a bit, to make the ftp daemon more usable.[br]# Please see vsftpd.conf.5 for all compiled in defaults.[br]#[br]# READ THIS: This example file is NOT an exhaustive list of vsftpd options.[br]# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's[br]# capabilities.[br]#[br]#[br]# Run standalone? vsftpd can run either from an inetd or as a standalone[br]# daemon started from an initscript.[br]listen=NO[br]#[br]# This directive enables listening on IPv6 sockets. By default, listening[br]# on the IPv6 "any" address (::) will accept connections from both IPv6[br]# and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6[br]# sockets. If you want that (perhaps because you want to listen on specific[br]# addresses) then you must run two copies of vsftpd with two configuration[br]# files.[br]listen_ipv6=YES[br]#[br]# Allow anonymous FTP? (Disabled by default).[br]anonymous_enable=NO[br]#[br]# Uncomment this to allow local users to log in.[br]local_enable=YES[br]#[br]# Uncomment this to enable any form of FTP write command.[br]write_enable=YES[br]#[br]# Default umask for local users is 077. You may wish to change this to 022,[br]# if your users expect that (022 is used by most other ftpd's)[br]#local_umask=022[br]#[br]# Uncomment this to allow the anonymous FTP user to upload files. This only[br]# has an effect if the above global write enable is activated. Also, you will[br]# obviously need to create a dctory writable by the FTP user.[br]#anon_upload_enable=YES[br][br]# Uncomment this if you want the anonymous FTP user to be able to create[br]# new directories.[br]#anon_mkdir_write_enable=YES[br]#[br]# Activate directory messages - messages given to remote users when they[br]# go into a certain directory.[br]dirmessage_enable=YES[br]#[br]# If enabled, vsftpd will display directory listings with the time[br]# in your local time zone. The default is to display GMT. The[br]# times returned by the MDTM FTP command are also affected by this[br]# option.[br]use_localtime=YES[br]#[br]# Activate logging of uploads/downloads.[br]xferlog_enable=YES[br]#[br]# Make sure PORT transfer connections originate from port 20 (ftp-data).[br]connect_from_port_20=YES[br]#[br]# If you want, you can arrange for uploaded anonymous files to be owned by[br]# a different user. Note! Using "root" for uploaded files is not[br]# recommended![br]#chown_uploads=YES[br]#chown_username=whoever[br]#[br]# You may override where the log file goes if you like. The default is shown[br]# below.[br]#xferlog_file=/var/log/vsftpd.log[br]#[br]# If you want, you can have your log file in standard ftpd xferlog format.[br]# Note that the default log file location is /var/log/xferlog in this case.[br]#xferlog_std_format=YES[br]#[br]# You may change the default value for timing out an idle session.[br]#idle_session_timeout=600[br]#[br]# You may change the default value for timing out a data connection.[br]#data_connection_timeout=120[br]#[br]# It is recommended that you define on your system a unique user which the[br]# ftp server can use as a totally isolated and unprivileged user.[br]#nopriv_user=ftpsecure[br]#[br]# Enable this and the server will recognise asynchronous ABOR requests. Not[br]# recommended for security (the code is non-trivial). Not enabling it,[br]# however, may confuse older FTP clients.[br]#async_abor_enable=YES[br]#[br]# By default the server will pretend to allow ASCII mode but in fact ignore[br]# the request. Turn on the below options to have the server actually do ASCII[br]# mangling on files when in ASCII mode.[br]# Beware that on some FTP servers, ASCII support allows a denial of service[br]# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd[br]# predicted this attack and has always been safe, reporting the size of the[br]# raw file.[br]# ASCII mangling is a horrible feature of the protocol.[br]#ascii_upload_enable=YES[br]#ascii_download_enable=YES[br]#[br]# You may fully customise the login banner string:[br]#ftpd_banner=Welcome to blah FTP service.[br]#[br]# You may specify a file of disallowed anonymous e-mail addresses. Apparently[br]# useful for combatting certain DoS attacks.[br]#deny_email_enable=YES[br]# (default follows)[br]#banned_email_file=/etc/vsftpd.banned_emails[br]#[br]# You may restrict local users to their home directories. See the FAQ for[br]# the possible risks in this before using chroot_local_user or[br]# chroot_list_enable below.[br]chroot_local_user=YES[br]#[br]# You may specify an explicit list of local users to chroot() to their home[br]# directory. If chroot_local_user is YES, then this list becomes a list of[br]# users to NOT chroot().[br]# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that[br]# the user does not have write access to the top level directory within the[br]# chroot)[br]#chroot_local_user=YES[br]#chroot_list_enable=YES[br]# (default follows)[br]#chroot_list_file=/etc/vsftpd.chroot_list[br]#[br]# You may activate the "-R" option to the builtin ls. This is disabled by[br]# default to avoid remote users being able to cause excessive I/O on large[br]# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume[br]# the presence of the "-R" option, so there is a strong case for enabling it.[br]#ls_recurse_enable=YES[br]#[br]# Customization[br]#[br]# Some of vsftpd's settings don't fit the filesystem layout by[br]# default.[br]#[br]# This option should be the name of a directory which is empty. Also, the[br]# directory should not be writable by the ftp user. This directory is used[br]# as a secure chroot() jail at times vsftpd does not require filesystem[br]# access.[br]secure_chroot_dir=/var/run/vsftpd/empty[br]#[br]# This string is the name of the PAM service vsftpd will use.[br]pam_service_name=vsftpd[br]#[br]# This option specifies the location of the RSA certificate to use for SSL[br]# encrypted connections.[br]rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem[br]rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key[br]ssl_enable=NO[br]seccomp_sandbox=no[br]allow_writeable_chroot=YES
а вот что кстати мне выдаёт iperf3:
iperf3 -c x.x.x.x // (ip сервера с ftp)[br]Connecting to host x.x.x.x, port 5201[br][ 4] local 192.168.1.14 port 39646 connected to x.x.x.x port 5201[br][ ID] Interval Transfer Bandwidth Retr Cwnd[br][ 4] 0.00-1.00 sec 140 KBytes 1.15 Mbits/sec 0 42.4 KBytes [br][ 4] 1.00-2.00 sec 129 KBytes 1.05 Mbits/sec 0 48.1 KBytes [br][ 4] 2.00-3.00 sec 140 KBytes 1.15 Mbits/sec 0 55.1 KBytes [br][ 4] 3.00-4.00 sec 82.0 KBytes 671 Kbits/sec 2 38.2 KBytes [br][ 4] 4.00-5.00 sec 139 KBytes 1.14 Mbits/sec 0 50.9 KBytes [br][ 4] 5.00-6.00 sec 119 KBytes 973 Kbits/sec 0 56.6 KBytes [br][ 4] 6.00-7.00 sec 119 KBytes 973 Kbits/sec 0 58.0 KBytes [br][ 4] 7.00-8.00 sec 119 KBytes 973 Kbits/sec 0 58.0 KBytes [br][ 4] 8.00-9.00 sec 119 KBytes 973 Kbits/sec 0 60.8 KBytes [br][ 4] 9.00-10.00 sec 130 KBytes 1.07 Mbits/sec 0 66.5 KBytes [br]- - - - - - - - - - - - - - - - - - - - - - - - -[br][ ID] Interval Transfer Bandwidth Retr[br][ 4] 0.00-10.00 sec 1.21 MBytes 1.01 Mbits/sec 2 sender[br][ 4] 0.00-10.00 sec 1.13 MBytes 949 Kbits/sec receiver
1мбит/c в обе стороны это реальная скорость моего интернет-провайдера, тут всё нормально.
p.s. блин что за хрень с кодом?(