前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux安装FTP

Linux安装FTP

作者头像
shaun
发布2023-10-26 17:46:12
1K0
发布2023-10-26 17:46:12
举报

 一:客户端教程

1.直接yum 安装

代码语言:javascript
复制
yum -y install ftp

2.FTP连接刚刚装了FTP服务的另一台服务器(下面有服务端教程)。(ip自己改成自己的)

代码语言:javascript
复制
ftp 192.168.0.0

输入用户名

 输入密码

 登录成功

3.查看当前目录:

代码语言:javascript
复制
pwd

4.进入data目录

代码语言:javascript
复制
cd /data

5.上传文件 

代码语言:javascript
复制
# 格式:put local-file [remote-file]
put /mnt/a.jpg /data/this-is-ftp-test.jpg

6.Windows登录FTP

WIN+E

代码语言:javascript
复制
ftp://192.168.0.0

 输入用户名和密码,就能看到刚刚上传的jpg了

7.回到刚刚的Linux,退出FTP连接

代码语言:javascript
复制
quit

8.其他命令:

代码语言:javascript
复制
#创建目录
mkdir 目录名

#删除目录
rmdir 目录名

# 删除单个文件 格式:delete remote-file
delete 文件名

# 删除多个文件 格式:mdelete remote-files [ ...]
mdelete 文件名

# 重命名文件 格式:rename filename newfilename
rename test atest

# 上传文件 格式:put local-file [remote-file]
put /home/a.txt /mydata/b.txt

# 下载单个文件 格式:get [remote-file] [local-file]
get /mydata/a.txt /apps/b.txt


#下载多个文件
# 进入指定目录
cd /usr/your/
# 格式:mget filename [filename ....]
mget *.*

#查询所有命令:显示FTP命令的帮助信息,cmd是命令名,如果不带参数,则显示所有FTP命令
# help[cmd]

二:服务端教程

0. yum 安装一下 vim

代码语言:javascript
复制
yum -y install vim*

1.直接yum在线安装

代码语言:javascript
复制
yum install -y vsftpd

2.查看一下FTP服务端状态

代码语言:javascript
复制
systemctl status vsftpd.service

 正常,因为没启动,先去配置一下配置文件

3.FTP安装好后,配置文件在/etc/vsftpd/vsftpd.conf,利用vim ,修改配置文件。

代码语言:javascript
复制
#打开配置文件
vim /etc/vsftpd/vsftpd.conf
 
#显示行号
:set nu
 
#修改配置 12 行 不允许匿名访问(不登录默认访问某目录/var/ftp),要用户名和密码
anonymous_enable=NO
 
 
#修改配置83行  允许ascii文件上传
ascii_upload_enable=YES
 
#修改配置84行 允许ascii文件下载
ascii_download_enable=YES
 
#修改配置87行 
ftpd_banner=Welcome to blah FTP service.
 
#修改配置101,102,104行 将用户限制在为其配置的主目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
 
#添加下列内容到vsftpd.conf末尾
use_localtime=YES
 
# 监听端口
listen_port=21
 
idle_session_timeout=300
 
# 设置启用虚拟用户功能
guest_enable=YES
 
# 制定宿主用户名(我们后续需要为我们的系统增加该用户)
guest_username=ftpuser
 
# 制定虚拟用户配置文件放置文件夹(需要我们自己建立)
user_config_dir=/etc/vsftpd/vuser_conf
 
# 允许写
allow_writeable_chroot=YES
 
data_connection_timeout=1
virtual_use_local_privs=YES
pasv_min_port=40000
pasv_max_port=40010
accept_timeout=5
connect_timeout=1
 
# wq!保存

 4.ftp的账号、组、目录配置

代码语言:javascript
复制
# 新建一个ftpuser组
groupadd ftpuser
 
# 新建一个ftpuser账号,并且该账号不需要登录服务器,设定家目录在 /home/vsftpd
useradd -g ftpuser -M -d /home/vsftpd -s /sbin/nologin ftpuser
 
# 设置用户 ftpuser 的密码
passwd ftpuser
 
# 把 /home/vsftpd 的所有权给ftpuser.root
chown -R ftpuser:ftpuser  /home/vsftpd
 
# 在家目录下先创建两个文件夹,作为后续ftp账号的默认目录
mkdir -p  /home/vsftpd/ftp-user1 /home/vsftpd/ftp-user2
 
# 设置目录权限为755
chmod 755 -R /home/vsftpd
 

 不能太简单,至少8位,我个人的密码:mima2468

目录不存在,就创建一个目录,我懒得再去改博客上面的代码了

5.FTP的登录用户和密码设置

