热门网游活动集合_每日福利更新_玩家互动论坛 - hfhzlhj

Linux 服务器搭建 FTP 服务(本地工具:ForkLift)及启动报错处理

之前我都是通过 scp 传输文件,实在不是很方便。

scp -P 1022 /Users/xxx/ftp/vsftpd.conf root@106.28.168.102:/etc/vsftpd

于是一步步根据腾讯云的文档 Linux 云服务器搭建 FTP 服务 ,记录如下:

安装和配置 vsftpd

登录服务器,安装 vsftpd。

yum install -y vsftpd

设置 vsftpd 开机自启动。

systemctl enable vsftpd

启动 FTP 服务。

systemctl start vsftpd

确认服务是否启动。

netstat -antup | grep ftp

如显示结果如下,则说明 FTP 服务已成功启动。

此时,vsftpd 已默认开启匿名访问模式,无需通过用户名和密码即可登录 FTP 服务器。匿名方式登录 FTP 服务器的用户没有权修改或上传文件的权限。

为 FTP 服务创建一个 Linux 用户,本文以 ftpuser 为例。

useradd ftpuser

设置 ftpuser 用户的密码。

passwd ftpuser

输入密码后请按 Enter 确认设置,密码默认不显示,本文以 tf7295TFY 为例。

创建 FTP 服务使用的文件目录,本文以 /var/ftp/test 为例。

mkdir /var/ftp/test

修改目录权限。

chown -R ftpuser:ftpuser /var/ftp/test

编辑 vsftpd.conf 文件。

vim /etc/vsftpd/vsftpd.conf

修改以下配置参数,设置匿名用户和本地用户的登录权限,设置指定例外用户列表文件的路径,并开启监听 IPv4 sockets。

anonymous_enable=NO #禁止匿名用户登录

local_enable=YES #支持本地用户登录

chroot_local_user=YES #全部用户被限制在主目录

chroot_list_enable=YES #启用例外用户名单

chroot_list_file=/etc/vsftpd/chroot_list #指定用户列表文件,该列表中的用户不被锁定在主目录

listen=YES

在行首添加 #,注释 listen_ipv6=YES 配置参数,关闭监听 IPv6 sockets。

#listen_ipv6=YES

被动模式配置

local_root=/var/ftp/test #设置本地用户登录后所在的目录

allow_writeable_chroot=YES

pasv_enable=YES

pasv_address=xxx.xx.xxx.xx #请修改为您的 Linux 云服务器公网 IP

pasv_min_port=40000

pasv_max_port=45000

主动模式配置

# 只添加下列参数,无需pasv开头的那几个

local_root=/var/ftp/test #设置本地用户登录后所在的目录

allow_writeable_chroot=YES

按 Esc 后输入 :wq 保存后退出

创建并编辑 chroot_list 文件。

vim /etc/vsftpd/chroot_list

按 i 进入编辑模式,输入用户名,一个用户名占据一行,设置完成后保存并退出。

您若没有设置例外用户的需求,可跳过此步骤,输入 :wq 退出文件。

重启 FTP 服务。

systemctl restart vsftpd

安全组设置

如主动模式则不需放通40000-45000端口(vsftpd.conf中设置的 pasv_min_port 到 pasv_max_port 之间的所有端口),即无需添加如图第一条规则

验证 FTP 服务,打开客户端的计算机,在路径栏中访问以下地址。若是MacOS,则是在访达的前往中选择“连接服务器”并输入以下地址:

ftp://云服务器公网IP:21

Finder中连接服务器

在弹出的“登录”窗口中输入 配置 vsftpd 中已设置的用户名及密码。

ok辣~

但是用Finder访问只能下载,不能上传和编辑服务器的文件😢就挺鸡肋。还是得整上Transmit 或 ForkLift (App Store 就可以下载)这些工具。

ForkLift界面

vsftpd启动报错处理

作为一个bug天选之人,我无一例外地遇上了摸不着头脑的vsftpd启动/重启报错:

Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details.

根据提示systemctl status vsftpd.service后,又告诉我们加上-l才能查看全部错误报告。

Hint: Some lines were ellipsized, use -l to show in full.

那就加上。

systemctl -l status vsftpd.service

现在就能看到配置具体错在哪里

原来是自己在vim /etc/vsftpd/vsftpd.conf注释的时候不小心多加了空格...大家下次碰到可以参考下

卸载vsftpd

# 1. 查看vsftpd的状态

service vsftpd status

# 2. 如果vsftpd在运行中,需要先停止它才能卸载

service vsftpd stop

# 3. 查找软件包名

rpm -aq vsftpd

# 4. 根据返回的具体包名进行删除

rpm -e vsftpd-3.0.2-28.el7.x86_64