ip访问linux机器显示被拒绝

背景

在浏览器输入ip地址访问我的linux机器(CentOS 7)显示被拒绝,第一次猜想就是网络防火墙的问题,但是解决了半天就是不好使。特此记录下(耐心看哈)。

解决过程

第一种情况:如果是阿里云的机器

1.确认实例所在安全组里已经添加如下安全组规则:

2.查看 nginx 服务是否已经开启:运行命令 systemctl status nginx。如果返回以下结果,说明 nginx 已经启动。如果未开启,运行命令 systemctl start nginx

3.查看端口在实例中是否正常被监听:运行命令 netstat -an | grep 80。如果返回以下结果,表明 TCP 80 端口正在被正常监听

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
复制代码
  1. 查看网络防火墙是否放行 TCP 80 端口:运行命令 firewall-cmd --add-port=80/tcp --permanent。返回结果为 success 即表示已经放行 TCP 80 端口。

好了现在用http://IP地址访问下试试。如果还不行请继续看下面的情况

第二种情况:常规机器

重复第一种的2、3、4步骤,若果还不行就有可能没有把80端口添加到zone

服务器上可能会有多张网卡,每张网卡可能有多个网口。firewalld 最细可以控制每个网口的进出流量。所以配置前需要知道要控制的网口的名字,用ifconfig命令获取

一般买来的云服务器,只有一张网卡一个网口,这种情况下ifconfig会列出两个网口,比如这里是eth0lolo是本地回路,是用于调试的,不是真正的网口。

如果发现机器上除了lo网口,还是有多个网口,说明服务器上有多张网卡或多个网口。这时候要自己判断开操作哪个网口。 知道了要操作哪个网口。还需要了解下下firewalldzone的概念。

关于zone简单介绍下概念:firewalld将服务器网络环境划分为几个zone,一般是9个,如下:

# firewall-cmd --get-zones
block dmz drop external home internal public trusted work
复制代码

一个网口必须处在某一个zone之内,zone有一套流量进出的规则,网口的进出流量就得遵循这套规则。如果把网口从一个zone移动到另一个zone后,该网口的流量进出规则就会改变。

关于zone的详细概念请看后续整理的文章 linux防火墙管理Firewall

  1. 先确保防火墙是运行着的:
# firewall-cmd --state
running
复制代码

如果是running则表示已开启,如果未开启的话则需要开启

# service firewalld start
Redirecting to /bin/systemctl start  firewalld.service
复制代码

2.给public这个zone添加规则:允许80端口的流量通过

#firewall-cmd --zone=public --add-port=80/tcp  --permanent
success
复制代码

permanent表示永久生效,否则机器重启则会失效。设置完后我们reload下来让它生效。

#firewall-cmd --reload
success
复制代码

然后查看下是生效

#firewall-cmd --zone=public --query-port=80/tcp
yes
复制代码

好了,访问下http://IP地址是否生效。

总结

这种状况一般都是网络防火墙的安全策略,首先需要排查是否防火墙进行了端口的放行,然后看下端口是否被添加到相应的网口所在的zone中。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值