Linux下搭建和简单配置FTP服务器

[复制链接]
发表于 2026-10-5 19:56:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

做网络安全实验或者内部文件共享时,常需要一台 FTP 服务器。本文记录在 VMware 里的 Ubuntu 16 环境下从零搭一台最简 FTP 服务的完整过程:装 vsftpd、改配置、加用户、开服务、本地与 Windows 两端验证,最后把安装阶段最常撞上的"锁被占用"报错一并解决。文中命令默认都带 sudo,需要提权的场景不要省。

一、基础安装

1. 安装 FTP 服务端

sudo apt-get update
sudo apt-get install vsftpd

装完可以用 vsftpd --version 确认装上的版本号。这一步若报错,见本文最后的"遇到的问题"。

2. 改配置之前先备份

sudo cp /etc/vsftpd.conf /etc/vsftpd_bk.conf

配置可改可不改的都建议先留一份原文件,改坏了直接覆盖回去,比重装快。

3. 修改配置文件

用 vim 或 gedit 都可以,gedit 操作直观一些:

sudo vim /etc/vsftpd.conf
# 或
sudo gedit /etc/vsftpd.conf

二、一份可用的最小配置

下面这段配置只解决"本机用户登录、能传能下、锁在家目录"这四个需求,深入的场景(虚拟用户、SSL、限速)请再自行扩展:

listen=NO
listen_ipv6=YES

# 是否允许匿名登录,默认关闭
anonymous_enable=NO

# 是否允许本地系统用户登录
local_enable=YES

# 是否允许写操作(上传、改名、删除)
write_enable=YES

# 本地用户上传文件时的默认掩码
local_umask=022

# 目录进入提示消息
dirmessage_enable=YES

# 使用本地时区显示文件时间,默认是 GMT
use_localtime=YES

# 启用上传下载日志日志
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES

# 登录横幅
ftpd_banner=Welcome to FTP service.

# 是否把用户锁在其家目录内
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

# PAM 服务名
pam_service_name=ftp

# 字符集
utf8_filesystem=YES

在 gedit 里改完用 Ctrl+S 保存即可;终端里若刷出配置项的告警,多数不影响启动,可以先忽略。

三、添加专用用户

下面以新增用户 t1 为例,换成别的名字同理。

  1. 先在 /home 下建一个用户目录:sudo mkdir /home/t1
  2. 把登录目录和登录 shell 绑上,-d 指定登录后进入的目录,-s 指定登录后用的 shell:sudo useradd -d /home/t1 -s /bin/bash t1
  3. 给 t1 设密码:sudo passwd t1,随后按提示输入两遍
  4. 把目录所有者改成 t1:sudo chown t1:t1 /home/t1
  5. 把用户名写进 /etc/vsftpd.user_list:sudo gedit /etc/vsftpd.user_list,文件里一行一个用户名,内容为 t1
  6. 同样把 t1 写进 /etc/vsftpd.chroot_list:sudo gedit /etc/vsftpd.chroot_list

两个列表的分工要分清:user_list 管的是允许谁登录,chroot_list 管的是被锁进家目录的名单。只在 user_list 里加、忘了进 chroot_list,用户就还能往上翻目录。

四、启动服务

systemctl restart vsftpd

基础配置到此完成,接下来验证。

五、三种验证方式

1. Ubuntu 本机测试

ftp localhost

输入正确的用户名密码,看能否进入并 ls 出目录内容。

2. Windows 下测试

  • CMD 里直接 ftp 服务器IP;
  • 或者在资源管理器地址栏输入 ftp://服务器IP/。

登录成功后若目录是空的,属正常现象——还没放文件进去。

3. 放个文件再测一次

在 Ubuntu 里往 /home/t1 写个文件:

cd /home/t1
sudo gedit test.txt

写点内容保存,再到 Windows 端刷新看是否已能看到,打开 txt 内容对得上,说明这台 FTP 服务已经通了。

六、安装阶段最常见的报错:锁被占用

执行 sudo apt-get update 之后的命令若报:

E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?

这说明有另一个进程(通常是上一次没跑完的 apt 或系统更新)正在动 dpkg。先别急着删锁,等几十秒看它自己退出;确知已无进程时再按序列删:

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock-frontend

如果接着又报:

E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
E: 无法锁定管理目录 (/var/lib/dpkg/),是否有其他进程正占用它?

再补一条:

sudo rm /var/lib/dpkg/lock

删锁属有风险操作:万一那个进程其实还在跑,锁被提前清掉可能让后面两个 apt 同时改 dpkg 而互相踩踏。稳妥顺序是先 ps aux | grep apt 确认无残留进程,再动手。

qidao123.com企服评测-应用市场 编辑提示

本文按安装 vsftpd、备份并修改配置文件、用最小可用配置替代冗长默认配置、创建专用 FTP 用户并写入 user_list 与 chroot_list、启动服务、Ubuntu 与 Windows 双端验证的顺序,整理一台最简 FTP 服务器的搭建过程,并给出 dpkg 锁冲突的分步处理。文中配置仅面向内部可信网络;如果需要把 FTP 暴露到公网,请务必启用 TLS、限制可登录账号并用防火墙收紧来源,明文传用户名密码的协议不适合对外提供服务。

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表