IIS 架设FTP服务器图文教程

在企业中,对于一些大文件的共享,通常采用FTP这种形式来完成,并且由于FTP能消除操作系统之间的差异,对于不同的操作系统之间共享文件的作用就显得尤为突出。

一、FTP服务器的工作方式

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。其中PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器从20端口向客户端的空闲端口发送连接请求,建立一条数据链路来传送数据。而PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端向服务器的空闲端口发送连接请求,建立一条数据链路来传送数据。

FTP服务器可以以两种方式登录,一种是匿名登录,另一种是使用授权账号与密码登录。其中,一般匿名登录只能下载FTP服务器的文件,且传输速度相对要慢一些,当然,这需要在FTP服务器上进行设置,对这类用户,FTP需要加以限制,不宜开启过高的权限,在带宽方面也尽可有的小。而需要授权账号与密码登录,他需要管理员将账号与密码告诉网友,管理员对这些账号进行设置,比如他们能访问到哪些资源,下载与上载速度等,同样管理员需要对此类账号进行限制,并尽可能的把权限调低,如没十分必要,一定不要赋予账号有管理员的权限。

二、利用WINDOWS组件IIS来构件FTP服务器

在架设FTP网站时,对于仅仅作为共享文件这种服务而没有其他特殊要求的,可通过Windows XP/2000/2003操作系统的IIS组件来完成。下面我们来简单进行说明:

1. IIS安装,可按照“开始”——>“设置”——>“控制面板”——>“添加/删除程序”,打开“添加/删除程序”对话框,选中“添加/删除Windows组件”出现如下图




图1

2. 选中“Internet信息服务(IIS)”,查看其详细信息,如图2




图2

3. 选中图2中的“文件传输协议(FTP)服务器”项后,单击确定,接下来按照向导至安装完成。
4. 打开“开始”——>“程序”——>“管理工具”——>“Internet信息服务”,打开IIS控制台。如图3




图3

5. 单击“默认FTP站点”,在右键快捷菜单中选中“属性”,打开“默认FTP站点属性”对话框,如图4




图4

6. 在“FTP站点”选项卡中,需要修改“说明”为容易识别的标识,如阿九的FTP站,IP地址修改为当前主机的某个IP地址(在主机具备多IP地址的情况下)。如本机修改为私有地址“192.168.112.128”,“TCP端口”为默认的FTP端口“21”。如图5




图5

7. 在“安全帐号”中选中“允许匿名连接”,如果对于客户端登陆时需要进行身份验证,则可通过“浏览”来选中服务器的Windows用户。如图6、图7








图6




图7

8. 在“消息”选项卡中添加FTP服务器的登陆欢迎信息和退出信息,如图8




图8

9. 在“主目录”选项卡中选择FTP服务器向外提供服务的主目录,此处可选择“此计算机上的目录”,通过浏览进行选择,或者选择“另一计算机上的共享位置”,这是FTP服务器向外提供服务的主目录就在其他主机上,格式为“\\{服务器}\{共享名}”,在FTP站点目录下的“读取”、“写入”、“日志访问”对FTP站点的权限进行配置,如在此处,我们出于安全考虑为匿名anonymous用户通过分配“读取”而不分配“写入”如图9所示




图9

10. 在“目录安全性”选项卡中对FTP服务器的访问控制权限进行分配,可通过此处将FTP服务器的访问权限授权给某部分IP用户或者拒绝来自某些IP用户的访问。注意当选择了“授权访问”后,在下表中的IP地址将被拒绝,如选择“拒绝访问”,下表中的IP地址用户将被授权。如图10




图10

11. 至此,FTP服务器架设成功。

三、测试FTP服务器

1. 打开“开始”——>“程序”——>“附件”——>“ 命令提示符”,在光标处输入“FTP   192.168.112.128”,如图11




图11

2. 输入匿名帐户anonymous,密码为自己的邮件地址,如图12




图12

3. 这时可通过FTP的命令对FTP服务器进行操作,如图13




图13

4. 通过IE来验证或者获取FTP服务,在IE的地址栏中输入“ftp://192.168.112.128/”如图14




图15

5. 此外还可以通过一些FTP客户端软件来访问,如FLASHFTP、CUTEFTP等。

四、虚拟目录及多站点的配置

1. 在FTP的配置过程中,我们经常需要对一个主机提供多个FTP站点来进行FTP共享,此时建立多站点的形式来完成,完成时可通过新建站点的形式,根据新建站点向导一步步完成。如图16




图16

