这问题有三种原因。
1、服务商后台有安全组,还需要在服务商的后台加端口。
2、防火墙没加端口。
3、服务软件没起启动,或是启动失败。
4、加了端口,但防火墙没加服务。
查看当前开了哪些端口其实一个服务对应一个端口,每个服务对应/usr/lib/firewalld/services
下面一个xml
文件。
firewall-cmd --list-services
- 1
- 2
通过这个命令我们查看当前打开了那些服务,比如下面这个
我开启了两个服务,但是没有开启http
和ftp
服务,所以不能通过外网访问搭建的nginx
服务器和ftp
服务器
(1)可以通过下面这个命令查看可以打开的服务有哪些
firewall-cmd --get-services
- 1
- 2
(2)可以通过下面的命令添加一个服务到firewalld
firewall-cmd --add-service=http //http换成想要开放的service
- 1
- 2
这样添加的service
当前立刻生效,但系统下次启动就失效,可以测试使用。要永久开发一个service
,加上 --permanent
firewall-cmd --permanent --add-service=http
- 1
- 2
然后通过systemctl restart firewalld.service
重启防火墙就生效了
这个时候就可以通过外网访问搭建的nginx
和ftp
服务器了