集群架构 - FTP文件传输服务

1. FTP服务原理概述

1.1 FTP协议简介

FTP (File Transfer Protocol),中文为”文件传输协议”,是一种在互联网上进行文件传输的协议,用于在Internet上控制文件的双向传输。

1.2 FTP工作原理

FTP是一个应用程序,基于客户端/服务器模式,默认使用TCP 20/21端口:

  • FTP控制链接: 21端口,用于接受客户端发出的相关FTP命令与参数
  • FTP数据链接: 20端口,用于数据传输,比如:上传、下载数据

1.3 FTP服务特点

FTP服务端通常部署在企业内网,具有以下特征:

  1. 容易搭建: 配置简单,部署快速
  2. 方便管理: 支持用户权限管理
  3. 安全稳定: 支持多种认证方式
  4. 功能强大: 支持断点续传、多点下载

1.4 FTP传输拓扑

FTP协议的传输拓扑如下:

1
2
客户端 <--控制连接(21端口)--> FTP服务器
客户端 <--数据连接(20端口)--> FTP服务器

1.5 FTP登录用户类型

FTP支持三种用户类型:

用户类型 说明 特点
匿名用户 anonymous/ftp 无需密码,权限受限
系统用户 系统真实用户 使用系统账号密码
虚拟用户 映射到系统用户 更安全,权限灵活

用户类型关系:

1
2
3
匿名用户 --> 系统用户
系统用户 --> 一般关闭
虚拟用户 --> 系统用户

2. FTP服务传输模式

2.1 主动模式 (Active Mode)

工作原理:

  • 服务端通过20端口主动向客户端连接,传输数据
  • 客户端打开随机端口等待服务端连接

连接过程:

  1. 客户端连接到FTP服务器的21端口(控制连接)
  2. 客户端发送PORT命令,告诉服务器客户端的数据端口
  3. 服务器从20端口连接到客户端指定的数据端口
  4. 开始数据传输

主动模式示意图:

1
2
客户端(随机端口) <--控制连接(21)--> 服务器
客户端(随机端口) <--数据连接(20)--> 服务器

2.2 被动模式 (Passive Mode)

工作原理:

  • 服务端启动随机端口,等待客户端发起连接,进行数据传输
  • 客户端主动连接服务端的数据端口

连接过程:

  1. 客户端连接到FTP服务器的21端口(控制连接)
  2. 客户端发送PASV命令
  3. 服务器响应,告诉客户端服务器的数据端口
  4. 客户端连接到服务器的数据端口
  5. 开始数据传输

被动模式示意图:

1
2
客户端 <--控制连接(21)--> 服务器
客户端 -->数据连接(随机端口)--> 服务器

2.3 FTP传输模式总结

模式 数据连接发起方 适用场景
主动模式 服务器主动连接 服务器无防火墙
被动模式 客户端主动连接 客户端有防火墙

防火墙影响:

  1. FTP服务器端启用防火墙,开启21/20端口: 这时FTP只能工作在主动模式
  2. FTP客户端开启防火墙: 这时FTP只能选择工作在被动模式
  3. FTP客户端和FTP服务端都有防火墙: 那么将无法使用FTP主动和被动模式

解决方案:

  • 配置防火墙规则,开放FTP相关端口
  • 使用被动模式,并配置pasv_min_port和pasv_max_port范围

3. FTP服务安装配置

3.1 基础环境准备

1
2
3
4
5
6
# 查看系统版本
[root@ftp-server ~]# uname -r
3.10.0-693.el7.x86_64

