Linux服务器80端口无法访问

服务器 0

Linux服务器80端口无法访问问题:

在Linux操作系统下(Ubuntu)撰写好的服务器程序在连接时经常会出现80端口无法访问,卡死在accept之前的情况,如图下图所示。通常按以下步骤排查测试大概率会解决端口无法访问的问题。

在这里插入图片描述

排查步骤

一、 连接服务器的用户
二、确定是否开发80端口
三、确定访问地址地址是否正确
四、测试结果
五、解决程序只能运行一次问题

一、 连接服务器的用户

1、通常服务器有root管理员,和其他个人创建用户。但是root权限非常高,在使用时要谨慎谨慎再谨慎!
2、root:root用户可以使用服务器端口范围:1~100端口(尤其是80端口项目,当然这是root特有的)
3、个人创建用户:可以使用除100端口以内的其他端口。
所以在运行服务器程序时先切换到root用户一般能避免一些问题。(下列都是在root环境下运行的命令)

二、确定是否开放80端口

1、查看机器所开放的所有端口号:

firewall-cmd --list-ports

2、在没有80/tcp端口的情况下添加端口号:

firewall-cmd --zone=public --add-port=80/tcp

3、重启防火墙
注意一定要重启防火墙,不然的话你添加的端口不生效,即使再去查看你的端口,依旧不显示

firewall-cmd --reload

在重启防火墙以后再查看端口号如下图,说明80端口已经打开
在这里插入图片描述

三、确定访问地址地址是否正确

我们访问端口的时候可以分为这两种情况:
1.服务器ip访问:地址为=服务器ip:端口号
例如:http://192.168.245.xxx:端口号/
2.域名地址访问:域名地址:端口号
例如:http://jcenter.club:端口号/
(注意冒号为英文状态下,而且:80也可以省略)

四、测试结果

通过测试代码可以读取http请求,之后对其做出解析
在这里插入图片描述

五、解决程序只能运行一次问题

通常情况下我们写的mini服务器通过外网浏览器连接时响应一次以后仍无反应,此时我我们要查看当前进程PID,要将其杀死后程序才能继续运行。
1.查看当前进程PID

ps aux | grep -i http(程序名)

在这里插入图片描述
2.杀死当前进程

kill -9 PID(上图PID为5858)

将进程删除后重新运行即可通过外网浏览器重新连接~

也许您对下面的内容还感兴趣: