7.9 用vsftpd 配置基于IP的虚拟FTP 服务器

7.9 用vsftpd 配置基于IP的虚拟FTP 服务器,第1张

配置虚拟IP 地址

建立虚拟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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11170620.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存