我在阿里轻量应用服务器搭建ftp服务器这篇博客中把防火墙换为iptables
,因为当时无论我怎么设置firewalld
,就是无法访问ftp
服务器,今天在翻看其他博客的时候,突然发现firewalld
有打开服务这么一个命令,然后我就找到了解决的办法.
查看当前开了哪些端口其实一个服务对应一个端口,每个服务对应/usr/lib/firewalld/services
下面一个xml
文件。
firewall-cmd --list-services
通过这个命令我们查看当前打开了那些服务,比如下面这个
我开启了两个服务,但是没有开启http
和ftp
服务,所以不能通过外网访问搭建的nginx
服务器和ftp
服务器
(1)可以通过下面这个命令查看可以打开的服务有哪些
firewall-cmd --get-services
(2)可以通过下面的命令添加一个服务到firewalld
firewall-cmd --add-service=http //http换成想要开放的service
这样添加的service
当前立刻生效,但系统下次启动就失效,可以测试使用。要永久开发一个service
,加上 --permanent
firewall-cmd --permanent --add-service=http
然后通过systemctl restart firewalld.service
重启防火墙就生效了
这个时候就可以通过外网访问搭建的nginx
和ftp
服务器了.