Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> FTP 伺服器

Linux 快速搭建 vsftpd FTP 服務器環境:從安裝到常見問題排查

編輯:FTP 伺服器

適用環境

  • RHEL / CentOS / Rocky Linux / AlmaLinux 6/7/8/9
  • Fedora、openSUSE 等 RPM 系發布版
  • Debian/Ubuntu 亦可參考,套件管理器改為 apt

標準部署流程(6 步完成)

1. SSH 登入伺服器

ssh root@your-server-ip

2. 安裝 vsftpd

yum install -y vsftpd

3. 修改核心配置並設定開機自啟

# 備份原配置
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

# 關閉匿名登入(安全基線)
sed -i 's/^anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf

# 開機自啟(Runlevel 3/5)
chkconfig --level 35 vsftpd on
# systemd 系統改用:systemctl enable vsftpd

4. 建立 FTP 專用帳號(禁止 Shell 登入)

# 格式:useradd <用戶名> -s /sbin/nologin -d <家目錄>
useradd ftpuser -s /sbin/nologin -d /www

# 設定密碼
passwd ftpuser
# 輸入兩次密碼

5. 設定家目錄權限

# 確保目錄存在且屬於 ftpuser
mkdir -p /www
chown ftpuser:ftpuser /www
chmod 755 /www   # 777 極不安全,切勿使用

6. 啟動服務

service vsftpd start
# 或 systemctl start vsftpd

驗證測試

# 本機測試
ftp localhost
# 或使用 FileZilla、WinSCP、lftp 等客戶端連線測試

常見問題:FTP 連不上?

現象 1:用戶名/密碼正確但 530 Login incorrect

原因: 預設配置 /etc/vsftpd/ftpusers 與 /etc/vsftpd/user_list 含有 root 等系統帳號,若您建立的帳號名稱在列表中,或 PAM 設定不當。

解決:

# 編輯兩個檔案,將您的 FTP 帳號註解或移除
vi /etc/vsftpd/ftpusers
vi /etc/vsftpd/user_list
# 找到您的帳號行,前面加 # 註解

# 重啟服務
service vsftpd restart

現象 2:客戶端完全無法連線(Timeout / Connection refused)

排查步驟:

  1. 防火牆: service iptables stop 暫停測試(生產環境請改用 firewall-cmd --add-service=ftp 永久開放)
  2. 網路連通性: 客戶端 ping ,不通則檢查:
    虛擬機網路模式(NAT/Host-only/橋接)、IP 段是否一致、網卡是否啟用(ifconfig eth0 up)
  3. SELinux: getsebool -a | grep ftp,若 ftp_home_dir=off 需 setsebool -P ftp_home_dir=1
  4. vsftpd 監聽: netstat -nlap | grep :21 確認進程監聽

現象 3:可登入但無法列表/傳輸(被動模式埠口被阻擋)

解決: 配置被動模式固定埠口範圍並開放防火牆:

# /etc/vsftpd/vsftpd.conf 追加
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=51000

# 防火牆開放
firewall-cmd --permanent --add-port=50000-51000/tcp
firewall-cmd --reload

虛擬機網路模式快速修正指南(VMware / VirtualBox)

模式適用場景宿主機↔客戶機連通性
NAT客戶機只需上網,宿主機無需直接連線需配置埠轉發
Host-only宿主機需直接 SSH/FTP 連線客戶機直通,推薦本地開發測試
橋接客戶機作為區域網獨立設備直通,需 DHCP/靜態 IP 同網段

Host-only 設定步驟:

  1. 虛擬機設定 → 網路介面卡 → 選擇 Host-only → 確定 → 重啟客戶機
  2. 客戶機 ifconfig 確認 IP(如 192.168.100.128)
  3. 宿主機 ping 192.168.100.128 驗證連通
  4. 若不通,檢查宿主機虛擬網卡(VMnet1)IP 是否同網段(192.168.100.x),否則在虛擬網路編輯器調整

安全加固清單(上線前必做)

  • [ ] 關閉匿名登入(anonymous_enable=NO)
  • [ ] 所有 FTP 帳號設定 /sbin/nologin 禁止 Shell 登入
  • [ ] 啟用 chroot 限制用戶在家目錄(chroot_local_user=YES + allow_writeable_chroot=YES)
  • [ ] 配置 TLS/SSL 加密傳輸(ssl_enable=YES)
  • [ ] 限制連線數與頻寬(max_clients、max_per_ip、local_max_rate)
  • [ ] 開啟傳輸日誌審計(xferlog_enable=YES、log_ftp_protocol=YES)
  • [ ] 使用 TCP Wrappers 限制來源 IP(tcp_wrappers=YES + /etc/hosts.allow)
  • [ ] 定期輪換密碼、審核帳號清單

按照本文流程,您可在 10 分鐘內完成一個安全、可用的 Linux FTP 服務器部署。遇到問題時,按「防火牆 → 網路 → SELinux → 配置 → 日誌」順序系統性排查,多數情況可快速定位根因。

Copyright © Windows教程網 All Rights Reserved