如何在Linux下对FTP进行限速? (linux ftp限速)

在网络传输中,限速是一种很常见的操作,特别是在大规模的文件传输过程中。FTP(文件传输协议)是一种常用的传输协议之一,而在Linux系统下,我们可以通过一些方法对FTP进行限速。

本文将介绍如何在Linux系统下对FTP进行限速的具体过程。

步骤一:安装vsftpd

vsftpd是Linux中一个常用的FTP服务器软件,我们可以使用此软件进行FTP上传或下载。首先需要在系统中安装vsftpd,可以通过以下命令进行安装:

sudo apt-get install vsftpd

步骤二:配置vsftpd

安装完成后,需要对vsftpd进行配置。使用文本编辑器(如nano)打开vsftpd.conf文件,编辑以下内容:

listen=YES

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

anon_upload_enable=NO

anon_mkdir_write_enable=NO

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=YES

idle_session_timeout=600

data_connection_timeout=120

nopriv_user=ftpsecure

ftp_username=ftpsecure

chroot_local_user=YES

其中,listen=YES 表示vsftpd服务器开启。其他参数的含义详解如下:

anonymous_enable=NO: 禁止匿名登录,只允许具有账号和密码认证的用户登录FTP服务器。

local_enable=YES: 允许本地用户登录FTP服务器。

write_enable=YES: 允许用户上传文件。

local_umask=022: 设置FTP远程目录的默认权限掩码(UMASK),默认情况下是022,即指目录具有755权限,文件具有644权限。

anon_upload_enable=NO: 禁止匿名用户上传文件。

anon_mkdir_write_enable=NO: 禁止匿名用户在FTP上创建文件夹。

dirmessage_enable=YES: 允许向FTP客户端发送一些目录内容提示。

xferlog_enable=YES: 启用传输日志。如果启用,则可以在/var/log/vsftpd.log中找到FTP传输时的详细记录。

connect_from_port_20=YES: 启动主动FTP传输模式。在这种模式下,傳輸的开始是由FTP客户端发送来的请求,FTP服务器则通过主机的20端口与FTP客户端建立连接,并返回FTP客户端所请求的文件。

xferlog_file=/var/log/vsftpd.log: 设置vsftpd传输日志的位置。

xferlog_std_format=YES: 使用标准的xferlog格式记录传输日志。

idle_session_timeout=600: 设置FTP会话连接超时时间(以秒为单位)。

data_connection_timeout=120: 设置传输连接的超时时间(以秒为单位)。

nopriv_user=ftpsecure: 指定vsftpd运行用户名。

ftp_username=ftpsecure: 同上。

chroot_local_user=YES: 将用户限定在传输根目录下。

步骤三:限速策略

本例中使用tc命令为FTP传输设置限速。tc命令可以控制网络流量,特别是可以为各种数据流设置带宽限制。如果你没有tc命令,请使用以下命令进行安装:

sudo apt-get install tc

完成安装后,请按照以下步骤进行设置:

1.创建一个新的类别 c1,将带宽限制为1M(即,举例下行传输速度不超过1Mbps):

tc qdisc add dev eth0 root handle 1: htb default 12

tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit ceil 1mbit

tc class add dev eth0 parent 1:1 classid 1:12 htb rate 1mbit ceil 1mbit prio 0

以上命令将创建一个句柄为1:的层次控制器,将其设置为htb规则,将默认类别设置为12.在此类别中,将下行传输速度限制为1M(rate 1mbit),将上行传输速度限制为1M(ceil 1mbit)。

2. 将所有FTP流量分配给 c1 类别。

tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip sport 21 0xffff flowid 1:1

这个命令将所有FTP流量分配到类别1:1。

3. 启动iptables并允许FTP传输。

iptables -t raw -A PREROUTING -p tcp –dport 21 -j NOTRACK

iptables -t mangle -A PREROUTING -p tcp –sport 21 -j MARK –set-mark 1

这个命令将FTP传输连接的所有数据流量(端口21/20)设置到关联的标记“1”中(MARK),这样就保证了所有FTP传输流量按照我们的要求进行限速。

通过执行以下命令来验证设置是否起效:

sudo tc -p -s -d class show dev eth0

该命令将在屏幕上显示类别和调度器的详细信息,并且你可以看到带宽限制在 1M 的类别 c1。