2. 这时,可通过一个主机上的不同IP地址来架设,或者通过同一个IP地址,不同的端口号来进行识别。如图17,我们使用端口2121来构建第二个FTP站点。








图17

3. 在FTP的配置过程中,我们经常需要对多个不同路径的目录进行FTP共享,此时可通过虚拟目录来完成,如图16中的新建虚拟目录。通过新建虚拟目录向导完成。虚拟目录是在主目录下通过某一个文件夹链接到其他目录的形式,在主目录中实际不存在此文件夹中的内容,该内容在其他目录下实际存在。如图18 ,图19所示




图18




图19

4. 这时,注意需要在提供FTP站点服务的主目录即F:\ 01虚拟仿真下建立一个名为virtual directory的文件夹,否则虚拟目录无法提供FTP共享服务。如图20




图20




图21

五、IIS构建FTP服务器安全性探讨

对于通过IIS构建的FTP服务器,无论是匿名帐户或者是通过授权帐户及密码来访问FTP服务器,由于FTP服务的帐户和密码身份验证的方式均采用明文形式在网络上传播的,任何主机只要采用数据包截取软件均可截获FTP服务器登陆的帐户及密码。所以其安全性还需要通过其他方式来增强。

六、小结

对于通过IIS来构建FTP服务器,需要注意其硬盘的格式,如该盘为NTFS格式,还需要将其目录设置为共享或者使FTP客户的帐户具备此文件夹的访问权限,如果是FAT32格式,则可通过上述方法来构建。对于其FTP服务器的帐户的安全性,还需要通过SSL加密等形式来加强安全性的验证,以防止帐号被他人截获。

时间: 2009-05-31

windows 2003服务器安装 IIS6.0和IIS自带FTP服务器图文教程

写这篇文章主要是帮助刚刚接触服务器或云主机的小白,绝大多数新手刚接触windows 2003服务器都是安装的IIS服务器,下面我们就2003服务器来安装IIS以及IIS自带的FTP服务器做个详细完整的图文教程. 以下步骤请远程登录服务器后再操作 1.下载IIS6.0安装包,点击下载IIS6.0安装包,比如下载到D盘 2.将这个压缩包解压 3.依次点击远程桌面左下角的 开始--控制面板--添加或删除程序 在点击 添加/删除windows组件(A) 4.在windows组件里面找到应用程序服务器,并

JAVA技术实现上传下载文件到FTP服务器(完整)

具体详细介绍请看下文: 在使用文件进行交互数据的应用来说,使用FTP服务器是一个很好的选择.本文使用Apache Jakarta Commons Net(commons-net-3.3.jar) 基于FileZilla Server服务器实现FTP服务器上文件的上传/下载/删除等操作. 关于FileZilla Server服务器的详细搭建配置过程,详情请见 FileZilla Server安装配置教程 .之前有朋友说,上传大文件(几百M以上的文件)到FTP服务器时会重现无法重命名的问题,但本人亲

搭建FTP服务器的简单实例

FTP服务器的搭建非常简单 apt-get install vsftpd 开启.停止.重启vsftpd服务也很简单 service vsftpd start | stop | restart 账号 安装后会生产一个ftp组和ftp用户 修改用户密码 passwd ftp 配置 关键配置,修改vsftpd的配置文件vi /etc/vsftpd.conf #禁止匿名访问 anonymous_enable=NO #接受本地用户 local_enable=YES #可以上传 write_enable=Y

在服务器中用IIS建立FTP服务器的图文方法

第一步:通过任务栏的"开始->所有程序->管理工具",再其下找到Internet信息服务(IIS)管理器,打开管理器后会发现在最下方有一个"FTP站点"的选项,我们就是通过它来建立FTP服务器.(如下图) 第二步:默认情况下FTP站点有一个默认FTP站点,我们只要把资源放到系统目录下的inetpub目录中的FTPROOT文件夹即可.例如系统在F盘,只要将分享的资源放到f:\inetpub\ftproot目录中就可以了,用户登录默认FTP站点时将会看到放到

C# FTP,GetResponse(),远程服务器返回错误

FtpWebRequest类实现ftp功能的一般过程 1.创建一个FtpWebRequest对象,指向ftp服务器的uri 2.设置ftp的执行方法(上传,下载等) 3.给FtpWebRequest对象设置属性(是否支持ssl,是否使用二进制传输等) 4.设置登录验证(用户名,密码) 5.执行请求 6.接收相应流(如果需要的话) 7.如果没有打开的流,则关闭ftp请求 其中一些重要的属性如下: ·Credentials - 指定登录ftp服务器的用户名和密码. ·KeepAlive - 指定连接