代码语言:javascript
复制
# 进入/etc/vsftpd/目录
cd /etc/vsftpd/
 
# 创建用户密码信息文件
vim vuser_passwd
 
#编辑如下内容,创建虚拟账户信息(密码123456)
ftp-user1
123456
ftp-user2
123456
# wq!保存退出
 
# 生成虚拟用户数据文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
 
# 将该目录的权限改成600
chmod 600 /etc/vsftpd/vuser_passwd.db

6.编辑pam认证文件

代码语言:javascript
复制
# 查看系统位数
getconf LONG_BIT
 
# 备份pam认证文件
mv  /etc/pam.d/vsftpd  /etc/pam.d/vsftpd.bak
 
# 新建pam认证文件
vim /etc/pam.d/vsftpd
i
 
# 根据自己的操作系统选2行,不要全部都填写哟
# 注:db=/etc/vsftpd/vuser_passwd 中的vuser_passwd 是你生成的虚拟用户的db文件,这里不要加扩展名。
# 也就是上面第五步生成的虚拟用户数据文件
 
# 系统为32位:
 
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account
 
required pam_userdb.so db=/etc/vsftpd/vuser_passwd
 
 
 
# 系统为64位:
 
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
 
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
 
# ESC:wq  保存内容
 

7.创建虚拟用户配置目录

代码语言:javascript
复制
#创建上述配置文件中配置的虚拟用户文件夹,一定要对应第三步中vsftpd.conf配置文件的user_config_dir=/etc/vsftpd/vuser_conf
mkdir -p /etc/vsftpd/vuser_conf
 
#切换进入 /etc/vsftpd/vuser_conf
cd  /etc/vsftpd/vuser_conf
 
#创建虚拟用户配置文件,文件名称要与虚拟用户名称相同,这里我们配置两个虚拟用户就创建两个配置文件
 
touch ftp-user1 ftp-user2
 
#编辑ftp-user1
vim ftp-user1
i
 
#写入以下内容
local_root=/home/vsftpd/ftp-user1
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
# ESC:wq 保存退出
 
 
#编辑ftp-user2
vim ftp-user2
i

#写入以下内容
local_root=/home/vsftpd/ftp-user2
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
# ESC:wq 保存退出

 8.创建chroot_list

代码语言:javascript
复制
# 进入目录/etc/vsftpd
cd /etc/vsftpd
 
#创建使当前配置的虚拟用户允许访问的文件列表
vim chroot_list
 
#写入虚拟用户名
ftp-user1
ftp-user2
 
# ESC:wq 保存退出

9.防火墙,SELinux等配置

代码语言:javascript
复制
一方案:简单型(外网生产环境不推荐)
#打开SELINUX配置文件
vim /etc/selinux/config
#修改配置参数
#注释  
SELINUX=enforcing
#增加  
SELINUX=disabled
#ESC:wq 保存完,需要重启!

systemctl stop firewalld.service


二方案:安全型针对性的关闭防火墙和SELinux对FTP的限制.
#  SELINUX不对vsftp不做任何限制
setsebool -P ftpd_full_access on

# 防火墙设置 IPtables 的设置方式:
vi /etc/sysconfig/iptables
#编辑iptables文件,添加如下内容,开启21端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 40000:40010 -j ACCEPT

#firewall 的设置方式,以下指令
firewall-cmd --zone=public --add-service=ftp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=40000-40010/tcp --permanent 
 

10.查看FTP状态、重启、停止、设置开机启动

代码语言:javascript
复制
#启动
systemctl start vsftpd.service
 
#重启
systemctl restart vsftpd.service
 
#停止
systemctl stop vsftpd.service
 
#查看状态
systemctl status vsftpd.service
 
#设置开机启动
systemctl enable vsftpd.service
 

11.测试FTP连接(这次用上面(linux命令和windows资源管理器)没用过的方法试一下,用windows命令行连接)

代码语言:javascript
复制
#查看ftp的进程和端口,发现正在以PID=28501的进程,port=21在运行着
netstat -anp | grep ftp

 这次我们在换个连接FTP的方法看看,windows打开cmd

先telnet一下看ip和端口通不通:

代码语言:javascript
复制
telnet 192.168.47.133 21

Welcome 没毛病

 再换个cmd窗口,FTP连接一下:

代码语言:javascript
复制
ftp 192.168.47.133

自己输入上面设置的用户名和密码

 Login successful. 没毛病

Tips:要是觉得上面三种方法都是很难用的话,那就直接使用第三方可视化工具。

  i:FileZilla (所有平台)

  ii:Xftp(windows)(我自己用的这个):https://shaun.lanzoum.com/iJiNF0v4qjcd

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档