为什么我的云服务器不能绑定公网 ip ?

2023-05-16

文章目录

  • 云服务器的部署:数据中心
  • NAT协议
  • 开头问题的答案
  • 参考文献

写在前面:
昨天呢,在校招群里的小伙伴问了我们一个问题,让我们帮给看看:
在这里插入图片描述
一开始呢,博主按照经验呢跟他说是端口号被占用了,因为自己之前就遇到过这个问题。但是经过排查呢,实际上是ip地址绑定错误的问题。那么为什么不能绑定公网ip呢?

云服务器的部署:数据中心

要明白这个问题的原理,我们首先就需要明白你买的服务器(假设是腾讯云)在腾讯csig的机房是怎么布置的?

云服务器一般存放在腾讯csig的数据中心,其放在一个叫机架的地方。机架呢就是一个个的架子,每个架子中摆了好几台服务器,这个服务器就是你云服务器的主体。在机架的顶端呢,往往会存放一台交换机,又称TOR交换机。该机架上的所有的服务器都连在这个交换机上,构成一个子网

当一个机架放不下的时候,就需要多个机架,还需要有交换机将多个机架连接在一起。这些交换机对性能的要求更高,带宽也就越大,被称为汇聚交换机
在这里插入图片描述

汇聚交换机又称汇聚层,其将大量的计算节点相互连接在一起,形成集群。在这个集群中,服务器之间通过二层互通,这个区域常称为一个POD,有时候也称为一个可用区

当节点数据再多的时候,一个可用区放不下,需要将多个可用区连在一起,连接多个可用区的交换机称为核心交换机
在这里插入图片描述
核心交换机的吞吐量更高,高可用要求更高,遇到部署多组核心交换机。核心和汇聚交换机之间为了高可用,也是全互连模式的

核心交换机之外,就是边界路由器了。至此服务器到数据中心边界的层次情况已经清除了。当然,在核心交换机上面往往会挂载一些安全设备,例如入侵检测,DDOS防护等等。这是整个数据中心的屏障,防止外来的攻击。

就此来看,这个给数据中心的服务网络如下:
在这里插入图片描述
其中最底层的AZ1、AZ2、AZ3等等都是可用区。显示,这是一个三层网络结构。这里的三层指的是接入层、汇聚层和核心层三层。这种模式非常有利于外部流量请求到内部应用。

NAT协议

这里我为什么又要讲NAT协议呢?是因为NAT协议在你主机和数据中心云服务器交互的过程中扮演了很重要的角色。

NAT协议
NAT(Network Address Translation)是将IP数据报头中的IP地址转换为另一个IP地址的协议。在实际应用中,NAT主要用于实现私有网络访问公共网络的功能。这种通过使用少量的公网IP地址代表较多的私网IP地址的方式,将有助于减缓可用IP地址空间的枯竭。

一般来说,云服务器都是工作在数据中心的私网的,可以看一下博主的云服务器信息:
在这里插入图片描述
也就是,博主的云服务器所在的交换机的网段是172.17.x.x/x,这个是三层网络中的私网的网络号段。而公网ip 42.192.129.38呢,则是边界路由器的ip地址

假如说,这个时候有一个网络包从我的主机发往我的云服务器。其中NAT地址转换流程如下:
假设我的主机私网ip :192.168.10.2 公网ip:49.2.5.64

那么首先我的主机发送的网络包从6000端口会到达交换机192.168.10.10,交换机将这个网络包的ip地址拆开来看,发现是发给外网42.192.129.38:4000的,就会将这个网络包发给边界路由器49.2.5.64,这个时候边界路由器会根据NAT转换协议,在其NAT表中记录以下信息:

端口号发送ip目的ip转换后ip
6000192.168.10.242.192.129.38:400049.2.5.64:6000

经过转换之后,网络包的源地址就会从192.168.10.2:6000变成49.2.5.64:6000,而目的网络则是不变。同时路由器记录这一去一回的信息,当42.192.129.38:4000有网络包过来的时候,我路由器就知道应该往192.168.10.2:6000这个主机发送了。

