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 支持文件沿任意方向传输。当用户与一远程计算机建立连接后,用户可以获得一个远程文件也可以将一本地文件传输至远程机器。
FTP 服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照 FTP 协议提供服务。 FTP 是 File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持 FTP 协议的服务器就是 FTP 服务器。
sudo apt-get install vsftpd
vsftpd 是 “very secure FTP daemon(非常安全的 FTP 守护程序/进程)” 的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX 等系统上面,是一个完全免费的、开发源代码的 ftp 服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持 IPv6、速率高等。
当我们重新安装一个软件时,都要修改一下软件的基本配置,为了我们使用起来更方便,所以安装一个服务器,也需要修改一下服务器的默认配置。
sudo vi /etc/vsftpd.conf (etc 是一个 root 目录,操作 ect 下的文件都要 root 权限。 .conf 是配置文件)
添加下面设置:
#(允许匿名用户访问) YES 大小写都可以
anonymous_enable=YES
#(匿名用户登录到服务器以后,匿名用户所在的根目录为/home/uesrname/ftp,
#换一句话说,就是我这个服务器共享的目录是/home/uesrname/ftp,
#也就是别的用户通过ftp登录到我这个服务器,所能看到的就是目录/home/uesrname/ftp中的内容,
#这个目录必须要已经存在!!!)
anon_root=/home/uesrname/ftp
#(匿名用户登录我这个服务器不需要密码,可以直接访问)
no_anon_password=YES
#(允许匿名用户进行写操作)
write_enable=YES
#(允许匿名用户上传东西)
anon_upload_enable=YES
#(允许匿名用户创建目录)
anon_mkdir_write_enable=YES
#(修改匿名用户上传文件后对文件操作的权限)
anon_umask=0022
当服务器配置都修改好并且已经保存了之后,需要重启一下服务器,重新加载 /etc/vsftpd.conf 配置文件,所修改的配置才能生效。
#Ubuntu 12.04 下
sudo /etc/init.d/vsftpd restart
#Ubuntu 14.04 下
sudo /lib/init/upstart-job vsftpd restart
cd ~/ftp
mkdir anonymous
chmod 777 anonymous (使匿名用户足够的操作权限)
ftp IP(你要连接的主机的地址)
cd anonymous
put somefile (上传)
get somefile (下载)
lftp 是一款类 Unix 系统下命令行界面的 FTP 客户端软件,作者是 Alexander Lukyanov ,在 GNU 通用公共许可证下发布。除了 FTP 外,还支持 FTPS、HTTP、HTTPS、SFTP、FXP 等多种协议。此外,lftp 也内含一个简单的 BitTorrent 客户端。
lftp 提供了一个类似 Unix shell 的用户界面,用户可以在互动模式下运行,也可以直接使用脚本操作。lftp 亦支持多线程下载。
Ubuntu 默认已经安装 ftp 客户端,ftp 账户登录不安全,约等于明文传输,会被截取账号信息;ftp 不能下载/上传文件夹。
lftp 也是一种 ftp 客户程序。它是以文本方式操作的,但是比起图形界面更为方便。lftp 几乎具有 bash 的所有方便功能,Tab 补全,bookmark,queue, 后台下载等可以得到支持。用法与 ftp 类似,主要的指令如下:
put 上传文件
mput 上传多个文件
get 下载文件
mget 下载多个文件
mirror 下载整个目录及其子目录
mirror –R 上传整个目录及其子目录
!command 调用本地 shell 执行命令 command
注意,有的发行版可能缺省没有安装 lftp 工具,需要用户自己安装。如果是 Debian 或 Ubuntu 系统,则安装 lftp 软件包。
sudo apt-get install lftp
NFS,是 Network File System 的简写,即网络文件系统。网络文件系统是 FreeBSD 支持的文件系统中的一种,也被称为 NFS。 NFS 允许一个系统在网络上与他人共享目录和文件。通过使用 NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。
sudo mount -t nfs -o tcp -o nolock IP:/home/uesrname/nfsserver /mnt
mount 不仅可以挂载 U 盘,还可以挂载文件系统,这里的意思挂载 nfs 类型的网络文件系统。
-o tcp 指明电脑A与服务器电脑之间传输数据用的是 tcp 协议。
-o nolock 指明着两者之间传输数据,不加锁。也就是大家可以一起去访问这个目录/文件,是公开的。
IP 电脑A要挂载的服务器电脑的 IP 地址。
:/home/username/nfserver 服务器电脑共享的目录路径。这个目录应该是公开的、已知的目录。
/mnt 电脑A要挂载到本地的挂载点目录是 /mnt。这个目录可以根据客户需求自己更换目录。
挂载成功以后,/mnt 目录下的文件,与 /home/username/nfserver 是相同的。对 /mnt 内的文件进行添加用
sudo apt-get install nfs-kernel-server
sudo vi /etc/exports
添加这行配置
#你要共享的路径/目录是 /home/用户名/nfs
# * 代表 IP 地址,表示可以让所有IP地址挂载我,如果指明某个IP之后,只能由指定的IP地址挂载,并访问该目录了
# rw 允许读写权限 ro 只读
# sync 同步,任何人/用户对自己挂载的目录进行修改之后,其余用户下的挂载的目录内容也会同样发生变化。
# no_root_squash no_root_squash:当登录NFS主机使用共享目录的使用者是root时,其权限将被转换成为匿名使用者,通常它的UID与GID都会变成nobody身份。
# root_squash;如果登录NFS主机使用共享目录的使用者是root,那么对于这个共享的目录来说,它具有root的权限
/home/用户名/nfs *(rw,sync,no_root_squash)
mkdir /home/用户名/nfs
# .d 守护进程
sudo /etc/init.d/nfs-kernel-server restart
cd /home/用户名/nfs
touch hello
sudo mount -t nfs -o nolock -o tcp IP:/home/用户名/nfs /mnt
sudo umount /mnt
Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它是专为远程登录会话(甚至可以用 Windows 远程登录 Linux 服务器进行文件互传)和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过SSH,可以把所有传输的数据进行加密,也能够防止 DNS 欺骗和 IP 欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。目前已经成为 Linux 系统的标准配置。
SSH 只是一种协议,存在多种实现,既有商业实现,也有开源实现。
sudo apt-get install openssh-server
ssh 用户名@IP
Telnet 协议是 TCP/IP 协议族中的一员,是 Internet 远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在 telnet 程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个 telnet 会话,必须输入用户名和密码来登录服务器。Telnet 是常用的远程控制 Web 服务器的方法。
Telnet 服务虽然也属于客户机/服务器模型的服务,但它更大的意义在于实现了基于 Telnet 协议的远程登录(远程交互式计算)。
Telnet 是 Internet 远程登录服务的标准协议和主要方式,最初由 ARPANET 开发,现在主要用于 Internet 会话,它的基本功能是允许用户登录进入远程主机系统。
Telnet 可以让我们坐在自己的计算机前通过 Internet 网络登录到另一台远程计算机上,这台计算机可以是在隔壁的房间里,也可以是在地球的另一端。当登录上远程计算机后,本地计算机就等同于远程计算机的一个终端,我们可以用自己的计算机直接操纵远程计算机,享受远程计算机本地终端同样的操作权限。
Telnet的主要用途就是使用远程计算机上所拥有的本地计算机没有的信息资源,如果远程的主要目的是在本地计算机与远程计算机之间传递文件,那么相比而言使用 FTP 会更加快捷有效。