服务器设置了端口映射之后外网还是访问不了服务器

目录

排查思路参考:

1、确认服务是否在运行

2、确认端口映射设置是否正确

3、使用防火墙测试到服务器的连通性

4、检查服务内部的配置

5、解决办法

6、学习小分享

我们在一个完整的网络数据存储服务系统设备中都会存有业务服务器、防火墙、交换机、路由器(可有可没有),其中的业务服务器主要用来数据存储,防火墙主要做安全防护,交换机、路由器主要是做用于局域网内部的数据传输,而路由器则用于不同网络之间的数据传输。两者结合使用可以构建一个完整的网络架构,实现数据在局域网和广域网之间的高效传输和通讯。

而我今天遇到一个网络异常问题,我将自己的排查思路和解决办法做记录,以便大家共同学习交流。首先我的网络拓扑为:

环境:办公电脑需要远程ssh到服务器1上面,防火墙已经是开好端口映射,能正常访问。集群三台服务器:服务器1、服务器2、服务器3,每台节点上有三个ip地址,其中一个ip地址为业务ip。

出现的问题为:我在集群服务器上做了系统升级之后,重启了系统(敲重点后面排查会与这个相关),之后发现办公电脑无法ssh到服务器1上面,而服务器1也无法ping通服务器A的地址,但是服务器2、3是可以ping通的,而我用笔记本直连服务器1是可以ssh的

排查思路参考:

1、确认服务是否在运行

检查服务器上对应端口的服务是否在运行。您可以使用命令行工具(如 netstat)或特定服务的控制台来验证服务状态。

检查服务器上的端口是正常启动的,端口也是开放的。 

2、确认端口映射设置是否正确

  • 检查您的路由器或防火墙设置,确保端口映射规则正确地将外部流量引导到服务器的内部IP地址和端口。
  • 确保您正在使用正确的外部IP地址(公网IP)来访问服务器。

端口映射配置这个没问题,因为升级之前都是配置好的,都是正常通的。

3、使用防火墙测试到服务器的连通性

使用防火墙测试到服务器1的时候发现ping不通,防火墙无法ping通 通过端口映射访问服务器(而防火墙内部的:服务器1、服务器2、服务器3、服务器B之间相互都能ping通),这时就可以按照以下步骤进行排查:

1、检查防火墙设置

  • 确保防火墙允许 ICMP Echo 请求通过。有些防火墙默认情况下可能会禁止 ICMP 流量,包括 ping 请求。
  • 如果是在服务器上设置防火墙,例如 iptables,确保相应的规则允许 ICMP 流量通过。

 2、确认网络连接:

确保防火墙和服务器之间的网络连接正常。可以尝试ping防火墙的内部地址,以确是否存在网络连接的问题

3、检查路由器设置: 

如果服务器位于路由器后面,确保路由器上的防火墙设置正确,并且允许 ICMP Echo 请求通过。

 因为我现场配置的是交换机,检查交换机的配置,交换机上面设置的网关1.254是ping通的,所以服务器到交换机那部分是没问题的。

4、检查服务内部的配置

4、检查服务器配置:

1、保服务器的网络配置正确,包括网关和子网掩码设置。如果网络配置有误,可能导致无法与防火墙进行通信。

2、测试网络连通性:检查到网关的连通性;检查内部网卡之间是否相互联通;检查集群之间的通信。

 检查服务器配置,心里想着服务器配置没有做过任务更改的地方,不是配置的问题但是发现了服务器1主节点内部的三个网卡相互不通,其他两个IP无法ping通业务ip;子节点服务器2、服务器3也无法ping通服务器1主节点的业务ip,这里肯定有问题:顺藤摸瓜继续排查主节点服务器1的路由:

!!!发现多了一条默认路由:一般默认路由只有一条。同时还发现两个网卡里面都配置了网关,导致系统重启的时候重新加载了网络服务,导致多了两条默认路由。

多了一条默认路由的原因是:

服务器a主节点配了两个接口的地址和网关(比如eth0 配了IP和网关 eth1也配了网关),升级的时候重启了系统或者网络服务(我确实是升级了服务且重启了),他就生成了两条默认路由,系统会根据网卡配置文件的网关来创建默认路由

5、解决办法

