【Linux】部署vfstpd服务端,让客户端通过访问不同的端口号,可以实现访问不同的目录

要实现 vsftpd(Very Secure FTP Daemon)服务端,让客户端通过访问 不同的端口号访问不同的目录,可以采用 运行多个 vsftpd 实例,每个实例监听不同的端口,并使用不同的配置文件,其中根目录(local_root)设置为不同的目录路径。

下面是详细的部署步骤:


1. 安装 vsftpd

sudo apt install vsftpd   # Debian/Ubuntu
# 或
sudo yum install vsftpd   # CentOS/RHEL

2. 创建多个配置文件

比如,我们希望:

  • 通过 21端口 访问 /ftp/public
  • 通过 2121端口 访问 /ftp/private

创建两个配置文件:

sudo mkdir -p /etc/vsftpd_multi

/etc/vsftpd_multi/vsftpd_21.conf

listen=YES
listen_port=21
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
local_root=/ftp/public
pasv_min_port=30000
pasv_max_port=30010

/etc/vsftpd_multi/vsftpd_2121.conf

listen=YES
listen_port=2121
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
local_root=/ftp/private
pasv_min_port=30011
pasv_max_port=30020

💡 每个实例需要使用 不同的 PASV 被动端口范围,否则可能端口冲突。


3. 创建对应目录和权限

sudo mkdir -p /ftp/public
sudo mkdir -p /ftp/private
sudo chown -R ftp:ftp /ftp/public
sudo chown -R ftp:ftp /ftp/private

4. 启动多个 vsftpd 实例

你可以使用 systemd 来启动多个实例:

创建 systemd 服务文件

sudo cp /lib/systemd/system/vsftpd.service /etc/systemd/system/vsftpd@.service

编辑 /etc/systemd/system/vsftpd@.service 内容如下(重点是参数 -olisten=YES -olisten_port=XXXX 要改为我们配置文件):

[Unit]
Description=Vsftpd ftp daemon instance %i
After=network.target

[Service]
ExecStart=/usr/sbin/vsftpd /etc/vsftpd_multi/vsftpd_%i.conf

[Install]
WantedBy=multi-user.target

启动服务

sudo systemctl daemon-reexec
sudo systemctl daemon-reload

sudo systemctl start vsftpd@21
sudo systemctl start vsftpd@2121

sudo systemctl enable vsftpd@21
sudo systemctl enable vsftpd@2121

5. 客户端测试

用 FTP 客户端连接:

  • ftp://your_ip:21 访问 /ftp/public
  • ftp://your_ip:2121 访问 /ftp/private

其他建议

  • 使用防火墙开放相应端口(21、2121、30000-30020)
  • 可以加上用户隔离(每个端口让不同用户登录)
  • 可扩展为更多端口实例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值