在FirewallD附带的CentOS 7中,启用HTTP访问非常简单:
firewall-cmd --permanent --zone=public --add-service=http
然而,
firewall-cmd --permanent --zone=public --add-service=ftp
不起作用:规则适用,但除了禁用FirewallD之外,我无法通过任何方式访问FTP.
一些诊断信息:
>我检查了服务定义文件(ftp.xml),它使用了nf_conntrack_ftp模块.
>在我的VPS上,模块被编译成内核(不是单独的),所以它不是通过lsmod,但我可以通过这个确认它:
zgrep FTP /proc/config.gz
CONFIG_NF_CONNTRACK_FTP=y CONFIG_NF_CONNTRACK_TFTP=y CONFIG_NF_NAT_FTP=y CONFIG_NF_NAT_TFTP=y
我没有彻底研究这个问题,所以我不了解细节,但似乎这与如何为服务器上的vsftpd和客户端设置主动 – 被动连接(例如:Filezilla)有关.
基本上你需要:
>通过将以下内容添加到/etc/vsftpd/vsftpd.conf来配置vsfptd被动模式:
pasv_enable =是
pasv_max_port = 40000
pasv_min_port = 40000
>重启vsftpd:
systemctl restart vsftpd.service
>在FirewallD中操作端口4000:
firewall-cmd –permanent –add-port = 40000 / tcp
firewall-cmd –reload
>然后我能够与lftp连接.要将Filezilla设置为使用活动模式,请检查http://www.itzgeek.com/how-tos/linux/centos-how-tos/enable-passive-mode-in-ftp-on-centos-7-rhel-7-for-filezilla-and-winscp.html#axzz3X4loTCMi