18、【Ubuntu】【远程开发】技术方案分析:私网ip掩码

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景

上篇 blog
【Ubuntu】【远程开发】技术方案分析:公私网ip

远程办公里面关于公网 IP 和局域网 IP 的一个概念,下面继续分析

远程开发

上篇 blog 提到了局域网常用地址包括

  • 10.0.0.0 ~ 10.255.255.255 (掩码 255.0.0.0 或 /8)
    172.16.0.0 ~ 172.31.255.255 (掩码 255.240.0.0 或 /12)
    192.168.0.0 ~ 192.168.255.255 (掩码 255.255.0.0 或 /16)

下面继续说下这里的掩码含义

这里的掩码和 /8/12/16 是描述 IP 地址网络范围的核心概念,它们都用于定义一个 网络前缀 ,用来告诉计算机或路由器,在这个 IP 地址中,哪一部分是网络地址 ,哪一部分是主机地址

子网掩码(比如上面的 255.0.0.0)和 IP 地址一样,由 4 个 8 位数组成(共 32 位),其中掩码中的 1 表示网络部分0 表示主机部分 ,这里把 255.0.0.0 转成二进制可以得到

255.0.0.0 = 11111111.00000000.00000000.00000000

可以看到,前 8 位是 1,表示这 8 位是网络地址,后 24 位是 0,表示这 24 位可以分配给主机或设备,所以网络地址是 10.x.x.x 中的 10 固定不变,主机地址范围是后面的 24 位,主机地址范围可以变化,从 10.0.0.010.255.255.255,可以支持约 1677 万台设备的内网 IP 分配

另外,上面的 /8255.0.0.0 含义是一样的,表示前 8 位是网络前缀255.0.0.0 是掩码写法,/8 是 CIDR(Classless Inter-Domain Routing)无类别域间路由表示法,是对子网掩码的简洁写法

CIDR 中 /N 表示 IP 地址的前 N 位是网络前缀,剩下的 (32-N) 位用于主机和设备,比如上面的

  • /8 对应二进制 11111111.00000000.00000000.00000000,掩码 255.0.0.0,前 8 位是网络,可支持主机数量 2²⁴ 约 1677 万,主要用于大型企业内网 (公司内网环境一般以 10 开头)
  • /12 对应二进制 11111111.11110000.00000000.00000000,掩码 255.240.0.0,前 12 位是网络

    可支持主机数量 2²⁰ 约 104 万,用于中大型网络
  • /16 对应二进制 11111111.11111111.00000000.00000000,掩码 255.255.0.0,前 16 位是网络,主机数量 2¹⁶ 约 65536 个地址,一般家庭,小型办公室很常见(比如 192.168.1.x192.168.0.x

再补充个公网 IP 和私网 IP 的形象化例子,公网 IP 就像家里的街道地址,快递员(互联网数据)可以根据这个地址把快递送到家附近的菜鸟驿站,局域网 IP 就像家里的具体的楼栋号和房间号(如 A 栋 XXX 室)

  • 只有公网 IP,没有局域网 IP 时(网络地址转换),快递员只能把快递送到菜鸟驿站,然后由于没人接收,这个快递就被返件(数据被丢弃)了
  • 只有局域网 IP,没有公网 IP 时,这就好比网上买个东西,地址填的 A 栋 XXX 室,全世界的 A 栋这么多,天知道要送往哪个 A 栋
  • 只有当公网 IP 和局域网 IP (网络地址转换)同时具备时,快递员才能将快递(互联网数据)准确无误地送到家门口

上面提到了网络地址转换机制(NAT,Network Address Translation),举个例子

  • 当家里的某台设备(比如 IP 192.168.1.x)要访问某个网站时,数据包先发给路由器
  • 路由器将源 IP(是局域网 IP) 替换为自己的公网 IP,并记录下这个转换关系
  • 网站返回数据时,发回路由器的公网 IP
  • 路由器根据之前的记录,将数据转发给正确的局域网设备,比如上面的 192.168.1.100

示意图如下


OK,本篇先到这里,如有疑问,欢迎评论区留言讨论,祝各位功力大涨,技术更上一层楼!!!更多内容见下篇 blog
【Ubuntu】【远程开发】技术方案分析:远程桌面

相关推荐
The Chosen One9859 小时前
【Linux】制作进度条小程序、git入门 (add、commit、push三板斧)以及git的其他问题
linux·运维·git
Crazy________9 小时前
45Ansible Roles:标准化部署的终极利器
linux·运维·服务器
知识分享小能手10 小时前
CentOS Stream 9入门学习教程,从入门到精通,CentOS Stream 9 磁盘存储管理 —语法详解与实战案例(7)
linux·学习·centos
wadesir10 小时前
Linux网络优化服务配置(从零开始提升服务器网络性能)
linux·服务器·网络
小李独爱秋10 小时前
计算机网络经典问题透视:简述一下TCP拥塞控制算法中的拥塞避免算法
服务器·网络·tcp/ip·计算机网络·php
tianyuanwo10 小时前
从PAM到零信任:Linux密码认证体系的深度解析与演进
linux·运维·服务器·pam·密码认证
unclecss10 小时前
键盘输入延迟 800 ms?!——一次终端“假死”排查笔记
linux·运维·笔记·性能优化·auditd
r i c k10 小时前
Synergy连接win11与ubuntu22.04,共用一套鼠标键盘,win11作为Server,Ubuntu22.04为client
ubuntu·双系统共用键盘鼠标
シ風箏10 小时前
Shell【脚本 06】监测文件数据量并压缩及查看远程服务器状态并删除文件脚本分享
linux·运维·服务器·github·shell
HIT_Weston10 小时前
52、【Ubuntu】【Gitlab】拉出内网 Web 服务:http.server 单/多线程分析(四)
ubuntu·http·gitlab