当前位置: 首页 > news >正文

NAT端口映射,实现外网访问内网服务器

目录

  • 前言
  • 一、搭建网络拓扑
    • 1.1 配置server和pc
      • 1.1.1 配置server0
      • 1.1.2 配置server1
      • 1.1.3 配置pc0
    • 1.2 配置客户路由器
      • 1.2.1 配置路由器IP
      • 1.2.2 配置静态路由
    • 1.3 配置ISP路由器
  • 二、配置端口映射
    • 2.1 在客户路由器配置端口映射
    • 2.2 测试公网计算机访问私网服务器
      • 2.2.1 PC0向server0发送HTTP请求
      • 2.2.1 PC0向server1发送HTTP请求
  • 总结

前言

本篇文章利用Cisco Packet Tracer网络模拟进行NAT端口映射,实现外网访问内网服务器。

一、搭建网络拓扑

在这里插入图片描述

网络拓扑图

1.1 配置server和pc

机器名IP地址网关IP子网掩码
Server0192.168.1.2192.168.1.1255.255.255.0
Server1192.168.1.3192.168.1.1255.255.255.0
PC0114.25.63.24114.25.63.1255.255.255.0

1.1.1 配置server0

在这里插入图片描述

1.1.2 配置server1

在这里插入图片描述

1.1.3 配置pc0

在这里插入图片描述

1.2 配置客户路由器

1.2.1 配置路由器IP

接口名称IP地址子网掩码
fa0/0192.168.1.1255.255.255.0
fa0/166.1.1.1255.255.255.0

配置信息如下:

1. 配置fa0/0接口
Router>enable
Router#
Router#configure
Router(config)#
Router(config)#interface fa0/0
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#2. 配置fa0/1接口
Router(config)#interface fa0/1
Router(config-if)#ip address 66.1.1.1 255.255.255.0
Router(config-if)#no shutdown

1.2.2 配置静态路由

为客户路由器配置默认路由,让客户路由器可以达到114.25.63.0/24网络。

命令:ip route 目标网段 目标网段掩码 下一跳路由的IP
这里设置默认路由
下一跳路由IP的意思是通过其可以到达目标网段
Router(config)#ip route 0.0.0.0 0.0.0.0 66.1.1.254或者可以设置静态路由
Router(config)#ip route 114.25.63.0 255.255.255.0 66.1.1.254以上两种配置的其中一种,均可以到达114.25.63.0/24网络

1.3 配置ISP路由器

接口名称IP地址子网掩码
fa0/066.1.1.254255.255.255.0
fa0/1114.25.63.1255.255.255.0

配置信息如下:

1. 配置fa0/0接口
Router>enable
Router#
Router#configure
Router(config)#
Router(config)#interface fa0/0
Router(config-if)#ip address 66.1.1.254 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#2. 配置fa0/1接口
Router(config)#interface fa0/1
Router(config-if)#ip address 114.25.63.1 255.255.255.0
Router(config-if)#no shutdown

以上配置完成后,测试各个主机的连通性,这里不再介绍。

二、配置端口映射

2.1 在客户路由器配置端口映射

由于这里使用HTTP服务,则应该对应两个服务器的80端口进行映射

端口映射表
私网IP私网机器端口公网IP公网机器端口
192.168.1.28066.1.1.26666
192.168.1.38066.1.1.28888

配置信息如下:

Router>enable
Router#
Router#configure
Router(config)#
1. 配置接口fa0/0为内网口
Router(config)#interface fa0/0
Router(config-if)#ip nat inside
Router(config-if)#exit
Router(config)#
2. 配置接口fa0/1为外网口
Router(config)#interface fa0/1
Router(config-if)#ip nat outside
Router(config-if)#exit
Router(config)#3. 私网IP 端口->公网IP 端口
命令:ip nat inside source static 协议(udp或tcp) 私网ip 端口 公网ip 端口
Router(config)#ip nat inside source static tcp 192.168.1.2 80 66.1.1.2 6666
Router(config)#ip nat inside source static tcp 192.168.1.3 80 66.1.1.2 8888

