FTP是用于在网络上进行文件传输的一套标准协议,FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向ftp服务器的进口。FTP有两种使用模式:主动和被动。主动模式要求客户端和服务器端同时打开并且监听一个端口以建立连接。在这种情况下,客户端由于安装了防火墙会产生一些问题。所以,创立了被动模式。被动模式只要求服务器端产生一个监听相应端口的进程,这样就可以绕过客户端安装了防火墙的问题。首先安装FTP服务软件:
yum install vsftpd
服务操作:
service vsftpd start service vsftpd stop service vsftpd restart
与搭建smb服务器一样,也要先创建一个不可以登录的用户并为FTP服务所使用:
useradd -s /usr/sbin/nologin lidqftp
创建一个ftp的访问目录,并将目录的所属者指定为lidqshare,将share目录的所属组分配为lidq:
mkdir -p /ftp chown -R lidqftp /ftp chgrp -R lidq /ftp ls -lh drwxrwxr-x. 2 lidqftp lidq 4.0K Jun 24 14:04 ftp
修改/etc/vsftpd/vsftp.conf文件,修改以下配置项:
#禁用匿名登录 anonymous_enable=NO #本地录登启用 local_enable=YES #可写 write_enable=YES #被动模式可用 pasv_enable=YES #被动模式可用最小端口号 pasv_min_port=2100 #被动模式可用最大端口号 pasv_max_port=2199
保存配置文件重启vsftpd服务:
service vsftpd restart
使用ftp命令来测试FTP服务是否已经搭建成功:
ftp 172.16.1.2 Connected to 172.16.1.2 (172.16.1.2). 220 (vsFTPd 3.0.2) Name (172.16.1.2:lidq): lidqftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (172,16,1,2,8,77). 150 Here comes the directory listing. -rw-rw-r-- 1 1000 1000 93 Jun 24 06:04 c_test.c -rw-rw-r-- 1 1002 1002 121 Jun 24 06:04 cpp_test.cpp 226 Directory send OK. ftp>
在fpt命令下可以使用get命令取得FTP服务器上的文件到本地,使用put命令将本地文件上传到服务器:
ftp> get c_test.c local: c_test.c remote: c_test.c 227 Entering Passive Mode (172,16,7,8,8,102). 150 Opening BINARY mode data connection for c_test.c (93 bytes). 226 Transfer complete. 93 bytes received in 2.7e-05 secs (3444.44 Kbytes/sec) ftp> put Test.java local: Test.java remote: Test.java 227 Entering Passive Mode (172,16,7,8,8,115). 150 Ok to send data. 226 Transfer complete. 106 bytes sent in 1.4e-05 secs (7571.43 Kbytes/sec) ftp> ls 227 Entering Passive Mode (172,16,7,8,8,126). 150 Here comes the directory listing. -rw-r--r-- 1 1002 1002 106 Jun 24 06:17 Test.java -rw-rw-r-- 1 1000 1000 93 Jun 24 06:04 c_test.c -rw-rw-r-- 1 1002 1002 121 Jun 24 06:04 cpp_test.cpp ftp>
可见FTP服务器搭建成功。
另外,如果使用局域网内其它计算机访问FTP时,需要将防火墙的20、21和2000~2199端口打开:
iptables -A INPUT -p tcp -m tcp --dport 20:21 -j ACCEPT iptables -A OUTPUT -p tcp -m tcp --dport 20:21 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 2000:2199 -j ACCEPT iptables -A OUTPUT -p tcp -m tcp --dport 2000:2199 -j ACCEPT
Copyright © 2015-2023 问渠网 辽ICP备15013245号