在Linux系统中,我们可以使用vsftpd和tc命令来实现FTP传输限速。vsftpd作为FTP服务器软件,可以帮助我们快速建立FTP传输环境。而tc命令则可以控制网络流量、限制传输速度,从而保证FTP传输速度的稳定和安全。以上设置只是一个基本示例,在实际使用过程中,可以根据需要进行一定的调整,以便更好地适应实际需求。

相关问题拓展阅读:

【急】如何限制我的ftp服务器上下载的速度

看了你的服务器。是SERV-U 8.1搭镇早建的。是最新版本御敬雀。可以直接在SERV-U里面设置速度限制。。可以设置到稿侍很具体。这个软件功能强大。请摸索。碰到问题百度一下基本搞定。关于这个的文章非常多

可以使用

服务器管理工具

来进行相局此关的操作;顷举如果是想雀腊碧抑制的话,可以直接使用IDM等一些线程下载工具进行线程数量上的限制,就能够达到效果!如果是单纯的FTP的话,使用服务器管理工具操作即可

你的路由中如果有限速弊洞功能的话,那就给这个FTP服务器做个限速的,如果没有,岁迟就利用第三方软件来实现,具租雀枯体怎么做,要看什么路由器,或是什么软件,

Linux搭建ftp在windows下这么访问,需要怎么设置

WINDOWS下载培谨运行里直接输入~ 就行码改了~~~上去的时候是匿名登录~~可以右键有个迟中判登录~~上去用用户登录~~不用设置~~~和在windows下搭建ftp 一样~~

ping不通的话首先看看网卡,linux是虚拟机的话就换成仅主氏衫机或是桥接!在linux上做ftp服务,开启服务!把它们换成一个网段,在客户端ctrl+r运行!输入ftp://ip(服务器的)就可以了!要是匿名登录上传埋核携的话需要改配置文件,弯伏/etc/vsftpd/vsftpd.conf要记得起服务哦!!!1

FTP服务器配置

VSFTP主配置文件路径:/etc/vsftpd/vsftpd.conf,重要参数:

anonymous_enable=yes/no

是否允许匿名用户访问

anon_upload_enable=yes/no

是否允许匿名用户上传文件

anon_mkdir_write_enable=yes/no

是否允许匿名用户创建目录

anon_other_write_enable=yes/no

匿名用户和虚拟用户是否拥有删除权限

local_enable=yes/no

是否允许本地用户登陆

write_enable=yes/no

设置全局是否可写

anon_root=/var

指定匿名用户目录

chroot_local_user=yes

锁定所有用户到用户主目录

chroot_list_enable=yes/no

锁定列表中的用户到主目录,需要配合下一参数使用

chroot_list_file=/etc/vsftpd/chroot_list

指定存储被锁定用户的列表文件位置

chown_uploads=yes/no

匿名用户上传所有者指定功能,需要与下一参数配合使用

chown_username=用户名

指定匿名用户上传文件的所有者

max_clients=300

更大客户端连接数为300

anon_max_rate=30000

匿名用户和虚拟用户限速为30K/S

local_max_rate=30000

本地用户限速为30K/S

max_per_ip=10

每租脊个IP更大连接数

listen_port=22

更改监听端口

实现如下要求:允许匿名用户登陆,匿名用户限速为60K/S,只允许下载。监听端口为22,更大连接数为10。新建用户ftp1,限速为200K/S,允许上传下载删除新建文件夹。进入目录/etc/vsftpd,用vi编辑器打开vsftpd.conf主配置文件:

直接添加以下选项:

vsftpd>#

service

vsftpd

restart

添加用户ftp1,设置登录脚本为

/in/nologin:

vsftp默认目录为:/var/ftp,为方便测试,在/var/ftp下新建一个文件”testLocal”,在”/var/ftp/pub”新建一个文件”testAnon”。

由于使用root用户新建文件,文件的所有者为root,所以需要把文件的权限设置为644其他用户才弊备渗能读取该文件

设置/var/ftp/pub权限为777,表示所有用户均有读写权限.

由于端口22被ssh服务器占用,所以需要关闭ssh服务并重启vsftp服务。

客户端用Flashfxp测试:新建站点”VsftpTest”,输入Vsftp服务器的IP地址,端口填22,用户名填ftp1,密码填你设置的密码,然后点击”连接”按钮:

