Windows访问Linux下的FTP服务器(Centos和Uuntu)
centos7.9版本
1.下载FTP离线安装包:
http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd(x86-64) 选择最后一个 vsftpd-3.0.2-28.el7.x86_64.rpm
2.检查是否已经安装了vsftp
rpm -qa | grep vsftpd
出现提示vsftpd版本号则表示已安装,没有则未安装
3.安装vsftpd(推荐离线)
离线安装 rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm
在线安装 yum install -y vsftp
4.安装过程可能会报错
[root@yjy-pt01 vsftpd]$ rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm
warning: vsftpd-3.0.2-22.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
error: Failed dependencies:
libc.so.6(GLIBC_2.14)(64bit) is needed by vsftpd-3.0.2-22.el7.x86_64
libc.so.6(GLIBC_2.15)(64bit) is needed by vsftpd-3.0.2-22.el7.x86_64
解决:安装相关依赖
rpm -ivh libcap-2.16-5.5.el6.x86_64.rpm
rpm -ivh libcap-devel-2.16-5.5.el6.x86_64.rpm
若是执行上面命令依然提示 安装依赖失败 ,可执行如下命令强制执行
rpm -ivh libcap-2.16-5.5.el6.x86_64.rpm --nodeps --force
rpm -ivh libcap-devel-2.16-5.5.el6.x86_64.rpm --nodeps --force
上述依赖链接地址可根据不同系统版本下载相应依赖rpm包:https://centos.pkgs.org/7/centos-x86_64/
例如下载libcap-2.16-5.5.el6.x86_64.rpm包 链接地址即是:https://centos.pkgs.org/7/centos-x86_64/libcap-2.16-5.5.el6.x86_64.rpm
5.检查是否安装成功
rpm -qa | grep vsftpd 出现版本号vsftpd-2.2.2-24.el6.x86_64 #,即表示安装成功
6.安装好ftp之后,执行命令查看vsftpd服务是否在运行状态
systemctl status vsftpd.service 若是在运行 即可看到 actving
7.创建用户
1.# 创建ftp目标文件夹 mkdir /home/testFtp
2.chmod 755 /home/testFtp
3.# 创建用户 useradd -d /home/testFtp -s /sbin/nologin -g ftp -G root testUser
4.# 设置密码 我设置的是 Test@123 passwd testUser 密码可随意设置
5.# 更改用户testUser 的主目录为/home/testFtp 执行命令:usermod -d /home/testFtp testUser
6.# 上述命令参数解释如下 : #useradd 添加用户testUser
#-d 指定用户根目录为/home/testFtp
#-s 指定shell脚本为/sbin/nologin,表示不允许shell登录
#-g 创建分组ftp
#-G 指定root分组
8.配置vsftpd
1. 修改vsftpd配置文件 vi /etc/vsftpd/vsftpd.conf
找到一下内容修改成和我一样的:
anonymous_enable=NO
local_root=/home/testFtp
chroot_local_user=YES
chroot_list_enable=YES
# chroot_list文件中放的是限制目录的用户,防止里面的用户进入ftp目录以外的目录
chroot_list_file=/etc/vsftpd/chroot_list
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
#下面自己加,上面的都有,仔细寻找和对比
userlist_deny=NO
allow_writeable_chroot=YES
2.编辑chroot_list文件
vi /etc/vsftpd/chroot_list#添加一行 就是你创建的用户名 有多个的话一行一个
# 我这里写是为了不限制 testUser只能访问指定目录,一般是要限制的也就是不需要写进这个文件
testUser
3.编辑user_list文件
vi /etc/vsftpd/user_list
#添加一行 就是你创建的用户名 有多个的话一行一个
testUser
4.修改另一个文件 (防止后面登陆出现 530 Login incorrect 错误)
cd /etc/pam.d/
vi vsftpd
# 把第四行 pam_shells.so 的改成下面这个
pam_nologin.so
5启停命令,每次修改vsftpd.conf都要重启
#启动
service vsftpd start 或 systemctl start vsftpd.service
#停止
service vsftpd stop 或 systemctl stop vsftpd.service
#重启
service vsftpd restart 或 systemctl restart vsftpd.service
9.Windows连接测试
win + R
输入cmd
- 输入
ftp
- 输入
open 192.168.209.129
(换成你的IP) - 输入用户名
testUser
- 输入密码
Test@123
- 看到
230 Login successful.
即为成功,之后便可以使用ftp工具连接了。 - 出现530 Login incorrect错误时,需要先确定用户名、密码、主机地址和端口是否正确,如果都正确,再检查本地是否开启了21端口
- 检查20 21端口服务器是否开启,查看开启端口firewall-cmd --list-all 开启20,21端口firewall-cmd --zone=public --add-port=20/tcp --permanent
- firewall-cmd --zone=public --add-port=20/tcp --permanent 然后重启防火墙 irewall-cmd --reload
- 报错:打开FTP服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹
-
设置IE浏览器 —— Internet选项 —— 高级 —— 将
使用被动FTP(用于防火墙和DSL调制解调器的兼容)
选项去掉 —— 确定 -
用IE及IE内核的浏览器(如360等)登录Linnux空间FTP
需要使用
ftp://用户名:密码@ftp地址
来访问 例如:ftp://hqx:123@192.168.4.39
-
依照上面方法,windwos端依然无法登陆访问ftp的话,参照下面方式解决:
-
检查ftp服务是否已开启:控制面板 —— 程序 —— 启用或关闭windows功能
-
找到
Internet Information Services
里的FTP服务器
,并勾选FTP服务
和FTP扩展性
-
找到
TFTP客户端
,并勾选,点击 “确定” 等待系统自动安装程序完毕 -
控制面板 —— 系统和安全 —— 点击Windows防火墙下的 “允许应用通过Windows防火墙”
-
在列表中确认 “Windows资源管理器” 右侧的两个勾选,如果没有勾选则点击上方的 “更改设置” 。
补充知识
/etc/vsftpd下的文件作用:
- ftpusers:指定了哪些用户账户不能访问FTP服务器,例如root等。 如果想要root 登录 则注释里面的root
- user_list:可以作为用户白名单,或者是黑名单,或者无效名单。完全由userlist_enable和userlist_deny这两个参数决定。
效果如下:#拒绝文件中的用户FTP访问
userlist_enable=YES userlist_deny=YES
# 拒绝除文件中的用户外的用户FTP访问
userlist_enable=YES userlist_deny=NO
# 基本可以认为user_list文件无用
userlist_enable=NO userlist_deny=YES/NO
Ubuntu 版本
一、 FTP
1.1 安装ftp
sudo apt-get install vsftpd
1.2 配置FTP
sudo gedit /etc/vsftpd.conf
将下面三个属性的注释取消,即设置不允许匿名登录、允许本地用户登录、允许修改文件
# Allow anonymous FTP? (Disabled by default).
anonymous_enable=NO
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
在文件末尾添加
allow_writeable_chroot=YES
在文件末尾添加下面属性、锁定一个共享目录(根据自己情况设置)
local_root=home/bit/shareFile
取消下面三个属性的注释,在文件vsftpd.chroot_list中保存的是可访问的用户
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list
注意
自己添加的两行代码一定没有空格,如何添加了空格,本地浏览器就无法登陆
一定不能有空格
1.3添加可访问用户
sudo vi /etc/vsftpd.chroot_list
写入
bit(用户名,根据自己情况自行填写)
root
1.4创建共享文件夹
mkdir shareFile
chmod -R 777 shareFile
1.5重启服务器
sudo service vsftpd restart
#启动、关闭的命令
#启动FTP服务器
#sudo service vsftpd start
#关闭FTP服务器
#sudo service vsftpd stop
#重启FTP服务器
#sudo service vsftpd restart
1.6windows 链接测试如上面 操作即可
本文来自博客园,作者:Java-三尺青锋,转载请注明原文链接:https://www.cnblogs.com/zhangjiale/p/17686946.html