2.2 测试公网计算机访问私网服务器

2.2.1 PC0向server0发送HTTP请求

如果映射成功,则可以通过66.1.1.2:6666访问server0(192.168.1.2)

在这里插入图片描述
这里,可以去修改server0的index.html的内容

在这里插入图片描述

2.2.1 PC0向server1发送HTTP请求

如果映射成功,则可以通过66.1.1.2:8888访问server1(192.168.1.3)

在这里插入图片描述

总结

nat还有一种静态配置,即一个公网IP映射一个私网IP。
nat端口映射可以实现一个公网IP映射多个私网IP,只需要控制端口号的选择。

相关文章:

NAT端口映射,实现外网访问内网服务器

目录 前言一、搭建网络拓扑1.1 配置server和pc1.1.1 配置server01.1.2 配置server11.1.3 配置pc0 1.2 配置客户路由器1.2.1 配置路由器IP1.2.2 配置静态路由 1.3 配置ISP路由器 二、配置端口映射2.1 在客户路由器配置端口映射2.2 测试公网计算机访问私网服务器2.2.1 PC0向serve…...

【面试笔记】嵌入式软件工程师,汽车电子软件相关

文章目录 1. C语言基础1.1 const1.2 static1.3 回调函数的用法1.4 宏定义1.5 编译、链接过程1.6 堆与栈的区别?1.7 简单的字符串算法题,C语言实现1.7.1 给定一个字符串,按顺序筛选出不重复的字符组成字符串,输出该字符串1.7.2 给定…...

uniapp小程序开发 | 从零实现一款影视类app (后台接口实现,go-zero微服务的使用)

uniapp小程序开发实战系列,完整介绍从零实现一款影视类小程序。包含小程序前端和后台接口的全部完整实现。系列连载中,喜欢的可以点击收藏。 该篇着重介绍获取轮播图后台接口和获取正在热映电影的两个后台接口的实现。 后台服务使用golang,…...

【C#】委托

