建立虚拟FTP 的服务器目录并设置适当的权限
建立虚拟FTP 的服务器的xinetd 配置文件
建立虚拟FTP 的服务器的主配置文件
配置独立启动的虚拟FTP 的服务器要有单独的主配置文件,即原主机的主配置文件和虚拟主机的配置文件不能重名。
⑴ 查看本机现有的IP 地址
# ifconfig |grep -1 eth0
eth0 Link encap:Ethernet HWaddr 00:50:56:C7:22:DF
inet addr:192.168.1.222 Bcast:192.168.1.255 Mask:255.255.255.0
//可以看出本机的第一个网络接口eth0 的IP 为192.168.1.222
⑵ 下面配置一个虚拟网络接口eth0:1
# ifconfig eth0:1 192.168.1.234 up
⑶ 下面建立虚拟FTP 的服务器目录
# mkdir -p /var/ftp2/pub
//确保目录具有如下的权限
# ll -d /var/ftp2
drwxr-xr-x 3 root root 4096 3 月12 03:00 /var/ftp2
# ll -d /var/ftp2/pub
drwxr-xr-x 2 root root 4096 3 月12 03:00 /var/ftp2/pub
⑷ 在下载目录中生成测试文件
# echo "hello">/var/ftp2/pub/test_file
⑸ 下面创建此虚拟服务器的匿名用户所映射的本地用户ftp2
# useradd -d /var/ftp2 -M ftp2
⑹ 修改原独立运行服务器的配置文件/etc/vsftpd/vsftpd.conf
# vi /etc/ vsftpd/vsftpd.conf
// 添加listen = 192.168.1.222
// 将原FTP 服务绑定到eth0 接口,之后保存退出vi
⑺ 生成新的虚拟FTP 服务器的配置文件/etc/vsftpd/vsftpd2.conf
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd2.conf
⑻ 更改新的配置文件/etc/vsftpd/vsftpd2.conf
# vi /etc/vsftpd/vsftpd2.conf
//在此文件添加
//listen_address= 192.168.1.234
//将虚拟FTP 服务绑定到eth0:1 接口
⑼ 修改如下的配置语句行:
// ftpd_banner=This FTP server is anonymous only.
//修改为:
// ftpd_banner=This is the alternative FTP site.
⑽ 添加如下的配置语句:
// ftp_username=ftp2
//使此虚拟服务器的匿名用户映射到本地用户ftp2
//这样匿名用户登录后才能进入本地用户ftp2 的/var/ftp2 目录
//修改后,保存退出vi
⑾ 重启服务器:
service vsftpd restart
启动虚拟FTP服务器
Vsftpd /etc/vsftpd/vsftpd2.conf
备注:如果后期想变更此用户的上传目录到(/run/media/root/xxx/wwwroot/ xxx.org ),
请使用下面的命令:
输入怎么想设置的密码则可。
(1)当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错误:
500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
(2)从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,
则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录
的写权限,注意把目录替换成你自己的。
或者你可以在vsftpd的配置文件中增加下列一项:
allow_writeable_chroot=YES
(3)使用cmd命令容器发生
500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list错误
解决:修改vsftpd.conf配置文件,注释以下内容
(4)本地使用ftpClient调试是发生
java.net.SocketException: Connection reset异常
解决:在本地电脑执行以下命令
netsh advfirewall set global StatefulFTP disable
# 启动服务
systemctl start vsftpd.service
# 停止服务
systemctl stop vsftpd.service
# 重启服务
systemctl restart vsftpd.service
# 服务状态查看
systemctl status vsftpd.service
# 设置开机启动
systemctl enable vsftpd
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)