注意
这里有个问题没有被解决,就是假如说在公网42.192.129.38下,有两个主机,它们是私网ip地址分别是172.17.0.2172.17.0.3,它们两个访问公网公用ip42.192.129.38。假如说,它们两个同时都开启本机的6000端口监听服务(它们提供不同的服务),那么它们是只有一个能映射到42.192.129.38:6000 还是两个都能呢?
目前来看答案有两种,一种是只能由一个映射,另一个服务器会报错。另一种则是都能映射,但是路由器会对其进行负载均衡
目前来说,支持负载均衡说法的人会多一些。
当然,这只是第一次建立连接的时候会出现这种情况。一旦连接建立,就会在NAT去维护这一来一回的信息。

然后当这个网络包到达公网42.192.129.38的时候,服务器肯定是开启了监听端口172.17.0.2:4000,然后公网根据其下的NAT表中信息,将这个网络包转发至172.17.0.2:4000

公网端口映射私网ip
6000172.17.0.2:4000

同时路由器也会记录一来一回的信息,表示从49.2.5.64:6000来的信息都会往172.17.0.2:4000发送,而172.17.0.2:4000的信息都会往49.2.5.64:6000发送。

至此,NAT协议彻底透彻。

开头问题的答案

所以说,开头问题的答案也就很简单了。

在这里插入图片描述

参考文献

[1] 刘超.趣谈网络协议.极客时间
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我的云服务器不能绑定公网 ip ? 的相关文章

  • 文档交接说明书(模板)

    因为同事的离职 xff0c 我的入职 xff0c 要从同事手中交接过来一些项目 公司里只有一些开发文档相关的模板 xff0c 并没有文档交接相关的模板 xff0c 所以交接文档的模板也就由我们自己来定 我结合自己在工作中的经验 xff0c
  • UDS网络层/TP层(ISO 15765-2)的解读

    本文是对 ISO 15765 2 2011 协议的一些解读 需要指出该协议的最新版为2016版 TP层存在意义 UDS网络层 xff0c 又称为TP层 xff08 Transport Protocol Layer xff09 其存在的目的是
  • std vector传递指针使用说明

    今天用WM COPYDATA传递一个Vector的指针 xff0c 传递过来始终失败 后面找到一篇文章 xff0c 说只要传递第一个元素的地址就行 xff0c 因为vector在内存是连续的 static std vector lt UIm
  • Leetcode之运算库函数自定义

    一 Leetcode50 pow 注意点 1 n的值可以为正 xff0c 负 xff0c 0 2 O n 会TLE xff0c 使用递归时 xff0c 一定要将中间步保存 3 有博文中提到 xff0c 若n lt 0 xff0c 可以令n
  • 树莓派无键盘安装步骤

    树莓派无键盘安装 下载系统烧录系统配置无线网络开机并连接树莓派更新源和系统安装xrdp xff08 远程访问 xff09 Windows连接远程桌面 下载系统 应该只有官方的Raspbian系统支持无键盘安装 xff0c 官网下载系统 xf
  • iic实现采集温湿度传感器值

    iic h ifndef IIC H define IIC H include 34 stm32mp1xx gpio h 34 include 34 stm32mp1xx rcc h 34 通过程序模拟实现I2C总线的时序和协议 GPIOF
  • Matlab在线运行网站

    桌面版的Matlab不仅安装包很大 xff0c 而且也很吃性能 xff0c 不如就用网页版 xff0c 来玩啊 xff01 https www tutorialspoint com execute matlab online php 点击c
  • An Introduction on Deep Learning for the Physical Layer

    An Introduction on Deep Learning for the Physical Layer 代码实现 xff1a https github com shengjian3476077 DLforPhy 一 文章的主要工作
  • motion planning 一起学习

    shenlan 学院 motion planning 一起学习 打算买深蓝的motion planning for Mobile robots xff0c 主要是讲规划算法的 xff0c 有无一起学习的小伙伴 xff1f 一起学习 xff0
  • 【java面试之Linux】Linux启动过程、

    一 Linux启动过程 启动第一步 xff0d xff0d 加载BIOS 启动第二步 xff0d xff0d 读取MBR 主引导记录 启动第三步 xff0d xff0d Boot Loader 启动第四步 xff0d xff0d 加载内核
  • Linux SPI 驱动示例

    一 Linux 下 SPI 驱动框架 SPI 驱动框架分为主机控制器驱动和设备驱动 xff0c 主机控制器也就是 SOC 的 SPI 控制器接口 1 1 SPI 主机驱动 SPI 主机驱动就是 SOC 的 SPI 控制器驱动 xff0c L
  • 使用 FFmpeg 推流,使用 VLC 软件进行拉流

    1 移植Nginx到开发板 xff0c 使用 Nginx 来搭建 RTMP 流媒体服务器 2 执行如下命令进行推流 xff1a ffmpeg re i run media mmcblk1p1 testVideo mp4 c av copy
  • MPC与LQR的详细对比分析

    从以下几个方面进行阐述 xff1a 一 xff0c 研究对象 xff1a 是否线性 二 xff0c 状态方程 xff1a 离散化 三 xff0c 目标函数 xff1a 误差和控制量的极小值 四 xff0c 工作时域 xff1a 预测时域 x
  • 类类型成员引用的问题

    一个类中的成员变量是另一个类的类类型 xff0c 赋值问题分为引用 xff0c 不引用两类 如先定义TESTB类 class TESTB public TESTB b 61 3 7 TESTB void change b 61 9 0 fl
  • FutureTask的用法及两种经常使用的使用场景

    FutureTask可用于异步获取执行结果或取消执行任务的场景 经过传入Runnable或者Callable的任务给FutureTask xff0c 直接调用其run方法或者放入线程池执行 xff0c 以后能够在外部经过FutureTask
  • 二维线性插值方法

    前几天在进行数据仿真的时候 对于将表格离散数据转化成连续数据一直是一件十分棘手的事情 xff0c 在网站上找了许多资源最后才找到可以利用二维线性插值的方法将数据进行转化 1 原理 是要将 m n m times n m n 的二维数据如下图
  • 【转载】Matlab中LMI(线性矩阵不等式)工具箱使用教程

    64 TOC 转载 原文地址 xff1a https www cnblogs com Hand Head articles 5412511 html 这一段被老板逼着论文开题 xff0c 自己找方向比较着急 xff0c 最后选择了供应链控制
  • Python各类常用库整理

    一 20个必不可少的Python库也是基本的第三方库 Requests Kenneth Reitz写的最富盛名的http库 每个Python程序员都应该有它 Scrapy 如果你从事爬虫相关的工作 xff0c 那么这个库也是必不可少的 用过
  • Matlab中LMI(线性矩阵不等式)工具箱使用例子

    我搜出来的都是一些简单的算例 xff0c 并且机会没有中文教程 xff0c 我在这里就斗胆把自己的体会写出来 xff0c 试着给大家提供一点参考 LMI xff1a Linear Matrix Inequality xff0c 就是线性矩阵

