怎样限制Ubuntu FTP服务器访问量
导读:限制 Ubuntu FTP 服务器访问量的实用做法 一 明确要限制的维度 并发连接数:限制服务器同时接受的客户端会话数(全局上限)。 每 IP 并发:限制同一来源 IP 的并发会话数,防止单点刷连接。 带宽/速率:限制每个用户或全局的上传...
限制 Ubuntu FTP 服务器访问量的实用做法
一 明确要限制的维度
- 并发连接数:限制服务器同时接受的客户端会话数(全局上限)。
- 每 IP 并发:限制同一来源 IP 的并发会话数,防止单点刷连接。
- 带宽/速率:限制每个用户或全局的上传/下载速度,避免占满链路。
- 访问控制:仅允许白名单 IP 访问,或禁用匿名、锁定用户目录,减少滥用面。
二 使用 vsftpd 内置参数进行限制(推荐)
- 编辑配置文件:sudo nano /etc/vsftpd.conf
- 常用参数与示例(按需调整数值):
- 并发与会话
- max_clients=50 # 服务器最大并发客户端数
- max_per_ip=5 # 每个 IP 最大并发连接数
- max_login_fails=3 # 登录失败次数上限,超过后拒绝
- 带宽/速率(单位:字节/秒)
- local_max_rate=524288 # 本地用户最大速率 512 KB/s
- anon_max_rate=104857 # 匿名用户最大速率 100 KB/s
- 访问面收敛
- anonymous_enable=NO # 禁用匿名
- chroot_local_user=YES # 禁锢本地用户到其家目录
- allow_writeable_chroot=YES # 如需要,允许 chroot 目录可写
- 并发与会话
- 使配置生效:sudo systemctl restart vsftpd
- 说明:上述并发与速率参数均为 vsftpd 原生支持,适合直接落地实施。
三 用防火墙限制连接数与来源 IP
- 限制每个来源 IP 到 FTP 控制端口的连接数(示例上限 10)
- sudo iptables -A INPUT -p tcp --dport 21 -m connlimit --connlimit-above 10 -j REJECT
- 仅允许白名单网段访问 FTP 控制与数据端口
- 控制通道:sudo iptables -A INPUT -p tcp -s 203.0.113.0/24 --dport 21 -j ACCEPT
- 主动模式数据端口(示例范围 30000–31000):sudo iptables -A INPUT -p tcp -s 203.0.113.0/24 --dport 30000:31000 -j ACCEPT
- 按需补充 FTP 被动端口范围与回环放行规则,避免误拦合法流量
- 提示:若使用 firewalld,可用 rich rules 实现等价策略;规则调整前建议备份当前规则集。
四 按用户或进程粒度限速的进阶方式
- 使用 trickle 限制 FTP 服务进程的带宽(适合临时或精细控制)
- 安装:sudo apt-get install trickle
- 示例:sudo trickle -s -d 100 -u 50 ftpd -n(下载 100 KB/s、上传 50 KB/s)
- 适用场景:需要对单个服务实例或测试环境限速,而不改动全局 vsftpd 配置时更灵活。
五 验证与运维建议
- 验证要点
- 并发与每 IP 限制:从多台主机或多终端并发登录,超出上限应被拒绝或排队。
- 带宽限制:使用 ftp/wget 下载大文件,速率应接近配置值(注意单位为字节/秒)。
- 日志与告警:开启 vsftpd 日志(如 xferlog_enable、xferlog_std_format),定期审计 /var/log/vsftpd.log,观察异常连接与速率超限情况。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 怎样限制Ubuntu FTP服务器访问量
本文地址: https://pptw.com/jishu/765109.html
