*申明:非原创,不过是承前人之智,复加己身之研,乃成心得之见罢了。
 
前段时间又因测试代码修改了函数导致网站后台报错无法正常登录,虽然在更新之前本地测试都未出任何问题,虽然目前还不知具体原因,但眼下恢复网页才是重中之重,所以我选择恢复修改的数据。在无法通过后台登录的前提下,只能通过FTP或者WinSCP远程接服务器修改文件。(本文以Windows操作系统Linux服务器为例)
 
 
一、准备工作
使用FTP或FileZilla连接服务器,因此需要准备其一:
下载并安装FileZilla,下载请参考FileZilla下载中心
WinSCP文件传输工具。下载请参考WinSCP官网
 
 
二、安装与配置vsftpd
服务器的管理控制台提供了WorkBench远程连接方式,进入控制台使用浏览器远程连接之后,执行以下命令查看服务器是否已安装vsftpd。部分服务器已经预安装了vsftpd,再次安装可能会出现冲突。
vsftpd -v
 
如果回显信息类似如下所示,表示当前服务器已经安装了vsftpd,无需再次安装。
您可以参考应用镜像文档获取FTP的用户名和密码,然后配置防火墙和通过FTP客户端测试连接FTP服务器。
[admin@iz2zehataf****** ~]$ vsftpd -v
vsftpd: version 3.0.2
 
运行以下命令,安装vsftpd
sudo yum install -y vsftpd
 
出现如下图所示信息表示vsftpd安装成功。
Installed:
    vsftpd.x86_64 0:3.0.2-28.e17
Complete!
 
运行以下命令,设置FTP服务开机自启动。
sudo systemctl enable vsftpd.service
 
运行以下命令,启动FTP服务。
sudo systemctl start vsftpd.service
 
如果出现无法启动FTP,排查21端口是否被占。使用lsof -i:21命令,查看是否存在进程。如果存在进程,使用kill -9 <进程号>命令,杀掉进程。运行以下命令,查看FTP服务的端口号。
sudo netstat -antup | grep ftp
 
如下图所示,看到FTP服务端口表示服务已正常启动。
[admin@iz2zehataf****** ~]$ sudo netstat -antup | grep ftp
tcp6       0      0 :::21                   :::*                    LISTEN      802/vsftpd
 
 
三、设置FTP服务器的访问模式
选择本地用户或匿名访问模式均可,运行以下命令为FTP服务创建名为ftptest的用户。
sudo adduser ftptest
 
运行以下命令修改ftptest用户的密码或者在服务器的管理控制台修改密码。
sudo passwd ftptest
 
运行以下命令创建一个供FTP服务使用的文件目录。
sudo mkdir /var/ftp/test
 
运行以下命令更改/var/ftp/test目录的拥有者为ftptest。
sudo chown -R ftptest:ftptest /var/ftp/test
 
运行以下命令,修改配置文件/etc/vsftpd/vsftpd.conf。安装vsftpd时,使用的是apt install vsftpd安装命令,则配置文件路径为/etc/vsftpd.conf。
sudo vim /etc/vsftpd/vsftpd.conf
 
按i进入编辑模式,配置FTP服务器为被动模式。复制以下参数粘贴至服务器,具体修改参数如下,
#禁止匿名登录FTP服务器。
anonymous_enable=NO
#允许本地用户登录FTP服务器。
local_enable=YES
#监听IPv4 sockets。
listen=YES
 
在行首添加#注释掉以下参数,关闭监听IPv6 sockets:
#listen_ipv6=YES
 
在配置文件的末尾添加下列参数,其中pasv_address参数需要替换为轻量应用服务器的公网IP地址:
#设置本地用户登录后所在目录。
local_root=/var/ftp/test
#全部用户被限制在主目录。
chroot_local_user=YES
#启用例外用户名单。
chroot_list_enable=YES
#指定例外用户列表文件,列表中用户不被锁定在主目录。
chroot_list_file=/etc/vsftpd/chroot_list
#开启被动模式。
pasv_enable=YES
allow_writeable_chroot=YES
#本示例中为轻量应用服务器的公网IP地址。
pasv_address=39.105.xx.xx
#设置被动模式下,建立数据传输可使用的端口范围的最小值。
#建议您把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。
pasv_min_port=50000
#设置被动模式下,建立数据传输可使用的端口范围的最大值。
pasv_max_port=50010
 
运行以下命令按i进入编辑模式,必须创建chroot_list文件其内容可以为空。按Esc退出编辑模式,然后输入:wq并回车,保存退出文件。
sudo vim /etc/vsftpd/chroot_list
 
运行以下命令,关闭防火墙。
sudo systemctl stop firewalld
 
运行以下命令,打开/etc/ssh/sshd_config修改配置文件。
sudo vi /etc/ssh/sshd_config
 
在文件尾行将PasswordAuthentication的值改为yes,保存并退出。
# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no
#       AllowTcpForwarding no
#       PermitTTY no
#       ForceCommand cvs server
UseDNS no
AddressFamily inet
PermitRootLogin yes
SyslogFacility AUTHPRIV
PasswordAuthentication yes
 
运行以下命令,重启FTP服务。
sudo systemctl restart vsftpd.service
 
 
四、配置服务器的防火墙
在服务器的防火墙中需要放行21和50000/50010端口,如下图所示:
 
 
五、通过FileZilla或WinSCP工具连接服务器修改所需要的信息
打开FileZilla客户端选择文件 > 站点管理器>新站点。填写对应信息完成站点配置点击连接即可。连接成功后便可对文件进行修改。(连接失败的话一般关闭防火墙就可以了)
 
 
WinSCP工具的界面如下图所示:
 
 

发表评论

邮箱地址不会被公开。