搭建FTP服务器实现文件共享

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。

用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。FTP的任务是从一台计算机将文件传送到另一台计算机,不受操作系统的限制。

传输方式

FTP的传输有两种方式:ASCII、二进制

ASCII传输方式

假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。

但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝。

二进制传输模式

在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。

如在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会损坏数据。(ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果传输二进制文件,所有的位都是重要的。)

FTP支持两种模式:Standard (PORT方式,主动方式),Passive (PASV,被动方式)。

Port模式

FTP 客户端首先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。

Passive模式

建立控制通道和Standard模式类似,但建立连接后发送Pasv命令。服务器收到Pasv命令后,打开一个临时端口(端口号大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口传送数据。

很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Linux上搭建FTP服务器,通常使用的是vsftpd(Very Secure File Transfer Protocol Daemon)服务,它是一个轻量级、易于配置且安全的FTP服务器软件。下面是安装和配置FTP服务器的基本步骤: 1. 安装vsftpd: 在大多数Linux发行版中,你可以使用包管理器来安装,例如在Ubuntu/Debian上: ``` sudo apt update sudo apt install vsftpd ``` 或者在CentOS/RHEL上: ``` sudo yum install vsftpd ``` 2. 启动vsftpd服务并设置自动启动: ``` sudo systemctl start vsftpd sudo systemctl enable vsftpd ``` 3. 配置基本文件: - `/etc/vsftpd/vsftpd.conf` 是主要的配置文件,你可以用文本编辑器打开它。默认情况下,它可能会有基本的配置,但可能需要添加或修改以下部分: - `anonymous_enable=YES`:是否允许匿名登录,建议设置为`NO`以提高安全性。 - `local_user_map`:指定本地用户的映射规则。 - `chroot_local_user=YES`:将用户限制在他们自己的家目录下。 4. 用户和权限设置: - 创建一个FTP用户并分配相应的文件夹权限。例如,创建一个用户`ftpuser`: ``` sudo useradd -d /var/ftp/ftpuser ftpuser ``` - 设置密码: ``` sudo passwd ftpuser ``` - 授权用户对特定目录的访问,比如`/var/ftp`: 5. 配置防火墙(可选): 如果你的系统运行着防火墙,如iptables,确保允许FTP端口21的入站连接: ``` sudo ufw allow in/tcp 21 sudo ufw reload ``` 6. 重启vsftpd以应用新的配置: ``` sudo systemctl restart vsftpd ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值