随机推荐

  • 转--ICEM CFD中合并多个网格

    原址 xff1a http www jishulink com content post 359975
  • 【转】无人机故障数据集ALFA: A Dataset for UAV Fault and Anomaly Detection

    这里写自定义目录标题 无人机故障数据集资源地址 xff1a https kilthub cmu edu articles dataset ALFA A Dataset for UAV Fault and Anomaly Detection
  • 【转】无人机小课堂:无人机的副翼、俯仰、偏航、油门代表什么?

    刚刚接触无人机的小伙伴 xff0c 经常会听到很多英文缩写 xff0c 如AIL ELE RUD THR等 xff0c 一不小心就会傻傻分不清 但它们却经常出现在各种遥控器 飞控 调参软件中 xff0c 因为它们是无人机 航模中最基础的四个
  • 多弹多约束协同制导问题

    参考文献 xff1a 张达 刘克新 李国飞 多约束条件下的协同制导研究进展 J 南京信息工程大学学报 自然科学版 2020 12 05 530 539 DOI 10 13878 j cnki jnuist 2020 05 002 多导弹协同
  • 浅谈设备驱动的作用与本质,有无操作系统Linux设备驱动的区别

    一 驱动的作用 任何一个计算机系统的运行都是系统中软硬件协作的结果 xff0c 没有硬件的软件是空中楼阁 xff0c 而没有软件的硬件则只是一堆废铁 硬件是底层基础 xff0c 是所有软件得以运行的平台 xff0c 代码最终会落实为硬件上的
  • 【转】多智能体系统一致性问题概述

  • 【转】从自然基金面上项目只许列10篇代表作说起

    作者 xff1a 喻海良 xff0c 字之亮 xff0c 2018年2月13日于北京沙河 关于建设 双一流大学 过程中 xff0c 我们作为大学教师该如何看待学术论文的讨论已经有很多了 个人觉得论文数量是基础 xff0c 一个大学教授的课题
  • 盘点 | 单目视觉3-D目标检测经典论文(附解读)

    2020年以来出现的一些单目视觉3 D目标检测的论文 本文针对部分典型的论文要点进行要点解读 xff0c 仅供参考 Towards Generalization Across Depth for Monocular 3D Object De
  • IBM的云平台Bluemix使用初体验-创建第一个容器

    概述 第一次使用IBM的云平台Bluemix xff0c 写一个blog记录一下 我注册Bluemix挺早的 xff0c 但是在工作中一直没有机会使用IBM的云平台 现在辞职创业 xff0c 做自己喜欢的互联网 xff0c 终于有机会用上了
  • 在Source Insight中添加对.cc的支持

    Options gt Document Options Document Type gt 下拉选择 xff1a C 43 43 Source File 在File Filter 中加入 cc
  • Android HFP流程记录

    DP 完成后 xff0c btif dm c文件中 xff0c btif dm search services evt函数 xff0c bond state changed BT STATUS SUCCESS amp bd addr BT
  • OPP文件传输

    在RFCOMM连接后 xff0c 进行Command Type Parameter Negotiation时 xff0c 会协商Credits初始值 建立OBEX连接时 xff0c 会将poll bit设置 xff0c 用于Given Cr
  • 算法——欧几里得算法

    目录 欧几里得算法算法原理欧几里得算法的代码表示 参考文献 欧几里得算法 欧几里得算法是用来求两个正整数最大公约数的算法 古希腊数学家欧几里得在其著作中 The Elements 中最早描述了这种算法 xff0c 所以叫欧几里得算法 a s
  • 算法——100瓶水,一瓶有毒,有一种试纸...

    问题描述 100瓶水 xff0c 一瓶有毒 xff0c 有一种试纸 xff0c 不过需要一个小时才能出结果 xff0c 问最少需要几片试纸才能在一小时内找到有毒的那一瓶 答案 span class token number 7 span 算
  • 基于muduo网络库的集群聊天系统(C++实现)

    文章目录 项目概述业务流程 数据模块表的设计数据库模块设计 通信格式网络和业务模块网络模块网络模块和业务模块解耦合业务模块注册业务登录业务加好友业务一对一聊天业务创建群业务加入群业务群聊业务注销业务 服务器集群跨服务器通信集群聊天服务器的思
  • linux设备驱动原理与本质

    任何计算机系统都是软件和硬件的结合体 xff0c 如果只有硬件而没有软件 xff0c 则硬件是没有灵魂的躯壳 xff1b 如果只有软件没有硬件 xff0c 则软件就是一堆无用的字符 在底层硬件的基础上 xff0c 操作系统覆盖一层驱动 xf
  • pycharm配置可视化界面流程简介

    一 安装QT Designer 在pycharm的终端里面输入如下命令 span class token comment 安装pyqt5 span pip install PyQt5 span class token comment 安装p
  • 内存——CPU、内存以及磁盘是如何交互的

    文章目录 内存的存储SRAMDRAMDRAM内部以及与内存控制模块的交互 xff08 重点 xff09 DRAM与内存存储CPU和内存的交互 xff08 重点 xff09 磁盘磁盘和CPU 内存的交互 局部性参考文献 之前在介绍linux
  • libco —— 安装与使用

    文章目录 libco的安装libco库的简单使用参考文献 libco的安装 可以直接从 Tencent 的 GitHub 仓库中拉取源码 xff1a ubuntu 64 VM 0 2 ubuntu libco span class toke
  • 为什么我的云服务器不能绑定公网 ip ?

    文章目录 云服务器的部署 xff1a 数据中心NAT协议开头问题的答案参考文献 写在前面 昨天呢 xff0c 在校招群里的小伙伴问了我们一个问题 xff0c 让我们帮给看看 xff1a 一开始呢 xff0c 博主按照经验呢跟他说是端口号被占