文章目录 委托自定义委托模板方法(工厂模式回调(callback)函数(观察者模式多播(multicast)委托委托的高级使用使用接口 重构 模板方法代码注意参考 委托 委托(delegate)是一种类型,定义了一种方…...

【面试题】创建两个线程交替打印100以内数字(一个打印偶数一个打印奇数)

阅读导航 一、问题概述二、解决思路三、代码实现四、代码优化 一、问题概述 面试官:C多线程了解吗?你给我写一下,起两个线程交替打印0~100的奇偶数。就是有两个线程,一个线程打印奇数另一个打印偶数,它们交替输出&…...

PgMP考试结束后多久出成绩?附成绩查询方法

PgMP考试结束后多久出成绩?这是许多参加PgMP考试的考生都非常关心的问题。今天就给大家讲解一下PgMP考试多久可以知道成绩? 一、PgMP考试成绩查询时间 PgMP考试一般在考试结束后的6-8周左右才会出成绩,届时PMI官方会通过电子邮件的形式提醒…...

springboot项目Redis统计在线用户

springboot项目Redis统计在线用户 我的项目有个显示用户的遗忘曲线,需要统计在线用户以计算他们的曲线 思考了两种方案,但都是用Redis的bitmap数据结构Bitmap是一种特殊类型的数组,其中每个元素只能存储0或1。在Redis中,Bitmap实际…...

GNeRF论文理解

文章目录 主要解决什么问题?结构设计以及为什么有效果?个人想法。 主要解决什么问题? 本文主要想要解决的问题是 如何使用uncalibrated的照片来进行Nerf重建。虽然说现在已经有了一些方式可以对相机位姿进行估计和优化,但是他们限…...

0531作业 链表

结果 整体代码 主要实现 /**实现* */ #include "./linklist.h"linklist* create_linklist(datatype param){linklist* node(linklist*)malloc(sizeof(linklist));if(NULLnode){puts("节点创建失败");}node->paramparam;node->pnextNULL;puts("…...

C++ STL - 容器

C STL(标准模板库)中的容器是一组通用的、可复用的数据结构,用于存储和管理不同类型的数据。 目录 零. 简介: 一 . vector(动态数组) 二. list(双向链表) 三. deque&#xff08…...

AI生成沉浸式3D世界(空间照片/视频)

面向Vision Pro等空间计算设备的产品指南 & 技术实现路径 一、通俗理解 ldi3格式概览:这是一种创新的3D内容格式,专为Vision Pro、Quest等VR头戴设备设计,让你能沉浸在一个几可乱真的三维世界,体验仿佛亲临其境的感受。 内容创作:利用开源工具,结合多角度摄像捕捉,…...

【Vue】异步更新 $nextTick

文章目录 一、引出问题二、解决方案三、代码实现 一、引出问题 需求 编辑标题, 编辑框自动聚焦 点击编辑,显示编辑框让编辑框,立刻获取焦点 即下图上面结构隐藏,下面结构显示,并且显示的时候让它自动聚焦。 代码如下 问题 “…...

【uCOS-III-编程指南】

uCOS-III-编程指南 ■ [野火]uCOS-III内核实现与应用开发实战指南■■■■ ■ [野火]uCOS-III内核实现与应用开发实战指南 添加链接描述 ■ ■ ■ ■...

2004NOIP普及组真题 2. 花生采摘

线上OJ: 【04NOIP普及组】花生采摘 核心思想: 1、本题为贪心即可。 2、因为本题严格限制了顺序,所以先把每个节点的花生数量按降序排序。然后逐一判断下一个花生是否需要去采摘即可 3、每一次采摘完,记录耗时 t 以及采集的花…...

SAP-SD-21-定义用于定价补充的定价过程

图9 维护条件类型...

Android AAudio——C API创建AudioTrack(六)

虽然 AAudio 试图提供一种直接的硬件访问途径,但在某些场景下,如处理兼容性问题、使用系统服务(如 AudioFlinger)或者在某些设备上,使用 AudioTrack 可能是最有效或最合适的途径。这并不违背 AAudio 的初衷,因为它的目标是提供高性能的音频处理,而不是避免使用系统服务。…...

实验七、创建小型实验拓扑《计算机网络》

早检到底是谁发明出来的。 一、实验目的 完成本实验后,您将能够: • 设计逻辑网络。 • 配置物理实验拓扑。 • 配置 LAN 逻辑拓扑。 • 验证 LAN 连通性。 二、实验任务 在本实验中,将要求您连接网络设备并配置主机实现基本的网络…...

SqlServer2016企业版安装

前言 好久没有知识的累积,最近工作上遇到新的SqlServer2016安装,记录一下 参考文章 SQL Server 2016软件安装包和安装教程 - 哔哩哔哩 (bilibili.com) 安装包准备 需要提前准备软件安装包如下 cn_sql_server_2016_enterprise_x64_dvd_8699450&…...

HBase数据库面试知识点:第一部分 - 基础概念与特点(持续更新中)

目录 一、HBase基础概念 1. HBase定义 2. 核心组件 3. HBase的特点 二、HBase与传统RDBMS的区别 1. 数据类型 2. 数据操作 3. 存储方式 4. 伸缩性 5. 事务性 三、HBase数据模型 四、HBase的特点 五、HBase与Hadoop生态系统的关系 一、HBase基础概念 1. HBase定义 …...

一个高效的go语言字符串转驼峰命名算法实现函数

在go语言的开发中我们经常需要对各种命名进行规范&#xff0c; 今天给大家介绍的是一个高效的将字符串转 驼峰命名 &#xff08;即 首字母大写的命名方式&#xff09;的函数。 // 字符串转驼峰命名 // author tekintian <tekintiangmail.com> func CamelStr(str string) …...

ZYNQ AXI_DMA配置避坑指南:如何避免DDR3数据传输中的栈区溢出

ZYNQ AXI_DMA配置避坑指南&#xff1a;如何避免DDR3数据传输中的栈区溢出 在嵌入式系统开发中&#xff0c;内存管理往往是决定项目成败的关键因素之一。最近接手一个ZYNQ项目时&#xff0c;我遇到了一个令人头疼的问题&#xff1a;当使用AXI_DMA从PL端向PS端的DDR3内存传输大量…...

从API调用到完整应用:手把手教你用Dashscope和Streamlit搭建一个多模态聊天机器人

从API调用到完整应用&#xff1a;手把手教你用Dashscope和Streamlit搭建多模态聊天机器人 在AI技术快速落地的今天&#xff0c;将强大的API能力转化为直观可用的产品已成为开发者的核心技能。想象一下&#xff0c;你只需要200行Python代码&#xff0c;就能构建一个能"看懂…...

编程中输入特殊字符的通用方法

编程里的特殊字符&#xff08;比如 # $ % ^ & * / \ < > " 等&#xff09;分两种场景&#xff1a;直接键盘输入&#xff08;写代码最常用&#xff09;、代码里输出 / 转义&#xff08;程序运行时显示&#xff09;&#xff0c;我给你整理了最简单、全覆盖的用法…...

效率提升300%:Qwen3.5-9B在OpenClaw中的批量文件处理技巧

效率提升300%&#xff1a;Qwen3.5-9B在OpenClaw中的批量文件处理技巧 1. 为什么需要批量文件处理自动化 作为一个经常需要处理大量文档的技术写作者&#xff0c;我过去每周要花至少8小时在重复的文件整理上——重命名几百个截图、合并多个Markdown文档、批量转换PDF为可编辑格…...

保姆级教程:用SNAP处理哨兵2号L1C数据,5分钟搞定大气校正生成L2A

零基础实战&#xff1a;SNAP快速处理哨兵2号L1C数据的完整指南 当第一次拿到哨兵2号L1C级数据时&#xff0c;很多研究者都会面临一个共同问题&#xff1a;如何高效地将原始数据转换为可直接用于分析的表面反射率产品&#xff1f;本文将手把手带你完成从数据准备到大气校正的全流…...

剧本杀app2025推荐,多类型剧本体验与社交互动优势

剧本杀app2025推荐&#xff0c;多类型剧本体验与社交互动优势在当今娱乐多元化的时代&#xff0c;剧本杀凭借其独特的角色扮演和推理乐趣&#xff0c;成为了众多年轻人喜爱的社交娱乐方式。据《2025 年中国剧本杀行业发展报告》显示&#xff0c;2025 年剧本杀市场规模持续增长&…...

别再只会apt autoremove了!dpkg报错Sub-process returned error code (1)的5种修复姿势全解析

深度解析dpkg报错Sub-process returned error code (1)的5种专业修复策略 当你正在Ubuntu或Debian系统上安装某个关键软件包时&#xff0c;突然终端弹出一条刺眼的错误信息&#xff1a;"Sub-process /usr/bin/dpkg returned an error code (1)"。这不是普通的警告&am…...

计算机毕业设计:Python地铁运营可视化平台 Django框架 数据分析 可视化 大数据 机器学习 深度学习(建议收藏)✅

博主介绍&#xff1a;✌全网粉丝50W&#xff0c;前互联网大厂软件研发、集结硕博英豪成立软件开发工作室&#xff0c;专注于计算机相关专业项目实战6年之久&#xff0c;累计开发项目作品上万套。凭借丰富的经验与专业实力&#xff0c;已帮助成千上万的学生顺利毕业&#xff0c;…...

AI率85%降到15%的完整操作流程,一步一步来

AI率85%&#xff0c;这不是个小问题&#xff0c;但也不是无解的问题。我把整个处理流程拆成了具体步骤&#xff0c;照着来就行&#xff0c;没什么复杂的。 在开始之前&#xff0c;明确一件事 AI率85%的论文&#xff0c;靠手动修改降到15%&#xff0c;从理论上讲是可行的&…...

SpringBoot-基础面试篇

什么是 Spring Boot&#xff1f;Spring Boot 是 Spring 开源组织下的子项目&#xff0c;是 Spring 组件一站式解决方案&#xff0c;主要是简化了使用 Spring 的难度&#xff0c;简省了繁重的配置&#xff0c;提供了各种启动器&#xff0c;使开发者能快速上手。为什么要用Spring…...