14人参与 • 2025-07-21 • Linux
在linux操作系统下(ubuntu)撰写好的服务器程序在连接时经常会出现80端口无法访问,卡死在accept之前的情况,如图下图所示。
通常按以下步骤排查测试大概率会解决端口无法访问的问题。
1、通常服务器有root管理员,和其他个人创建用户。但是root权限非常高,在使用时要谨慎谨慎再谨慎!
2、root:root用户可以使用服务器端口范围:1~100端口(尤其是80端口项目,当然这是root特有的)
3、个人创建用户:可以使用除100端口以内的其他端口。
所以在运行服务器程序时先切换到root用户一般能避免一些问题。(下列都是在root环境下运行的命令)
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)
将进程删除后重新运行即可通过外网浏览器重新连接~
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论