1. 程式人生 > 其它 >使用vsftpd搭建FTP伺服器並實現檔案上傳與下載

使用vsftpd搭建FTP伺服器並實現檔案上傳與下載

一、前期準備

1、倉庫源準備

# 掛載光碟
mount /dev/sr0 /mnt
# 刪除倉庫原始檔
rm -rf /etc/yum.repos.d/*

# 編寫倉庫原始檔
vim /etc/yum.repos.d/vsftpd.repo

# 內容
[vsftpd]
name=centos7
baseurl=file:///mnt
enabled=1
gpgcheck=0

2、vsftpd 安裝、使用

  • 安裝
yum clean all # 清除快取
yum repolist all # 可略
yum install vsftpd -y

systemctl start vsftpd
ps -e | grep ftp
systemctl status vsftpd.service
  • 使用
systemctl start vsftpd # 啟動
systemctl restart vsftpd # 重啟
systemctl enable vsftpd # 自啟動

3、vsftpd.conf 主配置檔案

  • 清除帶#號的註釋資訊
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
  • 原始內容
# 拷貝一個使用
grep -v "#" /etc/vsftpd/vsftpd.conf.bak > /etc/vsftpd/vsftpd.conf

cat /etc/vsftpd/vsftpd.conf -n

# 如下:
anonymous_enable=YES  # 預設允許匿名使用者登入
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

二、使用者登入

登入方式 ✨

# 分配一個虛擬機器ip
dhclient
ifconfig
#【第二行的ip就是虛擬機器ip】
  • 登入
# 此電腦
ftp://虛擬機器ip

許可權與資源目錄設定

  • 賦予許可權
# 資源目錄
ls -ld /var/ftp/pub
chmod 777 /var/ftp/pub
ls -ld /var/ftp/pub
systemctl restart vsftpd

# 防火牆
systemctl stop firewalld # 臨時關閉防火牆
systemctl status firewalld # 檢視狀態: 若有dead字樣表示成功

# selinux
setenforce 0 # 臨時關閉
getenforce # 檢視狀態:若為Permissive表示成功
  • vsftpd 資源目錄
# 測試檔案備用
cd /var/ftp/pub

touch demo.tar # ftp連線成功後可看到此檔案

window本地

  • 開啟ftp

控制面板 --> 程式 --> 啟用或關閉Windows功能

  • 防火牆開放ftp

控制面板 --> 系統安全 --> 允許應用通過Windows防火牆

1、匿名使用者登入

# 拷貝一個使用
grep -v "#" /etc/vsftpd/vsftpd.conf.bak > /etc/vsftpd/vsftpd.conf
  • vsftp 配置
vim /etc/vsftpd/vsftpd.conf

# 新增
anon_root=/var/ftp
anon_upload_enable=YES
anon_mkdir_write_enable=YES
systemctl restart vsftpd

# 本地直接ftp連線即可(密碼啥的都不用)

2、本地使用者登入

# 拷貝一個使用
grep -v "#" /etc/vsftpd/vsftpd.conf.bak > /etc/vsftpd/vsftpd.conf
  • vsftp 配置
vim /etc/vsftpd/vsftpd.conf

# 修改
anonymous_enable=NO
systemctl restart vsftpd

# 本地直接ftp連線即可(密碼啥的都不用)

3、虛擬使用者登入

  • 建立虛擬使用者
mkdir /vftp
vim /vftp/vuser.txt

# 內容
lencamo
666666
zhangsan
555555
  • 使虛擬使用者生效
db_load -T -t hash -f /vftp/vuser.txt /vftp/vuser.db

chmod 700 /vftp/vuser.db
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak # 備份

vim /etc/pam.d/vsftpd

# 新增
auth required pam_userdb.so db=/vftp/vuser
account required pam_userdb.so db=/vftp/vuser
useradd -d /var/ftp/vuser vuser
chown vuser.vuser /var/ftp/vuser
chmod 555 /var/ftp/vuser
ls -ld /var/ftp/vuser
  • vsftp 配置
# 拷貝一個使用
grep -v "#" /etc/vsftpd/vsftpd.conf.bak > /etc/vsftpd/vsftpd.conf
rm /etc/vsftpd/vsftpd.conf
vim /etc/vsftpd/vsftpd.conf

# 內容
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
write_enable=YES
guest_enable=YES
guest_username=vuser
listen=YES
pam_service_name=vsftpd

local_root=/var/ftp
anon_upload_enable=YES
anon_mkdir_write_enable=YES
systemctl restart vsftpd

# ftp連線(使用虛擬使用者登入即可)