[Ubuntu] vsftpd配置备忘录
首先
因为在本地网络上与子机的数据交换很麻烦,所以我们决定使用FTP进行。以下是当时的设置备忘录。
基本上只是按照以下的描述进行了执行。
环境
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy
对vsftpd进行改写:
vsftpd是一个非常流行的FTP服务器软件。
我决定使用vsftpd作为FTP服务器。
安装
请将以下内容改写成中文: sudo apt install vsftpd
vsftpd: version 3.0.5
准备证书
使用以下命令创建。
请使用以下命令在服务器上生成有效期为365天的自签名 SSL 证书,并将其保存在 `/etc/ssl/private/vsftpd.pem` 文件中:
`sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem`
设定
首先进行配置文件的备份。
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_default -> 使用sudo命令将/etc/vsftpd.conf复制到/etc/vsftpd.conf_default
然后,编辑/etc/vsftpd.conf文件,并添加以下内容。
anonymous_enable=NO
write_enable=YES
local_enable=YES
chroot_local_user=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_sslv2=NO
ssl_sslv3=NO
ssl_tlsv1=YES
require_ssl_reuse=NO
ssl_ciphers=HIGH
xferlog_std_format=NO
指令
查看日志
日志默认输出到以下位置。
/var/log/vsftpd.log
请用管理员身份查看/var/log/vsftpd.log文件的内容。
启动服务
sudo systemctl start vsftpd
重启服务
sudo systemctl restart vsftpd
服务终止
请停止vsftpd服务。
可以确认服务的状态。
sudo systemctl status vsftpd
自动服务启动注册
sudo systemctl enable vsftpd
自动停用服务。
sudo systemctl disable vsftpd
检查服务的自动启动
sudo systemctl is-enabled vsftpd
为 FTP 准备文件夹
被替换为实际的用户名。
sudo mkdir ftp
sudo chown nobody:nogroup ~/ftp
sudo chmod a-w ~/ftp
sudo mkdir ~/ftp/files
sudo chown <username>:<username> ~/ftp/files
ufw – 无需其他选项
为了以防万一,还应设置防火墙。
设定
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
命令
检查 ufw 的状态。
sudo ufw status
启用 ufw
sudo ufw enable
重新加载配置
sudo ufw reload
客户
安装FileZilla作为客户端。
- <ol在 Host(主机)中输入子机的本地 IP 地址
- 输入子机用户名和密码
此时会显示一条信息,询问您是否信任证书,请检查内容并信任它。
现在就可以顺利连接了。