我们常常会遇到应用已经确实在服务器上运行起来了。但是却无法从外网访问。此时的排查思路大致包括防火墙因素和ip因素
一、防火墙原因
centos操作系统的防火墙,不外乎firewall和iptables,那么只需要把防火墙的端口打开,那么外界必然可以访问
以开放8848端口来举例放开iptables的方法,只需下面一个命令即可
#动态编辑iptables
[root@vm01 bin]# iptables -I INPUT -p tcp --dport 8848 -j ACCEPT
# 查看防火墙状态
[root@vm01 bin]# service iptables status
# 停止防火墙
[root@vm01 bin]# service iptables stop
# 启动防火墙
[root@vm01 bin]# service iptables start
# 重启防火墙
[root@vm01 bin]# service iptables restart
# 永久关闭防火墙
[root@vm01 bin]# chkconfig iptables off
# 永久关闭后重启
[root@vm01 bin]# chkconfig iptables on
再说firewall 的放开方式
#查询指定端口是否已经开放,返回yes/no。也有可能返回firewalld is not running,此时需要打开防火墙在开放端口。
[root@vm01 bin]# firewall-cmd --query-port=8848/tcp
#添加指定需要开放的端口:
[root@vm01 bin]# firewall-cmd --add-port=8848/tcp --permanent
# 移除端口
[root@vm01 bin]# firewall-cmd --remove-port=8848/tcp --permanent
#重载入添加的端口:
[root@vm01 bin]# firewall-cmd --reload
# 查看firewall服务状态
[root@vm01 bin]# systemctl status firewalld
# 查看firewall的状态
[root@vm01 bin]# firewall-cmd --state
# 开启
[root@vm01 bin]# service firewalld start
# 重启
[root@vm01 bin]# service firewalld restart
# 关闭
[root@vm01 bin]# service firewalld stop
# 查看防火墙规则
[root@vm01 bin]# firewall-cmd --list-all