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

在虚拟机上的Linux系统配置FTP服务,跟Windows建立连接传输文件的具体操作步骤如下:

1、在电脑上下载并安装好小型FTP服务器(QuickEasyFTPServer)软件,打开进行设置用户名,用于远程登录。

2、设置密码,再输一次确认密码。

3、设置想共享的文件夹。

4、设置各项权限,包括下载上传权限、下载上传速度限制等。

5、全部设置完毕后,点击“完成”。

6、完成之后,可以在软件里进行各项服务器配置,并且点左上角绿色按钮可以启动服务器,启动后,绿色按钮变暗,红色按钮变亮。

● 第一步:在服务器上建立一个数据库(access、SQL-SERVER、MYSQL均可以),简单一点就ACCESS吧。数据库内建立两个表:

上传用户管理用:admin(ID, Name, Password, Type)

保存上传文件数据:files(ID, ParentID, FileName, FileLength, FileType, FileData, UpDate, UserID)。

如果FileLength=0,则表示其为文件夹,并且为每个用户建立一个根文件夹。

● 第二步:建立用户登陆页面,并使用SESSION将用户的ID保存起来,用于限制其对文件的操作。

Session("Name") = list("SName")

Session("UID") = list("ID")

● 第三步:建立用户主页面(显示用户上传过的文件)

strSQL = "SELECT * FROM files WHERE ParentID=" &userRootID ' userRootId 为用户根文件夹的ID

strSQL = strSQL &" AND UserID=" &SESSION("UID")

strSQL = strSQL &" ORDER BY FileName"

● 第四步:上传文件页面

list.AddNew

list("ParentID") = userRootID

list("FileName") = Form("Name")

list("FileLength") = Form("Length")

list("FileType") = Form("Type")

list("FileData").AppendChunk MidB(sdata,Form("Start"),Form("Length"))

list("UserID") = Session("UID")

list("UpDate") = Now()

list.Update

● 第五步:文件管理操作(使用文件的ID对文件进行表识,并且对用户的操作进行限制)

删除:"DELETE * FROM files WHERE ID=" &iID &" AND UserID=" &Session("UID")

下载:"SELECT * FROM files WHERE ID=" &iID &" AND UserID=" &Session("UID")

Set conn = Server.CreateObject("ADODB.Connection")

conn.Open myConnStr

Set list = conn.Execute("SELECT * FROM files WHERE ID=" &iID &" AND UserID=" &Session("UID"))

If NOT list.EOF Then

If list("FileLength") >0 Then

Response.AddHeader "Content-disposition", "inlinefilename=" &list("FileName")

Response.ContentType = list("FileType")

Response.Binarywrite(list("FileData").GetChunk(list("FileLength")))

End If

End If

● 再完成一些其他的辅助操作页面即可。当然由于浏览器的限制,文件上传的续传技术不能直接使用,只能通过客户端软件来实现。网络上有个软件叫“上传文件管理器”(包含ASP源代码),实现了上面的功能。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/268699.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存