当前位置:   article > 正文

Bug 解决 | 无法访问线上服务

Bug 解决 | 无法访问线上服务

目录

1、应用程序未启动

2、端口监听错误

3、云服务商安全组

4、服务器防火墙

5、应用层限制

6、服务器网络问题

7、用户自身问题


分享一个非常经典的问题:明明服务器没挂,为啥访问不了云服务器的端口?

这篇文章,我列举了常见的、无法访问服务器的情况和解决方案,便于大家排查问题。

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 的查看防火墙命令,两种方式都可以。

  1. # 查看防火墙状态
  2. sudo iptables -L
  3. sudo systemctl status firewalld

执行效果如图:

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

  1. sudo systemctl stop firewalld
  2. sudo systemctl disable firewalld

5、应用层限制

除了操作系统的防火墙之外,我们的应用程序也可能 “暗藏玄

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/1012423
推荐阅读
相关标签