1、删除多余的默认路由和删除其中一个网卡配置里面的网关配置:

查看路由:route -n

删除路由:类似于如下

 ip route del 192.168.0.0/24 gw 192.168.0.1 ----del 删除路由 -net 设置到某个网段的路由 gw 出口网关

2、查看metric这个是优先级,越小越优先可以调的,两个都需要的话就把外网的调小点。

 以上排查完之后,问题就解决了,防火墙能ping通我的服务器1,我的办公电脑也能通过NAT装换的地址访问到我的服务器1。

如果有到这一步问题还没解决的。分享下一步的排查思路:

  1. 使用其他工具进行测试

     如果 ICMP Echo 请求仍然无法通过,可以尝试使用其他工具(如 telnet)来测试端口映射是否正常工作。这可以帮助确定是 ICMP 相关的问题还是端口映射的问题。

      2检查网络设备日志

  查看路由器和防火墙等网络设备的日志,以查找任何与被阻止流量相关的记录。

6、学习小分享

插拔一个小分享,准备下一步学习爬虫的相关技术的看看下面哦。我们一起学习一起进步!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/785188.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实现一个Google身份验证代替短信验证

最近才知道公司还在做国外的业务,要实现一个登陆辅助验证系统。咱们国内是用手机短信做验证,当然 这个google身份验证只是一个辅助验证登陆方式。看一下演示 看到了嘛。 手机下载一个谷歌身份验证器就可以 。 谷歌身份验证器,我本身是一个基…

[springboot源码探索]返回值处理

