在 vsftpd(Very Secure FTP Daemon) 里“绑定 IP”一般是指 让 vsftpd 只监听某个或某几个网卡/IP 地址,而不是监听所有 IP。下面分别在 Debian 下说明常见做法。
配置文件通常在这里:
/etc/vsftpd.conf
用 root 或 sudo 编辑:
sudo nano /etc/vsftpd.conf
如果你只想让 vsftpd 监听 指定 IP(例如 192.168.1.10):
listen=YES
listen_ipv6=NO
listen_address=192.168.1.10
⚠️ 注意:
listen=YES 表示使用 IPv4listen_ipv6=NO,否则会和 IPv6 冲突listen_address 指定绑定的 IP保存后重启 vsftpd:
sudo systemctl restart vsftpd
vsftpd 原生不支持直接写多个 listen_address。
✅ 正确做法:启动多个 vsftpd 实例
sudo cp /etc/vsftpd.conf /etc/vsftpd-ip2.conf
listen=YES
listen_ipv6=NO
listen_address=10.0.0.10
ftp_data_port=20
listen_port=21
如果你想在不同 IP 用不同端口,例如:
| IP | 端口 |
|---|---|
| 192.168.1.10 | 21 |
| 10.0.0.10 | 2121 |
sudo nano /etc/systemd/system/vsftpd-ip2.service
内容:
[Unit]
Description=vsftpd service for IP2
After=network.target
[Service]
ExecStart=/usr/sbin/vsftpd /etc/vsftpd-ip2.conf
Restart=on-failure
[Install]
WantedBy=multi-user.target
启用并启动:
sudo systemctl daemon-reload
sudo systemctl enable vsftpd-ip2
sudo systemctl start vsftpd-ip2
如果你要绑定 IPv6 地址:
listen=NO
listen_ipv6=YES
listen_address6=2001:db8::1
⚠️ IPv4 和 IPv6 不能同时 listen=YES + listen_ipv6=YES
ss -lntp | grep vsftpd
或:
netstat -lntp | grep vsftpd
你应该能看到类似:
192.168.1.10:21
listen / listen_ipv6 是否冲突| 需求 | 做法 |
|---|---|
| 绑定单个 IP | listen_address=IP |
| 绑定多个 IP | 多实例 vsftpd |
| IPv6 | listen_ipv6=YES |
| 重启生效 | systemctl restart vsftpd |
如果你愿意,可以把你的 实际 IP / 网络环境 / 是否需要被动模式 发给我,我可以帮你写一份 完整可用的 vsftpd 配置。