选择特殊符号
选择搜索类型
请输入搜索
FTP是用来在两台计算机之间传输文件,是Internet中应用非常广泛的服务之一。它可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、Linux和Windows等操作系统中都可实现FTP客户端和服务器,相互之间可跨平台进行文件的传输。因此,FTP服务是网络中经常采用的资源共享方式之一。FTP协议有PORT和PASV两种工作模式,即主动模式和被动模式。
FTP(File Transfer Protocol)即文件传输协议,是一种基于TCP的协议,采用客户/服务器模式。通过FTP协议,用户可以在FTP服务器中进行文件的上传或下载等操作。虽然现在通过HTTP协议下载的站点有很多,但是由于FTP协议可以很好地控制用户数量和宽带的分配,快速方便地上传、下载文件,因此FTP已成为网络中文件上传和下载的首选服务器。同时,它也是一个应用程序,用户可以通过它把自己的计算机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP服务的功能是实现完整文件的异地传输。特点如下:
(一)FTP使用两个平行连接:控制连接和数据连接。控制连接在两主机间传送控制命令,如用户身份、口令、改变目录命令等。数据连接只用于传送数据。
(二)在一个会话期间,FTP服务器必须维持用户状态,也就是说,和某一个用户的控制连接不能断开。另外,当用户在目录树中活动时,服务器必须追踪用户的当前目录,这样,FTP就限制了并发用户数量。
(三)FTP支持文件沿任意方向传输。当用户与一远程计算机建立连接后,用户可以获得一个远程文件也可以将一本地文件传输至远程机器。
一般来说,用户联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的一个内容之一。Internet上早期实现传输文件,并不是一件容易的事,我们知道 Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,据统计连接在Internet上的计算机已有上千万台,而这些计算机可能运行不同的操作系统,有运行Unix的服务器,也有运行Dos、Windows的PC机和运行MacOS的苹果机等等,而各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。
与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。
第1步,在开始菜单中依次单击“管理工具”→“Internet信息服务(IIS)管理器”菜单项,打开“Internet信息服务(IIS)管理器”窗口。在左窗格中展开“FTP站点”目录,右键单击“默认FTP站点”选项,并选择“属性”命令。
第2步,打开“默认FTP站点 属性”对话框,在“FTP站点”选项卡中可以设置关于FTP站点的参数。其中在“FTP站点标识”区域中可以更改FTP站点名称、监听IP地址以及TCP端口号,单击“IP地址”编辑框右侧的下拉三角按钮,并选中该站点要绑定的IP地址。如果想在同一台物理服务器中搭建多个FTP站点,那么需要为每一个站点指定一个IP地址,或者使用相同的IP地址且使用不同的端口号。在“FTP站点连接”区域可以限制连接到FTP站点的计算机数量,一般在局域网内部设置为“不受限制”较为合适。用户还可以单击“当前会话”按钮来查看当前连接到FTP站点的IP地址,并且可以断开恶意用户的连接。
第3步,切换到“安全账户”选项卡,此选项卡用于设置FTP服务器允许的登录方式。默认情况下允许匿名登录,如果取消选中“允许匿名连接”复选框,则用户在登录FTP站点时需要输入合法的用户名和密码。本例选中“允许匿名连接”复选框。
第4步,切换到“消息”选项卡,在“标题”编辑框中输入能够反映FTP站点属性的文字(如“服务器配置技术务网FTP主站点”),该标题会在用户登录之前显示。接着在“欢迎”编辑框中输入一段介绍FTP站点详细信息的文字,这些信息会在用户成功登录之后显示。同理,在“退出”编辑框中输入用户在退出FTP站点时显示的信息。另外,如果该FTP服务器限制了最大连接数,则可以在“最大连接数”编辑框中输入具体数值。当用户连接FTP站点时,如果FTP服务器已经达到了所允许的最大连接数,则用户会收到“最大连接数”消息,且用户的连接会被断开。
第5步,切换到“主目录”选项卡。主目录是FTP站点的根目录,当用户连接到FTP站点时只能访问主目录及其子目录的内容,而主目录以外的内容是不能被用户访问的。主目录既可以是本地计算机磁盘上的目录,也可以是网络中的共享目录。单击“浏览”按钮在本地计算机磁盘中选择要作为FTP站点主目录的文件夹,并依次单击“确定”按钮。根据实际需要选中或取消选中“写入”复选框,以确定用户是否能够在FTP站点中写入数据。
第6步,切换到“目录安全性”选项卡,在该选项卡中主要用于授权或拒绝特定的IP地址连接到FTP站点。例如只允许某一段IP地址范围内的计算机连接到FTP站点,则应该选中“拒绝访问”单选框。然后单击“添加”按钮,在打开的“授权访问”对话框中选中“一组计算机”单选框。然后在“网络标识”编辑框中输入特定的网段),并在“子网掩码”编辑框中输入子网掩码。最后单击“确定”按钮。
第7步,返回“默认FTP站点 属性”对话框,单击“确定”按钮使设置生效。现在用户已经可以在网络中任意客户计算机的Web浏览器中输入FTP站点地址来访问FTP站点的内容了。
HTPC通常是摆在客厅里,作为家庭数码影音的中心。放在客厅上的东西,如同电视,DVD机,音响,功放一样,它必须要有精致的外观,谁也不愿意在典雅的客厅上看到一个丑陋的机箱。另外体积不能太大,不论是美感上...
执行ntpdate xxx.xxx.xxx.xxx(ntp服务器地址)。Linux下配置NTP服务器配置方法:1、ntp服务安装NTP服务在RHEL5.x中式默认安装的软件包,可用rpm -qa |g...
网线中:UTP,FTP,SFTP,是什么意思.而STP又是什么意思,请把STP详写,谢谢
非双绞线(UTP):UTP无金属材料,只有一层绝缘胶皮包裹,价格相对便宜,组网灵活,其线路优点是阻燃效果好,不容易引起火灾 STP, Shielded Twisted Pair 网络线; FT...
在主动模式下,FTP客户端首先与FTP服务器的TP21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送Port命令。Port命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过其TCP20端口连接到客户端的指定端口发送数据。FTP服务器必须与客户端建立一个新的连接用来传送数据。主动FTP连接过程如下:
命令连接:客户端>1024端口→服务器21端口;
数据连接:客户端>1024端口←服务器20端口。
在被动模式下,建立控制通道时与主动模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pas命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器上的这个端口,然后FTP服务器将通过这个端口传送数据。在这种情况下,FTP服务器不再需要与客户端建立一个新的连接,被动FTP连接过程如下:
命令连接:客户端>1024端口→服务器21端口;
数据连接:客户端>1024端口→服务器>1024端口。
主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。
授权FTP服务器只允许该FP服务器系统上的授权用户使用。在使用授权FTP服务器之前必须向系统管理员申请用户名和密码,连接此类FTP服务器时必须输入用户名和密码。
匿名FTP服务器允许任何用户以匿名账户FTP或 anonymous登录到FTP服务器,并对授权的文件进行查阅和传输。有些FTP服务器习惯上要求用户以自己的E-mai地址作为登录密码,但这并没有成为大多数服务器的标准作法。
假定正在传输的文件包含简单的ASCI码文本,当文件传输时FTP通常会自动地调整文件的内容,以便将文件存储为另外一台计算机上的ASCI码文本文件。
在二进制传输中,保存的是文件的二进制位序,以便源文件与目标文件逐位一一对应,从而保证二进制文件的正确传输。如果在ASCI方式下传输二进制文件,则系统会自动将二进制数据转译为ASCI信息。这样不仅会使传输速度变慢,还会损坏数据,从而使文件变得无法使用。所以一般在使用FTP传输文件时,通常建议使用二进制传输模式。
Serv-U是一种被广泛运用的FTP服务器端软件,支持3x/9x/ME/NT/2K/2000/xp等全Windows系列。可以设定多个FTP服务器、限定登录用户的权限、登录主目录及空间大小等,功能非常完备。 它具有非常完备的安全特性,支持SSl FTP传输,支持在多个Serv-U和FTP客户端通过SSL加密连接保护您的数据安全等。
Serv-U 是众多的FTP服务器软件之一。通过使用Serv-U,用户能够将任何一台PC 设置成一个FTP 服务器,这样,用户或其他使用者就能够使用FTP 协议,通过在同一网络上的任何一台PC与FTP 服务器连接,进行文件或目录的复制,移动,创建,和删除等。这里提到的FTP 协议是专门被用来规定计算机之间进行文件传输的标准和规则,正是因为有了象FTP 这样的专门协议,才使得人们能够通过不同类型的计算机,使用不同类型的操作系统,对不同类型的文件进行相互传递。
是一款经典的开源FTP解决方案,包括FileZilla客户端和FileZillaServer。其中,FileZillaServer的功能比起商业软件FTP Serv-U毫不逊色。无论是传输速度还是安全性方面,都是非常优秀的一款。
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。
安全性是编写VSFTP的初衷,除了这与生俱来的安全特性以外,高速与高稳定性也是VSFTP的两个重要特点。
在速度方面,使用ASCII代码的模式下载数据时,VSFTP的速度是Wu-FTP的两倍,如果Linux主机使用2.4.*的内核,在千兆以太网上的下载速度可达86MB/S。
在稳定方面,VSFTP就更加的出色,VSFTP在单机(非集群)上支持4000个以上的并发用户同时连接,根据Red Hat的Ftp服务器的数据,VSFTP服务器可以支持15000个并发用户。
Linux下L2TP网络服务器设计
随着Internet的发展和完善,越来越多的企业开始通过使用隧道技术在Internet上构建自己的私有企业网络。L2TP是基于隧道技术的虚拟专用网第二层隧道协议。本文根据L2TP协议的工作原理,分析L2TP协议的结构以及包格式,介绍L2TP网络服务器工作流程,对L2TP网络服务器的功能模块进行设计,详细阐述各个模块的实现过程和主要的数据结构,最后对服务器进行测试分析。
NTP服务器和客户端搭建
NTP SERVER 和 CLIENT 配置 1 NTPSERVER 配置 1.1. Windows 下配置 NTP SERVER 环境: WindowsServer 2012 R2 【运行】 -【regedit】打开注册表 1) 修改 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Tim e\TimeProviders\NtpServer 的 Enabled 的值为 1 2) 修改 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Tim e\Config 的"AnnounceFlags" 值为【 5】 3) 修改 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Tim e\Config 的
导读有时你需临时搭建一个简单的 Web Server,但你又不想去安装 Apache、Nginx 等这类功能较复杂的 HTTP 服务程序时。这时可以使用 Python 内建的 SimpleHTTPServer 模块快速搭建一个简单的 HTTP 服务器。
用 Python 快速实现 HTTP 服务器
SimpleHTTPServer 模块可以把你指定目录中的文件和文件夹以一个简单的 Web 页面的方式展示出来。
假设我们需要以 Web 方式共享目录 /Users/Mike/Docker,只需要以下这个命令行就可以轻松实现:
$ cd /Users/Mike/Docker$ python -m SimpleHTTPServerServing HTTP on 0.0.0.0 port 8000 ...
SimpleHTTPServer 模块默认会在 8000 端口上监听一个 HTTP 服务,这时就可以打开浏览器输入 http://IP:Port访问这个 Web 页面。例如类似下面的 URL:
http://192.168.100.49:8000
如果你需要 Web 服务有一个默认页,可以在目录下创建一个名为 index.html 的文件。如果没有默认页,那么会以列表的形式将目录中的内容显示出来。
如果默认的 8000 端口已经被占用,你想换成使用其它端口号,可以使用如下的命令:
$ python -m SimpleHTTPServer 8080
用 Python 快速实现 FTP 服务器
有时当你想快速搭建一个 FTP 服务器来临时实现文件上传下载时,这是特别有用的。我们这里利用 Python 的Pyftpdlib 模块可以快速的实现一个 FTP 服务器的功能。
首先安装 Pyftpdlib 模块
$ sudo pip install pyftpdlib
通过 Python 的 -m 选项将 Pyftpdlib 模块作为一个简单的独立服务器来运行,假设我们需要共享目录 /Users/Mike/Docker,只需要以下这个命令行就可以轻松实现:
$ cd /Users/Mike/Docker$ python -m pyftpdlib[I 2018-01-02 16:24:02] >>> starting FTP server on :::2121, pid=7517 <<<[I 2018-01-02 16:24:02] concurrency model: async[I 2018-01-02 16:24:02] masquerade (NAT) address: None[I 2018-01-02 16:24:02] passive ports: None
至此一个简单的 FTP 服务器已经搭建完成,访问 ftp://IP:PORT 即可。例如类似下面的 URL:
ftp://192.168.100.49:2121默认 IP 为本机所有可用 IP,端口为 2121。默认登陆方式为匿名。默认权限是只读。
如果你要建一个有认证且可写的 FTP 服务器,可使用类似以下指令:
$ python -m pyftpdlib -i 192.168.100.49 -w -d /tmp/ -u mike -P 123456
小插曲:测试时一直使用密码 000000 这样的弱密码做认证密码,在客户端登陆时一直提示认证失败。看来 Pyftpdlib 模块还做了基本的安全策略哟,不错的!
常用可选参数说明:
-i 指定IP地址(默认为本机所有可用 IP 地址)-p 指定端口(默认为 2121)-w 写权限(默认为只读)-d 指定目录 (默认为当前目录)-u 指定登录用户名-P 指定登录密码
更多参数可以使用以下指令查询:
$ python -m pyftpdlib --helpUsage: python -m pyftpdlib [options]Start a stand alone anonymous FTP server.Options:-h, --helpshow this help message and exit-i ADDRESS, --interface=ADDRESSspecify the interface to run on (default all interfaces)-p PORT, --port=PORTspecify port number to run on (default 2121)-w, --writegrants write access for logged in user (default read-only)-d FOLDER, --directory=FOLDERspecify the directory to share (default current directory)-n ADDRESS, --nat-address=ADDRESSthe NAT address to use for passive connections-r FROM-TO, --range=FROM-TOthe range of TCP ports to use for passive connections (e.g. -r 8000-9000)-D, --debugenable DEBUG logging evel-v, --versionprint pyftpdlib version and exit-V, --verboseactivate a more verbose logging-u USERNAME, --username=USERNAMEspecify username to login with (anonymous login will be disabled and password required if supplied)-P PASSWORD, --password=PASSWORDspecify a password to login with (username required to be useful)
如果你需卸载 Pyftpdlib 模块,可以通过以下命令:
$ pip uninstall pyftpdlib
原文来自:http://www.linuxprobe.com/python-httpftp.html
Tips:“小鸟云”是深圳前海小鸟云计算有限公司旗下云计算品牌,国内领先的企业级云计算服务商。团队拥有多年行业经验,专注云计算技术研发,面向广大开发者、政企用户、金融机构等,提供基于智能云服务器的全方位云计算解决方案,为用户提供可信赖的企业级公有云服务。
当你想快速共享一个目录的时候,这是特别有用的,只需要1行代码即可实现。
FTP 服务器,在此之前我都是使用Linux的vsftpd软件包来搭建FTP服务器的,现在发现了利用pyftpdlib可以更加简单的方法即可实现FTP服务器的功能。
环境要求
Python 2.7Windows / Linux
环境搭建
pip install pyftpdlib
一行代码实现FTP服务器
通过Python的-m选项作为一个简单的独立服务器来运行,当你想快速共享一个目录的时候,这是特别有用的。
在需要共享的目录下执行如下命令即可把当前目录共享出去(匿名登录)
python -m pyftpdlib
至此一个简单的FTP服务器已经搭建完成,访问 ftp://127.0.0.1:2121 即可
(默认IP为 127.0.0.1 、端口为 2121 )
可选参数
-i 指定IP地址(默认为本机的IP地址)
-p 指定端口(默认为2121)
-w 写权限(默认为只读)
-d 指定目录 (默认为当前目录)
-u 指定用户名登录
-P 设置登录密码
简单示例
上述的一行命令已经可以实现一个简单的FTP服务器,但是要搭建一个功能强大完善的FTP服务所涉及到的配置较多,这时需要使用Pyftpdlib提供的 API 来编写。如下是一个简单的示例
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
# 实例化DummyAuthorizer来创建ftp用户
authorizer = DummyAuthorizer()
# 参数:用户名,密码,目录,权限
authorizer.add_user('user', '12345', '/opt/pyftp/test', perm='elradfmwMT')
# 匿名登录# authorizer.add_anonymous('/home/nobody')
handler = FTPHandlerhandler.authorizer = authorizer
# 参数:IP,端口,handler
server = FTPServer(('192.168.56.100', 21), handler)
server.serve_forever()
perm权限选项
读取权限:
"e" =更改目录(CWD,CDUP命令)
"l" =列表文件(LIST,NLST,STAT,MLSD,MLST,SIZE命令)
"r" =从服务器检索文件(RETR命令)
写入权限:
"a" =将数据追加到现有文件(APPE命令)
"d" =删除文件或目录(DELE,RMD命令)
"f" =重命名文件或目录(RNFR,RNTO命令)
"m" =创建目录(MKD命令)
"w" =将文件存储到服务器(STOR,STOU命令)
"M"=更改文件模式/权限(SITE CHMOD命令)
"T"=更改文件修改时间(SITE MFMT命令)
在考虑FTP服务器安全性工作的时候,第一步要考虑的就是谁可以访问FTP服务器。在Vsftpd服务器软件中,默认提供了三类用户。不同的用户对应着不同的权限与操作方式。
一类是Real帐户。这类用户是指在FTP服务上拥有帐号。当这类用户登录FTP服务器的时候,其默认的主目录就是其帐号命名的目录。但是,其还可以变更到其他目录中去。如系统的主目录等等。
第二类帐户是Guest用户。在FTP服务器中,我们往往会给不同的部门或者某个特定的用户设置一个帐户。但是,这个账户有个特点,就是其只能够访问自己的主目录。服务器通过这种方式来保障FTP服务上其他文件的安全性。这类帐户,在Vsftpd软件中就叫做Guest用户。拥有这类用户的帐户,只能够访问其主目录下的目录,而不得访问主目录以外的文件。
第三类帐户是Anonymous(匿名)用户,这也是我们通常所说的匿名访问。这类用户是指在FTP服务器中没有指定帐户,但是其仍然可以进行匿名访问某些公开的资源。
在组建FTP服务器的时候,我们就需要根据用户的类型,对用户进行归类。默认情况下,Vsftpd服务器会把建立的所有帐户都归属为Real用户。但是,这往往不符合企业安全的需要。因为这类用户不仅可以访问自己的主目录,而且,还可以访问其他用户的目录。这就给其他用户所在的空间 带来一定的安全隐患。所以,企业要根据实际情况,修改用户所在的类别。