[springboot源码探索]返回值处理 开始处理返回值 public class ServletInvocableHandlerMethod extends InvocableHandlerMethod {// ...// 返回值处理器组(组合模式,可以理解为一组返回值处理器)private HandlerMethodReturnValueHandlerComposite returnValueHandlers;publ…

编织数据经纬,洞见业务全景:Elasticsearch、Logstash与Kibana的铁三角关系深度解析

在信息化的浪潮中,Elasticsearch、Logstash与Kibana联手构建了一座坚固的数据城堡,被誉为“ELK Stack”。这三者的紧密协作,为企业带来了高效的数据采集、处理与分析能力,有力推动了业务洞察的深度与广度。本文将深入剖析Elastics…

hibernate session管理

hibernate session管理 hibernate自身提供了三种管理session的方法 session对象的生命周期与本地线程绑定 session对象的生命周期与JTA事务绑定 hibernate委托程序管理session对象的生命周期 分别对应于hibernate配置文件中hibernate.current_session_context_class属性的三个值…

C++11标准 - 声明(auto,decltype,nullptr)

C11标准 - 声明(auto,decltype,nullptr) 前言1. auto2. decltype3. nullptr 前言 c11提供了多种简化声明的方式,尤其是在使用模板时。 1. auto 在C98中auto是一个存储类型的说明符,表明变量是局部自动存…

ChatGPT实体化了!手机变身ChatGPT实体机器人,只需一个配件,能说话还会做梦,真的牛!

你有没有想过,如果有一天ChatGPT有了身体,跑到你办公桌上成了你的宠物,这是个多么有趣的场景,LOOI就是这样一款把幻想带进现实的产品 不得不说,ChatGPT让具身智能达到了新高度,LOOI便应运而生。 分享几个网…

MySQL 数据库的优化

目录 一. 常见故障 单实例常见故障 1. 故障一 2. 故障二 3.故障三 4. 故障四 5. 故障五 6.故障六 7.故障七 8.故障八 主从环境常见故障 1.故障一 2. 故障二 3. 故障三 二. 优化 1.硬件方面 1.1 关于CPU 1.2 关于内存 1.3 关于磁盘 2. 配置文件优化 关于引擎…

什么是HTTP? HTTP 和 HTTPS 的区别?

文章目录 一、HTTP二、HTTPS三、区别参考文献 一、HTTP HTTP (HyperText Transfer Protocol),即超文本运输协议,是实现网络通信的一种规范 在计算机和网络世界有,存在不同的协议,如广播协议、寻址协议、路由协议等等… 而HTTP是…

聊聊低代码产品的应用场景

随着数字化转型的不断深入,企业对于快速开发和迭代软件应用的需求也越来越迫切。而在这样的背景下,低代码产品应运而生,成为了一种热门的技术解决方案。本文将解读低代码产品的定义并探讨其应用场景。 一、低代码产品的定义 低代码产品是一种…

动态加载json文件

我们知道json文件非常适合离线数据交互。比如定时从一个系统中导出数据到json文件,另外一个系统定时从json文件里导入数据,这两个系统本身不需要有接口和网络连接。下面我们主要说说nodejs加载(导入/读取)json文件的注意事项。 nodejs有多种方法读取json…

DFS(基础,回溯,剪枝,记忆化)搜索

DFS基础 DFS(深度优先搜索) 基于递归求解问题,而针对搜索的过程 对于问题的介入状态叫初始状态,要求的状态叫目标状态 这里的搜索就是对实时产生的状态进行分析检测,直到得到一个目标状态或符合要求的最佳状态为止。对于实时产生新的状态…

Linux系统Docker如何部署Nextcloud结合内网穿透实现公网访问本地资源?

文章目录 1. 安装Docker2. 使用Docker拉取Nextcloud镜像3. 创建并启动Nextcloud容器4. 本地连接测试5. 公网远程访问本地Nextcloud容器5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定公网地址远程访问 本文主要介绍如何在Linux Ubuntu系统使用Docker快速部署Nextcl…

Html提高——视频标签音频标签及其相关属性

HTML5 在不使用插件的情况下&#xff0c;也可以原生的支持音视频格式文件的播放&#xff0c;当然&#xff0c;支持的格式是有限的。 1、video标签 1.1、video标签的语法 <video src"文件地址" controls"controls"></video> video标签的内部…

接口自动化框架Pytest —— 配置文件pytest.ini的详细使用

前言 我们在执行用例的时候&#xff0c;每次都在命令行中输入-v&#xff0c;-s等一些命令行参数的时&#xff0c;比较麻烦。其中pytest.ini这个配置文件可以快速的帮助我们解决这个问题。 配置文件 pytest.ini文件是pytest的主配置文件&#xff0c;可以改变pytest的运行方式…

vue实现在进入页面之前自动刷新一次页面(适用于首次进入页面空白,刷新才显示的问题)

有时候会莫名出现一个问题&#xff0c;首次进入页面的时候空白&#xff0c;刷新才会显示&#xff0c;如果实在排查不到原因&#xff0c;以及如何解决&#xff0c;那就直接在进入页面之前去自动执行一次刷新操作&#xff0c;实现方法如下 <script setup> import {onBefor…

MyBatis报Parameter ‘title‘ not found的Exception 处理

mybatis的操作中抛出了Caused by: org.apache.ibatis.binding.BindingException: Parameter title not found. Available parameters are [1, 0, param1, param2] 原因是什么呢&#xff1f;现在我们通常使用mybatis操作数据库的时候写的都是mapper接口加mapper.xml组合的方式操…

【python】pip清华大学镜像

1、修改pip源为清华源&#xff1a; pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple2、结果是自动给我创建了一个文件&#xff1a; 3、打开这个文件所在的文件夹&#xff1a; 4、打开文件&#xff1a; 5、如果不想指定清华的&#xff0c;就删掉…

提升K8S故障排除效率:详解Pod内抓包的高效策略!

在Kubernetes环境中&#xff0c;故障排除是管理者日常工作中不可或缺的一部分。随着容器化应用的广泛采用&#xff0c;需要一种高效的方法来诊断和解决Pod内部的问题。本文将重点介绍如何利用抓包技术提升Kubernetes环境中Pod内部故障排除的效率。 为什么需要Pod内抓包 在Kube…

【MySQL】DQL-案例练习-DQL基本介绍&语法&执行顺序(代码演示)

前言 大家好吖&#xff0c;欢迎来到 YY 滴MySQL系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C Linux的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的…

Baidu Comate

Baidu Comate 他来了 描述功能支持的编程语言支持的 IDE支持的操作系统IDEA安装操作 描述 智能代码助手&#xff0c;其实就是写代码的辅助工具&#xff0c;可以很大程度的帮你提升编码效率&#xff0c;作为一个白嫖党&#xff0c;我觉得这个还可以。 功能 注释生成代码、增强…