在 Debian 下“FTP 超时”可能涉及客户端超时、服务端超时或防火墙/NAT 超时几种情况。下面按常见场景说明如何配置。
ftp 命令(inetutils / netkit)Debian 自带 ftp 命令本身超时参数较少,主要靠:
ftp -v host
若卡住,可设置环境变量(部分实现支持):
export FTP_TIMEOUT=30
更推荐用 lftp(功能更强):
apt install lftp
lftp 超时配置:
vi ~/.lftp/rc
set net:timeout 30
set net:max-retries 3
set net:reconnect-interval-base 5
使用:
lftp ftp://user@host
Debian 默认 FTP 服务多为 vsftpd。
apt install vsftpd
vi /etc/vsftpd.conf
常用超时参数:
# 客户端空闲超时(秒)
idle_session_timeout=300
# 数据传输超时(秒)
data_connection_timeout=120
# PASV 模式端口范围(避免防火墙断连)
pasv_min_port=30000
pasv_max_port=31000
重启服务:
systemctl restart vsftpd
FTP 使用控制端口 21 + 数据端口,在 NAT 环境下极易超时。
modprobe nf_conntrack_ftp
永久生效:
echo nf_conntrack_ftp >> /etc/modules
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 30000:31000 -j ACCEPT
如果是 SFTP(基于 SSH),配置:
vi /etc/ssh/sshd_config
ClientAliveInterval 60
ClientAliveCountMax 3
systemctl restart ssh
telnet ftp.example.com 21
lftp -e "set ftp:passive-mode true; ls" ftp://host
journalctl -u vsftpd
如果你能告诉我:
我可以给你更精确的配置。