[root@ftp-server ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.4 (Maipo)

3.2 关闭防火墙以及selinux

1
2
3
4
5
6
7
8
9
# 停止并禁用防火墙
[root@ftp-server ~]# systemctl stop firewalld
[root@ftp-server ~]# systemctl disable firewalld

# 关闭SELinux
[root@ftp-server ~]# sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
[root@ftp-server ~]# setenforce 0
[root@ftp-server ~]# getenforce
Disabled

3.3 安装vsftpd服务

1
2
3
4
5
# 需要有epel仓库
[root@ftp-server ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

# 安装vsftpd和相关工具
[root@ftp-server ~]# yum install vsftpd libdb-utils -y

软件包说明:

  • vsftpd: FTP服务器软件
  • libdb-utils: 数据库工具,用于虚拟用户认证

3.4 启动ftp服务并加入开机自启动

1
2
3
4
5
6
# 启动vsftpd服务
[root@ftp-server ~]# systemctl enable vsftpd
[root@ftp-server ~]# systemctl start vsftpd

# 检查服务状态
[root@ftp-server ~]# systemctl status vsftpd

注意: 默认使用匿名用户访问共享目录站点为/var/ftp,仅拥有下载权限。

3.5 vsftpd全局配置文件注释

1
2
# 查看vsftpd主配置文件
[root@ftp-server ~]# cat /etc/vsftpd/vsftpd.conf

主要配置参数说明:

参数 说明 默认值
anonymous_enable=YES 是否启用匿名用户 YES
local_enable=YES 是否启动本地用户 YES
write_enable=YES 开启全局上传文件 NO
local_umask=022 控制本地用户上传文件默认权限 022
anon_umask=022 控制匿名用户上传文件的默认权限 022
anon_upload_enable=YES 允许匿名用户上传 NO
anon_mkdir_write_enable=YES 允许创建目录 NO
dirmessage_enable=YES 配置用户目录显示信息 NO
xferlog_enable=YES 启动日志 NO
xferlog_file=/var/log/vsftpd.log 指定日志位置 /var/log/vsftpd.log
connect_from_port_20=YES 使用20端口进行数据连接 YES
xferlog_std_format=YES 使用标准日志格式 NO
listen=YES 是否作为一个独立守护进程运行 NO
chroot_local_user=YES 禁锢所有用户在用户目录下 NO
chroot_list_enable=YES 配合chroot_list_file使用 NO
chroot_list_file=/etc/vsftpd/chroot_list 禁锢用户列表 /etc/vsftpd/chroot_list
pam_service_name=vsftpd PAM认证文件 vsftpd
userlist_enable=YES ftpusers文件下的用户都被拒绝登陆访问 NO
tcp_wrappers=YES 启用TCP Wrappers NO
guest_enable=YES 开启虚拟用户 NO
guest_username=www FTP虚拟用户对应的系统用户 ftp
user_config_dir=/etc/vsftpd/ftplogin 授权FTP虚拟用户所在目录 -
local_root=/data/ftp 指定本地用户访问目录站点 -
anon_root=/data/ftp 指定匿名用户访问目录站点 -
anon_max_rate=500000 匿名用户限速(字节/秒) 0(无限制)
local_max_rate=800000 本地用户限速(字节/秒) 0(无限制)
max_clients=100 同时能接收多少请求 0(无限制)
max_per_ip=2 一个ip同时能有多少连接 0(无限制)

权限限制参数:

  • local_root=/data/ftp: 指定本地用户访问目录站点
  • anon_root=/data/ftp: 指定匿名用户访问目录站点

资源控制参数:

  • anon_max_rate=500000: 匿名用户限速(500KB/s)
  • local_max_rate=800000: 本地用户限速(800KB/s)
  • max_clients=100: 同时能接收多少请求
  • max_per_ip=2: 一个ip同时能有多少连接

4. FTP匿名用户访问

4.1 配置需求

配置匿名用户访问ftp服务,拥有创建文件夹、上传下载文件、不允许删除、移动、重命名。

4.2 配置步骤

步骤1: 编辑vsftpd主配置文件

1
2
3
4
5
6
7
# 编辑vsftpd主配置文件
[root@ftp-server ~]# vim /etc/vsftpd/vsftpd.conf

# 启动匿名用户、允许上传和创建文件权限
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES

步骤2: 修改默认ftp共享目录站点权限

1
2
3
4
5
# 修改默认ftp共享目录站点权限
[root@ftp-server ~]# chmod -R 777 /var/ftp/

# 重新加载vsftpd服务
[root@ftp-server ~]# systemctl restart vsftpd

4.3 客户端验证

安装lftp客户端工具

1
2
# Linux下使用lftp客户端工具访问vsftpd服务验证,安装此工具
[root@ftp-server ~]# yum install lftp -y

使用匿名用户登录vsftpd

1
2
3
4
5
6
7
8
9
# 使用匿名用户登录vsftpd
[root@ftp-client ~]# lftp 192.168.56.11

# 查看目录
lftp 192.168.56.11:~> ls
drwxrwxrwx 2 0 0 4096 Mar 22 2017 pub

# 进入pub目录
lftp 192.168.56.11:/> cd pub

创建目录

1
2
3
4
5
6
# 创建目录
lftp 192.168.56.11:/pub> mkdir dir_ftp
mkdir ok, `dir_ftp' created

lftp 192.168.56.11:/pub> ls
drwx------ 2 14 50 4096 Nov 14 21:10 dir_ftp

上传文件

1
2
3
4
5
6
7
8
9
10
11
# 切换系统其他目录
lftp 192.168.56.11:/pub> lcd /etc
lcd ok, local cwd=/etc

# 下载系统内文件(上传到FTP服务器)
lftp 192.168.56.11:/pub> put inittab
884 bytes transferred

lftp 192.168.56.11:/pub> ls
drwx------ 2 14 50 4096 Nov 14 21:10 dir_ftp
-rw------- 1 14 50 884 Nov 14 21:11 inittab

验证删除文件权限

1
2
3
4
5
6
7
8
9
10
11
12
# 切回ftp目录
lftp 192.168.56.11:/pub> cd
cd ok, cwd=/

lftp 192.168.56.11:/> cd pub
lftp 192.168.56.11:/pub> ls
drwx------ 2 14 50 4096 Nov 14 21:10 dir_ftp
-rw------- 1 14 50 884 Nov 14 21:11 inittab

# 验证删除文件权限(应该被拒绝)
lftp 192.168.56.11:/pub> rm inittab
rm: Access failed: 550 Permission denied. (inittab)

4.4 匿名用户权限总结

操作 权限 说明
下载 ✅ 允许 可以下载文件
上传 ✅ 允许 可以上传文件
创建目录 ✅ 允许 可以创建目录
删除 ❌ 拒绝 不能删除文件
移动 ❌ 拒绝 不能移动文件
重命名 ❌ 拒绝 不能重命名文件

5. FTP本地用户访问

5.1 本地用户访问ftp服务

本地用户访问ftp默认拥有上传和下载权限。

创建测试用户

1
2
3
# 创建测试用户
[root@ftp-server ~]# useradd ftp_test
[root@ftp-server ~]# echo "123"|passwd --stdin ftp_test

客户端验证

1
2
3
4
5
6
7
8
9
10
11
12
# 客户端验证
[root@ftp-client ~]# lftp 192.168.56.11

# 使用本地用户登录
lftp 192.168.56.11:~> login ftp_test 123

# 创建目录
lftp ftp_test@192.168.56.11:/> mkdir ftp

# 在服务器端验证
[root@ftp-server ~]# ls /home/ftp_test
ftp

5.2 拒绝特定的本地用户访问ftp

配置拒绝用户列表

1
2
3
4
5
# 将用户添加到拒绝列表
[root@ftp-server ~]# echo "ftp_test" >> /etc/vsftpd/ftpusers

# 重启服务
[root@ftp-server ~]# systemctl restart vsftpd

客户端验证

1
2
3
4
5
# 客户端验证(应该被拒绝)
[root@ftp-client ~]# lftp 192.168.56.11
lftp 192.168.56.11:~> login ftp_test 123
lftp ftp_test@192.168.56.11:~> ls
ls: Login failed: 530 Login incorrect.

说明: /etc/vsftpd/ftpusers 文件中的用户将被拒绝登录FTP服务。

5.3 锁定用户家目录

锁定所有本地用户只能在自己的家目录操作,但允许bgx用户不被锁定家目录。

配置步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 编辑vsftpd配置文件
[root@ftp-server ~]# vim /etc/vsftpd/vsftpd.conf

# 添加以下配置
chroot_local_user=YES # 锁定所有用户至家目录
chroot_list_enable=YES # 排除某个用户不被锁定
chroot_list_file=/etc/vsftpd/chroot_list # 对应的文件
allow_writeable_chroot=YES # centos7必须增加

# 创建chroot_list文件,添加不被锁定的用户
[root@ftp-server ~]# echo "bgx" > /etc/vsftpd/chroot_list

# 重启服务
[root@ftp-server ~]# systemctl restart vsftpd

配置说明:

  • chroot_local_user=YES: 锁定所有用户至家目录
  • chroot_list_enable=YES: 启用排除列表
  • chroot_list_file=/etc/vsftpd/chroot_list: 指定排除列表文件
  • allow_writeable_chroot=YES: CentOS 7必须添加,允许在chroot目录中写入

注意: CentOS 7中,如果用户家目录权限为755,需要添加allow_writeable_chroot=YES才能正常使用。


6. FTP企业案例

6.1 需求分析

公司为了宣传最新的产品信息,计划搭建FTP服务器,为客户提供相关文档的下载。对所有权互联网开放共享目录,允许下载产品信息。公司的合作单位能够使用FTP服务器进行上传和下载。

需求分析:

根据企业的需求,对于不同用户进行不同的权限限制,FTP服务器需要实现用户的审核。需考虑到服务器的安全性,所以关闭实体用户登录,使用虚拟帐号验证机制,并对不同虚拟帐号设置不同的权限。为了保证服务器的性能,还需要根据用户的等级,限制客户端的连接数及下载速度。

6.2 解决方案

需求规划:

  1. 匿名用户: 允许下载我们公司的产品,但需要对其限速50KB/s
  2. 普通用户: 可以针对自己的目录进行上传和下载,对其限速500KB/s(虚拟用户)
  3. 管理用户: 可以访问所有目录资源,并可以操作客户的目录,但不允许操作对外
  4. 优化: 根据不同的等级用户做不同的限速,限制客户端连接次数(5)

目录结构:

1
2
3
4
/data/ftp/
├── manager # manager用户能管理所有目录,但不能管理soft目录
├── bgx # bgx普通用户仅能查看自己的文件和修改
└── soft # 匿名用户仅能下载共享软件包

6.3 配置步骤

步骤1: 建立系统账户,供与虚拟账户使用

1
2
# 创建虚拟用户映射的系统用户
[root@ftp-server ~]# useradd virftp -s /sbin/nologin

步骤2: 创建对应目录,赋予权限

1
2
3
4
5
6
7
8
# 创建对应目录
[root@ftp-server ~]# mkdir -p /data/ftp/{manager,bgx,soft}

# 赋予权限(manager和bgx目录给virftp用户)
[root@ftp-server ~]# chown -R virftp.virftp /data/ftp/{manager,bgx}

# soft目录给ftp用户(匿名用户使用)
[root@ftp-server ~]# chown -R ftp.ftp /data/ftp/soft

步骤3: 创建虚拟用户账户及密码

1
2
3
4
5
6
7
8
9
10
# 创建虚拟用户账户及密码文件
[root@ftp-server ~]# cat > /etc/vsftpd/vsftpd_login <<EOF
manager
manager
bgx
bgx
EOF

# 设置权限(必须600)
[root@ftp-server ~]# chmod 600 /etc/vsftpd/vsftpd_login

格式说明: 奇数行为用户名,偶数行为密码。

步骤4: 生成对应的库文件

1
2
3
4
5
# 生成对应的库文件
[root@ftp-server ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

# 设置权限
[root@ftp-server ~]# chmod 600 /etc/vsftpd/vsftpd_login.db

命令说明:

  • -T: 允许非Berkeley DB应用程序从文本文件读取
  • -t hash: 指定数据库类型为hash
  • -f: 指定输入文件

步骤5: 修改pam文件

1
2
3
4
5
6
7
8
9
# 备份原pam文件
[root@ftp-server ~]# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

# 修改pam文件
[root@ftp-server ~]# vim /etc/pam.d/vsftpd

# 注释原有内容,添加以下内容
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

注意: 如果是32位系统,路径为/lib/security/pam_userdb.so

步骤6: 建立虚拟用户配置目录

1
2
# 建立虚拟用户配置目录
[root@ftp-server ~]# mkdir /etc/vsftpd/vsftpd_user_conf

步骤7: 配置匿名用户权限,限速100KB/s

1
2
3
4
5
6
7
8
9
10
11
# 编辑vsftpd主配置文件
[root@ftp-server ~]# vim /etc/vsftpd/vsftpd.conf

# 配置匿名用户权限,限速100KB/s
anonymous_enable=YES
anon_root=/data/ftp/soft
anon_max_rate=100000

# 关闭之前修改过的匿名上传和创建权限
anon_upload_enable=NO
anon_mkdir_write_enable=NO

注意: 匿名用户登陆默认目录,必须要和/etc/passwd中的ftp用户的默认宿主目录要一样,否则也会出错误!

步骤8: 配置管理用户,限速2MB/s

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 配置管理用户
cat > /etc/vsftpd/vsftpd_user_conf/manager <<EOF
local_root=/data/ftp/
allow_writeable_chroot=YES
write_enable=YES
local_umask=022
anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=2000000
EOF

配置说明:

  • local_root=/data/ftp/: 管理用户可以访问所有目录
  • local_max_rate=2000000: 限速2MB/s
  • max_per_ip=5: 每个IP最多5个连接

步骤9: 配置普通用户,限速1MB/s

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 配置普通用户
cat > /etc/vsftpd/vsftpd_user_conf/bgx <<EOF
local_root=/data/ftp/bgx
allow_writeable_chroot=YES
write_enable=YES
local_umask=022
anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=1000000
EOF

配置说明:

  • local_root=/data/ftp/bgx: 普通用户只能访问自己的目录
  • local_max_rate=1000000: 限速1MB/s
  • max_per_ip=5: 每个IP最多5个连接

步骤10: 配置文件尾部追加虚拟用户配置

1
2
3
4
5
6
7
8
9
10
# 在vsftpd.conf文件尾部追加以下内容
cat >> /etc/vsftpd/vsftpd.conf <<EOF

# 虚拟用户配置
chroot_local_user=YES
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
EOF

配置说明:

  • chroot_local_user=YES: 锁定用户到指定目录
  • guest_enable=YES: 启用虚拟用户
  • guest_username=virftp: 虚拟用户映射的系统用户
  • virtual_use_local_privs=YES: 虚拟用户使用本地用户权限
  • user_config_dir=/etc/vsftpd/vsftpd_user_conf: 虚拟用户配置文件目录

步骤11: 重启服务并验证

1
2
3
4
5
6
7
# 重启vsftpd服务
[root@ftp-server ~]# systemctl restart vsftpd

# 检查服务状态
[root@ftp-server ~]# systemctl status vsftpd

# 使用ftp客户端验证权限即可

6.4 完整配置文件示例

主配置文件 /etc/vsftpd/vsftpd.conf:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 匿名用户配置
anonymous_enable=YES
anon_root=/data/ftp/soft
anon_max_rate=100000
anon_upload_enable=NO
anon_mkdir_write_enable=NO

# 本地用户配置
local_enable=YES
write_enable=YES
local_umask=022

# 虚拟用户配置
chroot_local_user=YES
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf

# 日志配置
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES

# 其他配置
listen=YES
pam_service_name=vsftpd
tcp_wrappers=YES

6.5 用户权限总结

用户类型 用户名 访问目录 限速 权限
匿名用户 anonymous /data/ftp/soft 100KB/s 仅下载
普通用户 bgx /data/ftp/bgx 1MB/s 上传/下载
管理用户 manager /data/ftp/ 2MB/s 全权限(除soft)

7. FTP服务管理命令

7.1 服务管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 启动服务
systemctl start vsftpd

# 停止服务
systemctl stop vsftpd

# 重启服务
systemctl restart vsftpd

# 重载配置(不中断连接)
systemctl reload vsftpd

# 查看状态
systemctl status vsftpd

# 开机自启
systemctl enable vsftpd

7.2 日志查看

1
2
3
4
5
6
7
8
# 查看vsftpd日志
tail -f /var/log/vsftpd.log

# 查看系统日志
journalctl -u vsftpd

# 查看实时连接
netstat -antp | grep :21

7.3 客户端工具

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 安装lftp客户端
yum install lftp -y

# 连接FTP服务器
lftp ftp://192.168.56.11

# 使用用户名密码登录
lftp ftp://user:pass@192.168.56.11

# 常用命令
# ls - 列出文件
# cd - 切换目录
# get - 下载文件
# put - 上传文件
# mkdir - 创建目录
# rm - 删除文件

8. FTP故障排查

8.1 常见问题

问题1: 无法连接FTP服务器

排查步骤:

1
2
3
4
5
6
7
8
# 检查服务状态
systemctl status vsftpd

# 检查端口监听
ss -lntup | grep 21

# 检查防火墙
iptables -L -n | grep 21

问题2: 登录失败

排查步骤:

1
2
3
4
5
6
7
8
# 检查用户是否在拒绝列表
cat /etc/vsftpd/ftpusers

# 检查PAM配置
cat /etc/pam.d/vsftpd

# 查看日志
tail -f /var/log/vsftpd.log

问题3: 无法上传文件

排查步骤:

1
2
3
4
5
6
# 检查目录权限
ls -ld /var/ftp/pub

# 检查配置
grep write_enable /etc/vsftpd/vsftpd.conf
grep anon_upload_enable /etc/vsftpd/vsftpd.conf

8.2 错误代码

错误代码 说明 解决方法
530 登录失败 检查用户名密码
550 权限拒绝 检查文件权限和配置
553 文件已存在 删除或重命名文件
425 无法打开数据连接 检查防火墙和被动模式

9. FTP安全加固

9.1 安全建议

  1. 禁用匿名用户: 如果不需要,禁用匿名访问
  2. 使用虚拟用户: 使用虚拟用户代替系统用户
  3. 限制访问IP: 使用TCP Wrappers限制访问来源
  4. 启用SSL/TLS: 使用FTPS加密传输
  5. 定期更新: 保持vsftpd软件最新版本

9.2 防火墙配置

1
2
3
4
5
6
7
8
# 开放FTP端口
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload

# 或手动开放端口
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=20/tcp
firewall-cmd --reload

9.3 被动模式端口范围

1
2
3
4
5
6
7
8
9
10
11
# 配置被动模式端口范围
vim /etc/vsftpd/vsftpd.conf

# 添加以下配置
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=60000

# 开放端口范围
firewall-cmd --permanent --add-port=50000-60000/tcp
firewall-cmd --reload

10. FTP性能优化

10.1 性能参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 优化配置
vim /etc/vsftpd/vsftpd.conf

# 连接数限制
max_clients=200
max_per_ip=10

# 超时设置
idle_session_timeout=600
data_connection_timeout=120

# 限速设置
anon_max_rate=1000000
local_max_rate=2000000

10.2 系统优化

1
2
3
4
5
6
7
8
9
# 优化内核参数
cat >> /etc/sysctl.conf <<EOF
# FTP优化
net.core.somaxconn = 1024
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 8192
EOF

sysctl -p

实战优化