由于没有使用选项:local_root,登陆本地用户时自动跳转到该用户的主目录.没有使用chroot_local_user=yes,所以本地用户可以浏览整个文件系统中他有权限读取的文件和文件夹:

切换到目录”/var/ftp/pub”,该目录的权限为777,上传一个10M以上的文件,测试ftp1的上传速度:

新建文件夹和删除权限测试省略。下面测试匿名用户权限:勾选”匿名”选项并连接:

匿名用户登陆成功:

进入pub目录,尝试删除testAnon文件失败,说明这里是配置文件中的anon_other_write_enable=no生效了。最终权限等于配置文件中的权限和linux文件系统权限相或的结果。比如vsftp配置文件中允许匿名用户下载,但光这样是不够的,还需要被下载的文件或文件夹的能够被其他用户读取。

尝试上传文件失败,符合匿名用户只允许下载的要求:

最后测试匿名用户的:

vsftp的配置参数总共也就10来行,但是想要使用好它,绝没有单单理解这10来行这么简单,需要对每一行所定义的参数都理解透彻才可以.

匿名用户的配置:

anonymous_enable=YES

//允许匿名用户登录

anon_root=/var/ftp/anonymous

/滚枣/设定匿名用户登录后的根目录

anon_upload_enable=YES

//允许匿名用户上传文件

只需要打开如上的参数即可,不用做其他的设置.本地用户登录配置

首先说一下概念,什么是本地用户,本地用户就是你系统/home目录下的用户,当然有的用户建立时候使用-m命令,使用户在/home下没有目录,但是这个词的意思就是系统里面有的用户.

local_enable=YES

//允许本地用户登录

local_root=/home

//限制本地用户登录后的根目录

eg:

ftp>#

ftp

192.168.0.125

Connected

to

192.168.0.125.

220

(vsFTPd

2.0.5)

530

Please

login

with

USER

and

PASS.

530

Please

login

with

USER

and

PASS.

KERBEROS_V4

rejected

as

an

authentication

type

Name

(192.168.0.125:root):

xu

331

Please

specify

the

password.

Password:

230

Login

successful.

Remote

system

type

is

UNIX.

Using

binary

mode

to

transfer

files.

ftp>

ls

227

Entering

Passive

Mode

(192,168,0,125,135,123)

150

Here

comes

the

directory

listing.

drwx——

505

503

4096

Jun

09:42

chuan

drwx——

507

507

4096

Jun

22:26

ftp

drwx——

504

502

4096

Jun

09:42

joe

drwx——

506

503

4096

Jun

09:43

laomeng

drwx——

502

504

4096

Jun

09:42

master

drwx——

503

502

4096

Jun

09:42

mike

drwx——

500

500

4096

Jun

21:34

xiaochuan

drwxrwxrwx

508

508

4096

Jun

22:39

xu

drwx——

501

501

4096

Jun

20:25

xujunchuan

226

Directory

send

OK.

ftp>

pwd

257

“/home”

限制用户目录部分

chroot_local_use=YES|NO

//是否将本地用户锁定在家目录

chroot_list_enable=YES|NO

//是否锁定使用者在家目录中

chroot_list_file=/etc/vsftpd/chroot_list

//一般情况下都将这个文件写在/etc/vsftpd目录下,这个文件就是设置锁定用户的一个列表文件,其中一行就代表一个用户

设置欢迎信息

dirmessage_enable=YES

message_file=.message

ftp>#

cd

/home

home>#

vi

.message

welcomt

to

VSFTP………….

C:\Documents

and

Settings\Administrator>ftp

192.168.0.125

Connected

to

192.168.0.125.

220

(vsFTPd

2.0.5)

User

(192.168.0.125:(none)):

xu

331

Please

specify

the

password.

Password:

230-welcomt

to

VSFTP………….

230

Login

successful.

ftp>

服务器端设置好就可以了,客户端不用任何设置

linux ftp限速的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux ftp限速,如何在Linux下对FTP进行限速?,【急】如何限制我的ftp服务器上下载的速度,Linux搭建ftp在windows下这么访问,需要怎么设置的信息别忘了在本站进行查找喔。


数据运维技术 » 如何在Linux下对FTP进行限速? (linux ftp限速)