在Linux虚拟机中配置FTP服务器(如vsftpd),并实现宿主机和虚拟机之间的文件传输,可以按照以下步骤进行操作:

1. 安装 vsftpd
在虚拟机中安装FTP服务器软件。根据你的Linux发行版,使用以下命令安装vsftpd:
firewall-cmd –add-service=ftp
或者
firewall-cmd –zone=public –add-port=20-21/tcp
firewall-cmd –zone=public —add-port=6000-7000/tcp
(2)修改配置文件,添加被动传输端口配置
pasv_enable=YES
pasv_min_port=6000
pasv_max_port=7000
(3)SElinux设置
setsebool -P ftpd_connect_all_unreserved 1 //允许ftp协议
setsebool -P ftpd_full_access 1 //允许ftp所有权限
setsebool -P ftpd_anon_write 1 //匿名可写,可选
2. 配置 vsftpd
编辑vsftpd的配置文件`/etc/vsftpd.conf`,进行以下配置:
1)禁用匿名访问(如果不需要):
bash
anonymous_enable=NO
2) 启用本地用户访问:
bash
local_enable=YES
3)启用写权限(允许上传文件):
bash
write_enable=YES
4)启用chroot(限制用户只能访问其主目录):
bash
chroot_local_user=YES
5) 配置被动模式(防火墙友好):
bash
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10100
6) 启用日志记录:
bash
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
3. 重启 vsftpd 服务
配置完成后,重启vsftpd服务以使配置生效:
bash
sudo systemctl restart vsftpd
4. 配置防火墙
确保防火墙允许FTP流量:
bash
sudo firewall-cmd –permanent –add-service=ftp
sudo firewall-cmd –reload
如果使用SELinux,需要设置允许FTP访问:
bash
sudo setsebool -P ftpd_full_access on
5. 在宿主机上使用FTP客户端连接虚拟机
1)获取虚拟机的IP地址:在虚拟机中运行`ip addr`命令,记录下虚拟机的IP地址。
2)使用FTP客户端连接:在宿主机上使用FTP客户端(如FileZilla)连接虚拟机的FTP服务器。输入虚拟机的IP地址、FTP用户名和密码。
6. 测试文件传输
在FTP客户端中,尝试上传和下载文件,以验证FTP服务器是否正常工作。
注意事项
– 确保虚拟机和宿主机的网络设置正确,虚拟机的网络模式建议设置为桥接模式,以便两者在同一局域网内。
– 如果遇到连接问题,检查宿主机和虚拟机的防火墙设置,确保FTP端口(默认21)未被阻止。
通过以上步骤,你可以成功在Linux虚拟机中搭建FTP服务器,并实现宿主机与虚拟机之间的文件传输。
原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/dlfwq/fwqzy/szfwq/820.html