主要内容:在物理及和虚拟主机上配置ftp,实现上传和下载的功能
1. 使用Xshell连接到服务器
- 打开Xshell软件。
- 创建一个新的会话,输入物理机或虚拟机的IP地址。
- 连接到服务器,使用root用户登录。
2. 安装vsftpd
更新包列表并安装vsftpd
:
# 更新包列表
apt update
# 安装vsftpd
apt install vsftpd
3. 配置vsftpd
编辑vsftpd配置文件:
# 打开vsftpd配置文件进行编辑
nano /etc/vsftpd.conf
在文件中进行以下更改:
- 允许本地用户登录:
# 允许本地用户登录 local_enable=YES
- 允许上传文件:
# 允许用户上传文件 write_enable=YES
- 设置FTP根目录:
# 设置本地用户的FTP根目录 local_root=/home/ftpuser/ftp
- 禁用匿名用户登录(可选):
# 禁用匿名用户登录 anonymous_enable=NO
- 启用chroot以限制用户访问其主目录:
# 启用chroot以限制用户访问其主目录 chroot_local_user=YES
保存并退出编辑器。
4. 创建FTP用户
创建一个新的用户并设置FTP目录:
# 创建一个新的用户ftpuser
adduser ftpuser
按照提示设置用户密码和其他信息。
创建FTP目录并设置权限:
# 创建FTP根目录
mkdir -p /home/ftpuser/ftp
# 更改目录所有者为nobody和nogroup
chown nobody:nogroup /home/ftpuser/ftp
# 移除所有用户的写权限
chmod a-w /home/ftpuser/ftp
创建上传目录并设置权限:
# 创建上传目录
mkdir /home/ftpuser/ftp/upload
# 更改上传目录的所有者为ftpuser
chown ftpuser:ftpuser /home/ftpuser/ftp/upload
5. 启动并启用vsftpd服务
启动vsftpd服务:
# 启动vsftpd服务
systemctl start vsftpd
设置vsftpd服务开机自启动:
# 设置vsftpd服务开机自启动
systemctl enable vsftpd
6. 配置防火墙(如果适用)
如果你的虚拟机或物理机上启用了防火墙(例如ufw
),需要允许FTP流量通过:
# 允许FTP数据端口20通过防火墙
ufw allow 20/tcp
# 允许FTP控制端口21通过防火墙
ufw allow 21/tcp
# 允许被动模式端口范围40000-50000通过防火墙
ufw allow 40000:50000/tcp
# 重新加载防火墙配置
ufw reload
7. 测试FTP服务器
使用FTP客户端(如FileZilla)连接到FTP服务器,使用刚才创建的用户ftpuser
进行登录。
- 主机:输入虚拟机或物理机的IP地址。
- 用户名:
ftpuser
- 密码:你在创建用户时设置的密码。
- 端口:21
在物理机上配置FTP
如果你需要在物理机上配置FTP服务器,步骤与在虚拟机上配置基本相同。只需确保以下几点:
- 网络连接:确保物理主机与客户端设备在同一网络中,或者通过适当的网络配置(如端口转发)使其可访问。
- 防火墙配置:根据物理主机的防火墙设置,允许FTP流量通过。
在完成上述配置步骤后,测试FTP服务器的步骤如下:
使用FileZilla连接到FTP服务器
-
下载并安装FileZilla:
- 从FileZilla官网下载并安装FileZilla客户端。
-
打开FileZilla:
- 启动FileZilla客户端。
-
输入连接信息:
- 主机(Host):输入物理机或虚拟机的IP地址。
- 用户名(Username):
ftpuser
- 密码(Password):在创建用户时设置的密码。
- 端口(Port):21
-
点击“快速连接”:
- 点击FileZilla界面右上角的“快速连接”按钮。
使用命令行FTP工具连接到FTP服务器
-
打开终端或命令提示符:
- 在操作系统中打开终端(Linux或macOS)或命令提示符(Windows)。
-
输入FTP命令:
- 输入以下命令连接到FTP服务器:ftp <服务器IP地址>
本台服务器IP地址:
ftp 192.168.1.100
-
输入用户名和密码:
- 系统会提示输入用户名和密码。输入
ftpuser
和设置的密码。
- 系统会提示输入用户名和密码。输入
2. 上传文件
在FileZilla中上传文件
-
浏览本地文件系统:
- 在FileZilla左侧窗口中浏览本地文件系统,找到我们想要上传的文件。
-
浏览远程文件系统:
- 在FileZilla右侧窗口中浏览FTP服务器上的文件系统,找到
/home/ftpuser/ftp/upload
目录。
- 在FileZilla右侧窗口中浏览FTP服务器上的文件系统,找到
-
上传文件:
- 将本地文件拖放到远程
upload
目录中,或右键点击文件选择“上传”。
- 将本地文件拖放到远程
在命令行FTP工具中上传文件
-
切换到上传目录:
- 在FTP命令行中输入以下命令切换到
upload
目录:cd upload
- 在FTP命令行中输入以下命令切换到
-
上传文件:
- 使用
put
命令上传文件。例如:put localfile.txt
- 使用
3. 下载文件
在FileZilla中下载文件
-
浏览远程文件系统:
- 在FileZilla右侧窗口中浏览FTP服务器上的文件系统,找到我们想要下载的文件。
-
浏览本地文件系统:
- 在FileZilla左侧窗口中浏览我们的本地文件系统,找到我们想要保存文件的位置。
-
下载文件:
- 将远程文件拖放到本地目录中,或右键点击文件选择“下载”。
在命令行FTP工具中下载文件
- 下载文件:
- 使用
get
命令下载文件。例如:get remotefile.txt
- 使用
4. 验证上传和下载
-
验证上传:
- 在FTP服务器上检查
/home/ftpuser/ftp/upload
目录,确认文件已成功上传。
- 在FTP服务器上检查
-
验证下载:
- 在本地文件系统中检查下载目录,确认文件已成功下载。
5. 解决常见问题
-
连接失败:
- 确认FTP服务器正在运行:
systemctl status vsftpd
- 确认防火墙配置正确,允许FTP流量通过。
- 确认网络连接正常,物理机或虚拟机的IP地址正确。
- 确认FTP服务器正在运行:
-
权限问题:
- 确认FTP用户有正确的目录权限:
ls -l /home/ftpuser/ftp/upload
- 确认FTP用户有正确的目录权限:
谢谢观看,希望对你有帮助哟!