IIS下FTP服务器的PASV端口范围修改方法

虽然可以通过一些方法减少端口范围,但范围都不能缩小到理想的范围内,正常情况下PASV的端口最多会使用到10个吧,就算是专门的FTP下载服务器最多20个也就够了.下面说说使用IIS管理实用程序Adsutil.vbs修改FTP服务器的PASV端口的范围: 使用命令行根据顺序执行 cd c:\Inetpub\AdminScripts adsutil.vbs set /MSFTPSVC/PassivePortRange "10000-10009" 有可能有的服务器已经进行过安全配置,这样直接执

批处理(ftp)上传文件到服务器的代码

backup.bat 复制代码 代码如下: backup.batftp -n -s:"d:\userweb\upbak.ftp" upbak.ftp 复制代码 代码如下: upbak.ftpopen 192.168.1.19 user webbakusername bakpassword!@#123 lcd D:\userweb\www.gsta.cn\CMS\Databases bin prompt mput *.* bye quit exit

批处理FTP上传文件

背景:本机一个文件"A.TXT"在C盘根目录下,需要上传到FTP服务器"192.168.0.1"的"X"目录下面 复制代码 代码如下: @echo off set ftpfile=putfiles.ftp set logfile=putfiles.log echo open 192.168.0.1 > "%ftpfile%" rem 把下面行中的 username和password改为你的用户名和密码 echo user

详解Python下ftp上传文件linux服务器

模块介绍: from ftplib import FTP ftp = FTP() #设置变量 ftp.set_debuglevel(2) #打开调试级别2 显示详细信息 ftp.connect("IP", "port") #连接ftp, IP和端口 ftp.log("user", "password") #连接的用户名.密码 ftp.cwd(pathname) #设置FTP当前操作的路径 ftp.dir() #显示目录下的文件

Python ftp上传文件

以下代码比较简单,对python实现ftp上传文件相关知识感兴趣的朋友可以参考下 #encoding=utf8 from ftplib import FTP #加载ftp模块 IP = '103.240.150.104' user = 'webmaster@stchat.cn' password = '5' filename = 'zhihu.html' path = '/root/Desktop/zhihu.html' ftp=FTP() #设置变量 ftp.set_debuglevel(2)

java实现上传文件到服务器和客户端

JAVA编写一个可以上传文件的服务器和客户端,具体内容如下 服务端 class Server { public static void main(String[] args) throws Exception { //建立服务端Socket ServerSocket ss = new ServerSocket(10005); //接收客户端Socket Socket fileLoaderSocket = ss.accept(); //打印连接信息 String ip = fileLoaderSo

Java如何实现上传文件到服务器指定目录

前言需求 使用freemarker生成的静态文件,统一存储在某个服务器上.本来一开始打算使用ftp实现的,奈何老连接不上,改用jsch.毕竟有现成的就很舒服,在此介绍给大家. 具体实现 引入的pom <dependency> <groupId>ch.ethz.ganymed</groupId> <artifactId>ganymed-ssh2</artifactId> <version>262</version> <

PHP实现ftp上传文件示例

FTP上传是PHP实现的一个常见且非常重要的应用技巧,今天就来与大家分享一下PHP实现FTP上传文件的简单示例.希望对大家的PHP学习能带来一定的帮助. 主要代码如下: function make_directory($ftp_stream, $dir){ // if directory already exists or can be immediately created return true if ($this->ftp_is_dir($ftp_stream, $dir) || @ftp

Java使用SFTP上传文件到服务器的简单使用

最近用到SFTP上传文件查找了一些资料后自己做了一点总结,方便以后的查询.具体代码如下所示: /** * 将文件上传到服务器 * * @param filePath * 文件路径 * @param channelSftp * channelSftp对象 * @return */ public static boolean uploadFile(String filePath, ChannelSftp channelSftp) { OutputStream outstream = null; In

Python实现FTP上传文件或文件夹实例(递归)

本文实例讲述了Python实现FTP上传文件或文件夹实例.分享给大家供大家参考.具体如下: import sys import os import json from ftplib import FTP _XFER_FILE = 'FILE' _XFER_DIR = 'DIR' class Xfer(object): ''''' @note: upload local file or dirs recursively to ftp server ''' def __init__(self): s

Android上传文件到服务器的方法

本文实例为大家分享了Android端实现文件上传的具体代码,供大家参考,具体内容如下 1).新建一个Android项目命名为androidUpload,目录结构如下: 2).新建FormFile类,用来封装文件信息 package com.ljq.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream;