服务器没挂,为啥无法访问?

本文详细列举了服务器端口无法访问的七大原因,包括应用程序未启动、端口监听错误、云服务商安全组设置、服务器防火墙、应用层限制、网络问题以及用户自身问题,并提供了相应的排查和解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚刚,有小伙伴问我,明明服务器没挂,为啥访问不了云服务器的端口?

这是一个非常经典的问题,所以我决定专门写一篇文章,列举常见的无法访问服务器的情况和解决方案,便于大家排查问题。

来看看你遇到过哪些吧?

至少过去向我提问的同学,或多或少都把这些坑踩过一遍。。。

1、应用程序未启动

这是最低级的错误,明明自己的项目都没有启动成功,就开始排查是不是服务器的问题了。

如果你使用的是宝塔 Linux 面板,而不是自己通过执行 jar 包命令来启动项目,那么这个坑更容易出现。因为有时候,项目刚启动的时候显示 “运行中”,但可能由于系统异常,过几秒钟就变成 “未启动了”。

图片

想确保项目已启动,可以使用 Linux 的 ps  命令查看应用进程,比如:

ps aux | grep <你的项目名>

如果项目已启动,将看到类似下图的输出:

图片

2、端口监听错误

除了正确启动项目外,要保证项目监听了正确的端口,可以通过 netstat 命令查看服务器的端口占用情况。

比如:

netstat -ntlp | grep <你的端口号>

如果端口正确监听,将看到类似下图的输出:

图片

需要注意输出信息中的 :::8104  和  :::*  ,表示程序监听在所有 IPv4 地址上的 8104 端口,并且允许所有来源的 IP 地址连接。

如果是其他值,可能会出现无法远程访问端口的情况,这时就需要调整应用程序的启动端口配置。

3、云服务商安全组

第一次使用云服务器很容易踩这个坑!你在哪家服务商购买了服务器,就要进入到对应的服务器后台安全组设置界面,确保允许指定来源的流量通过端口。

图片

上图中,来源设置为 0.0.0.0/0,表示允许所有用户访问,建议谨慎设置。如果是学习用,可以把来源改为自己家的 IP 地址,先只允许自己访问。

4、服务器防火墙

为了保护系统安全,Linux 系统内置了防火墙,除了在云服务商侧开放端口外,最好也检查一下防火墙的配置。

不同 Linux 发行版操作系统对应的防火墙命令可能不同,以下是 Ubuntu 的查看防火墙命令,两种方式都可以。

# 查看防火墙状态
sudo iptables -L
sudo systemctl status firewalld

执行效果如图:

图片

图片

如果应用访问不了,可以关闭防火墙试试(不过一般不建议这么做):

sudo systemctl stop firewalld
sudo systemctl disable firewalld
5、应用层限制

除了操作系统的防火墙之外,我们的应用程序也可能 “暗藏玄 🐓”,禁止一些 IP 的访问。

比如宝塔 Linux 的安全 / 防火墙面板:

图片

还可以通过 Nginx 或者业务代码对访问的 IP 进行限制,这些是常用的安全策略,别因为这些把正常用户的访问也限制了哦。

6、服务器网络问题

这是一种比较极端的情况,比如服务器突然断网了、或者自己瞎折腾把服务器网络设置搞错了等等。

可以通过 ping  或者 traceroute  命令,检测服务器的网络连通性:

ping <你的服务器地址>
traceroute <你的服务器地址>
7、用户自身问题

最后这种情况最有意思,也是最意外、最难被排查出的问题。

那就是用户自己有问题!

我们之前就遇到过一个情况,用户说访问不了我们的网站了,结果后来反馈说是自己家的网络突然断了。。我们还纳闷呢!

当时我们就是这个表情:

图片

还有一种情况,就是服务器禁用了海外的 IP,导致部分用户能访问、部分用户无法访问。

图片

刚刚问我服务器无法访问这个问题的同学,最后就发现是因为海外 ip 的原因,切个网络就正常了~

本文来自:程序员鱼皮

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值