FTP是一种文件传输协议,用于在服务器和客户端之间传输文件的协议。是一个非常常用的服务,应用场景主要是设备间的文件共享、发布服务程序、日志文件管理等。这里我们将在ubuntu环境中安装并测试一些FTP服务。
FTP分类
FTP
FTP基于TCP发送,FTP使用双TCP连接。
支持用户登录认证和目录列表。
控制连接使用TCP端口号21,用于在FTP客户端和FTP服务器之间发送FTP控制命令和命令执行信息。
用于数据连接的TCP端口号并不固定,必须根据所使用的数据传输模式来确定。主动模式下端口号为20,被动模式下端口号为随机。
SFTP
SFTP(SSH文件传输协议)是一种基于SSH的安全文件传输协议。我之前已经介绍过详细信息,所以这里不再重复。
TFTP
TFTP(Trivial File Transfer Protocol)是TCP/IP协议族中的一种简单文件传输协议,用于在客户端和服务器之间传输文件。
TFTP 基于UDP 协议进行文件传输。与FTP 协议不同,TFTP 不需要用户登录即可传输文件。您只能从文件服务器下载或上传文件;不能列出目录。
TFTP 通常用于在嵌入式系统中传输文件。这是因为u-boot本身支持该协议,可以用来传输文件和下载目标计算机程序。
Ubuntu 安装FTP服务
安装vsftps服务
ubuntu@ubuntu-virtual-machine:~$ sudo apt install vsftpd 配置文件/etc/vsftpd.conf
直接将可用FTP 配置文件的全文粘贴到此处。这也来自在线教程,但我们也将使用此配置文件,因此请确保您可以使用它。
监听=NOlisten_ipv6=YESanonymous_enable=NOlocal_enable=YESwrite_enable=YESdirmessage_enable=YESuse_localtime=YESxferlog_enable=YESconnect_from_port_20=YESchroot_local_user=YESsecure_chroot_dir=/var/run/vsftpd/emptypam_service_name=vsftpdrsa_cert_file=/etc/ss l/pd.pemrsa_private_key_file=/etc/ssl/private /vsftpd.pemssl_enable=NOuser_sub_token=$USERlocal_root=/home/$USER/ftppasv_min_port=30000pasv_max_port=31000userlist_enable=YESuserlist_file=/etc/vsftpd.user_listuserlist_deny=NO 防火墙设置
如前所述,ftp 服务使用两个网络端口:20 和21,因此请配置防火墙以避免防火墙限制。
ubuntu@ubuntu-virtual-machine:~$ sudo ufw allowed 20:21/tcp 防火墙规则已更新规则已更新(v6)ubuntu@ubuntu-virtual-machine:~$ sudo ufwallow 30000:31000/tcp 防火墙规则已更新规则已更新更新(v6) ubuntu@ ubuntu-virtual-machine:~$ sudo ufw disable 防火墙自动禁用ubuntu@ubuntu-virtual-machine:~$ sudo ufw Enable 此命令:系统启动时可能会中断当前的ssh 连接。您想继续(y|n)吗? y在系统启动时启用并激活防火墙。创建ubuntu@ubuntu-virtual-machine:~$FTP 登录帐户。
为大中型网络环境中安全所需的FTP服务器创建单独的帐户。同时,该帐户只能用于访问FTP服务。
ubuntu@ubuntu-virtual-machine:~$ sudo adduser ftpuser1 添加用户'ftpuser1'. 添加新组'ftpuser1' (1002). 将新用户'ftpuser1' (1002) 添加到组添加到'ftpuser1'。正在从主目录'/home/ftpuser1'.'/etc/skel'.复制文件新密码:请重新输入新密码:passwd:密码已成功更新ftpuser1请更改您的用户信息输入新值或按Enter 键使用默认值。 全名[]: ftpuser1 房间号码[]: 工作电话[]: 家庭电话[]: 其他[]: 此信息正确吗? [Y/n] yubuntu@ubuntu-virtual-machine:~$ echo 'ftpuser1 ' sudo tee -a /etc/vsftpd.user_listftpuser1ubuntu@ubuntu-virtual-machine:~$ cat /etc/vsftpd.user_list ftpuser1ubuntu@ubuntu-virtual-machine:~$ sudo mkdir -p /home/ftpuser1/ftp/uploadubuntu@ubuntu-virtual-machine: $ sudo chmod 550 /home/ftpuser1/ftpubuntu@ubuntu-virtual-machine:$ sudo chmod 750 /home/ftpuser1/ftp/Uploadubuntu@ubuntu-virtual-machine:$ sudo chown -R ftpuser1: /home/ftpuser1 /ftpubuntu@ ubuntu-virtual-machine:~$ echo -e '#!/bin/sh\necho '此帐户仅限FTP 访问。 '' | sudo tee -a /bin/ftponlyubuntu@ubuntu-virtual-machine:~$ sudo chmod a+x /bin/ftponlyubuntu@ubuntu-virtual-machine:~$ echo '/bin/ftponly' | sudo tee -a /etc /shellsubuntu@ubuntu-virtual-machine:~$ sudo usermod ftpuser1 -s /bin/ftponly 至此,ubuntu上ftp服务的安装就完成了。您可以使用systemctl命令检查服务是否正常运行。
ubuntu@ubuntu-virtual-machine:~$ sudo systemctl status vsftpd.service vsftpd.service - vsftpd FTP 服务器Loaded: 已加载(/lib/systemd/system/vsftpd.service;已启用;供应商预设: 已启用) Active: 活动(自Sun 起运行)中) 2022-06-26 19:03:52 CST; 16 分钟前Process: 1047 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited, status=0/SUCC Main PID: 1053 (vsftpd) Tasks: 1 ( limit333) 6 0 4578 ) Memory: 772.0K CGroup: /system.slice/vsftpd.service 1053 /usr/sbin/vsftpd /etc/vsftpd.confJune 26 19:03:51 ubuntu-虚拟机systemd[1]333 60 vsftpd FTP 服务器启动.6 月26 日:03:52 ubuntu-virtual-machine systemd[1]: vsftpd FTP 服务器启动。 lines 1-12/12 (END)
Windows FTP客户端使用
使用Windows下的FTP客户端访问ubuntu上的FTP,测试安装是否正确。我们将在这里使用它。 Filezilla 的FTP 客户端软件。
您可以访问官方网站并下载。 FileZilla中文网站- 免费开源FTP解决方案
当你打开filezilla软件时,你会在左上角看到一个站点管理按钮,点击它并参考下面的设置来创建一个新站点。
ftp站点
当您创建新站点并单击“连接”时,系统将提示您输入您在创建FTP 登录用户时创建的密码进行登录。
ftp登录
ftp登录成功后,左边会看到你本地的Windows文件目录,右边会看到ubuntu服务器指定的ftp目录,说明你可以在它们之间传输文件了。进程和状态将显示在filezilla 软件下。
Windows SFTP客户端使用
如今,使用FTP 服务的人越来越少,而使用SFTP 的人越来越多。这是因为SFTP比较方便,通常只要支持SSH登录就可以使用。
Filezilla 还支持使用SFTP 登录服务器。这仅需要在创建站点时对协议选择进行很小的更改。
SFTP站点
点击“连接”并输入密码即可成功连接。
sftp登录
文末
除非有特殊要求,否则建议使用SFTP。
还有TFTP,我们稍后会介绍,因为该服务包含几个不同的命令。
版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。