我想在 nixos 主机上运行 ftp 服务器。我正在使用 vsftpd,但如果这会有所作为,可以使用其他东西。
ftp 在 localhost 上运行良好,但防火墙阻止我远程使用。我已经允许 TCP 端口 21,但这还不够。
我应该如何配置防火墙以允许 ftp 连接(包括写入 ftp 服务器)?
这是我目前拥有的代码:
{
networking.firewall = { allowedTCPPorts = [ 20 21 ];
# connectionTrackingModules = [ "ftp" ];
};
services.vsftpd = {
enable = true;
# cannot chroot && write
# chrootlocalUser = true;
writeEnable = true;
localUsers = true;
userlist = [ "martyn" "cam" ];
userlistEnable = true;
};
}
有了上述情况,任何从主机外使用 ftp 都会失败:
ftp> put dead.letter
200 PORT command successful. Consider using PASV.
425 Failed to establish connection.
使用被动模式(例如, with ftp -p
)在这里似乎没有帮助:
ftp> put dead.letter
227 Entering Passive Mode (192,168,0,7,219,202).
ftp: connect: Connection timed out
在禁用防火墙的一次性主机上进行测试
网络.firewall.enable = false;
允许ftp -p
工作;虽然当然关闭防火墙不是一个有吸引力的选择。
感谢您的任何帮助和指点,