【服务器】端口映射

news2024/9/28 5:34:49

文章目录

  • 1.端口映射的概念
    • 1.1 端口映射的类型
    • 1.2 端口映射的应用场景
    • 1.3 示例
  • 2.为什么要进行端口映射呢?
  • 3.原理
    • 3.1【大白话】原理解释
    • 3.2 原理图
  • 4.代码


1.端口映射的概念

端口映射(Port Mapping),也称为端口转发(Port Forwarding),是一种将一个网络端口的数据流重定向到另一个网络端口的技术。这通常用于在防火墙或路由器后面运行的服务,使外部设备可以访问内部网络中的特定服务。端口映射可以在本地网络中进行,也可以跨网络进行,通过SSH等协议实现。

1.1 端口映射的类型

  1. 本地端口映射(Local Port Forwarding)

    • 将本地计算机的某个端口映射到远程服务器的某个端口。
    • 示例:将本地端口8080映射到远程服务器的80端口,从而可以在本地通过localhost:8080访问远程服务器的Web服务。
  2. 远程端口映射(Remote Port Forwarding)

    • 将远程服务器的某个端口映射到本地计算机的某个端口。
    • 示例:将远程服务器的2222端口映射到本地计算机的22端口,从而可以通过远程服务器访问本地计算机的SSH服务。
  3. 动态端口映射(Dynamic Port Forwarding)

    • 创建一个SOCKS代理,通过它可以动态地访问多个远程服务器的端口。
    • 示例:创建一个SOCKS代理,允许浏览器通过该代理访问多个远程服务器的网站。

1.2 端口映射的应用场景

  1. 远程访问内部服务:通过端口映射,可以从外部网络访问公司内部或家庭网络中的特定服务,例如Web服务器、数据库服务器等。

  2. 穿透防火墙:通过端口映射,可以绕过防火墙的限制,访问被防火墙阻止的服务。

  3. 提高安全性:通过SSH隧道进行端口映射,可以加密数据传输,提高安全性。

  4. 负载均衡和代理:负载均衡器和代理服务器常常使用端口映射技术来分发和转发流量,提高服务的可靠性和性能。

1.3 示例

假设有一个运行在远程服务器上的Web服务,它监听的端口是80。为了从本地计算机访问这个服务,可以使用以下SSH命令创建一个本地端口映射:

ssh -L 8080:localhost:80 user@remote-server

这条命令将本地计算机的8080端口映射到远程服务器的80端口。现在,在本地浏览器中访问http://localhost:8080,就相当于访问远程服务器的Web服务。

2.为什么要进行端口映射呢?

在开发过程中,进行端口映射(或端口转发)有几个主要原因:

  1. 访问受保护的服务:开发机上的某些服务可能仅监听在本地主机(127.0.0.1)上,无法直接从外部访问。通过端口映射,可以将这些服务暴露出来,使其可以从外部访问。

  2. 安全性:通过SSH隧道进行端口转发,可以在不直接暴露服务的情况下,安全地访问内部服务。SSH隧道会加密数据传输,增加了安全性。

  3. 方便调试:在开发过程中,开发者可能需要访问运行在开发机上的多个服务。通过端口映射,可以直接从本地访问这些服务,而无需在每次访问时都登录到开发机上。

  4. 绕过防火墙或网络限制:在某些网络环境中,可能存在防火墙或网络限制,阻止直接访问开发机上的服务。通过SSH隧道,可以绕过这些限制,实现对服务的访问。

  5. 多用户访问:如果多个开发者需要访问同一个服务,通过端口映射可以让每个开发者在自己的本地环境中访问该服务,而无需直接登录到开发机。

举个例子:

假设你在开发机上运行了一个Jupyter Notebook服务器,它监听的端口是7860,但只允许本地访问。通过以下SSH命令,可以将开发机的7860端口映射到你本地的7860端口:

ssh -p 37367 root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no

这样,你可以在本地浏览器中访问 http://127.0.0.1:7860 来查看和使用开发机上的Jupyter Notebook服务器。

3.原理

3.1【大白话】原理解释

开发机有自己的暴露端口公网IP,可以用于我们在本地进行ssh连接

但是在开发机也就是服务器中运行程序时,其程序是在服务器的某个端口上运行的

所以我们在本地想要看到该程序在服务器上的运行效果,就要建立端口映射,在浏览器打开本地端口时,转发到服务器的端口进行查看

3.2 原理图

在这里插入图片描述

4.代码

ssh -p 37367 root@ssh.intern-ai.org.cn -CNg -L {本地机器_PORT}:127.0.0.1:{开发机_PORT} -o StrictHostKeyChecking=no

例如:

ssh -p 37367 root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no

这条命令用于创建一个SSH隧道。下面是每个部分的详细解释:

  • ssh: 用于启动SSH连接的命令。
  • -p 37367: 指定要连接的远程主机的端口号(在这个例子中是37367端口)。
  • root@ssh.intern-ai.org.cn: 用户名(root)和主机名(ssh.intern-ai.org.cn)。
  • -CNg: 选项的组合:
    • -C: 启用压缩。
    • -N: 告诉SSH不执行远程命令,只进行端口转发。
    • -g: 允许远程主机连接到转发的端口。
  • -L 7860:127.0.0.1:7860: 进行本地端口转发,将本地机器的7860端口映射到远程主机的127.0.0.1的7860端口。
  • -o StrictHostKeyChecking=no: 禁用主机密钥检查,这样可以防止首次连接时出现交互提示。

总结来说,这条命令会在本地机器和远程主机之间创建一个SSH隧道,将本地的7860端口转发到远程主机的7860端口,并且不会执行远程命令或检查主机密钥。

如下图所示:
在进行端口映射之后,显示的是在服务器的7860端口上运行的程序
在这里插入图片描述

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

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

相关文章

萝卜快跑:未来出行的双刃剑

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 在这个日新月异的科技时代,无人驾驶技术正以前所未有的速度改变着我们的出行方式。萝卜快跑,作为自动驾驶出租车领域的佼佼者,其出现无疑为城市交通注入了新的活力&#xff…

[微信小程序知识点]自定义组件-拓展-外部样式类

使用组件时,组件使用者可以给组件传入css类名,通过传入的类名修改组件的样式 。 如果需要使用外部样式类修改组件的样式,在Component中需要用extemalClassess定义若干个外部样式类。 具体用法如下: (1)在Components文件里创建custom06组件 (…

谷粒商城实战笔记-26-分布式组件-SpringCloud-Gateway网关核心概念原理

微服务架构中,API网关扮演着至关重要的角色,它不仅作为微服务间的通信桥梁,还负责安全、监控、限流等职责。 一,网关的发展历程 SpringCloud的网关经历了两代的迭代和更替。 第一代网关是早期的Zuul,由 Netflix 开发…

【密码学】数字签名

一、数字签名的基本概念 数字签名是一种用于验证电子文档完整性和身份认证的密码学技术。它通过使用公钥加密体系中的私钥对文档的一部分(通常是文档的摘要)进行加密,从而创建一个“签名”。这个签名可以附在文档上,或作为一个单独…

巧用 VScode 网页版 IDE 搭建个人笔记知识库!

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] 巧用 VScode 网页版 IDE 搭建个人笔记知识库! 描述:最近自己在腾讯云轻量云服务器中部署了一个使用在线 VScode 搭建部署的个人Markdown在线笔记,考虑到在线 VScode 支持终…

C++笔试真题

可变分区管理方案 最佳适应:空闲区按容量递增最坏适应:空闲区按容量递减首先适应:空闲区按地址递增 C的结构体中有构造函数。 Linux新建用户或组 useradd:命令用于建立用户账号usermod:修改用户账号groupadd&#…

Spire.PDF for .NET【文档操作】演示:C#/VB.NET:压缩 PDF 文档

大型 PDF 文件处理起来很麻烦,占用宝贵的存储空间并减慢传输和上传速度。压缩 PDF 文档是一种简单有效的方法,可以减少文件大小并针对各种用途进行优化。通过压缩 PDF,您可以更轻松地通过电子邮件或云存储平台共享它们,加快下载速…

用Apipost压力测试接口

用Apipost压力测试接口 1.点击自动化测试 2.选择要测试的接口 3.如果没有接口,就先在api调试中添加要测试的接口 4.根据自己的需求设置相应的参数,这里我压测10次 5.这样就可以压测接口了,非常nice

接口幂等性和解决方案

针对前端重复发起相同请求的解决方案: 注意: Redis保证了在相同key的情况下,只会保留一条数据,这就保证了多次请求只会消费一条数据。 并且需要注意的是,生成/获取token和携带token发送请求的过程需要是两个不同的过…

showdoc sqli to rce漏洞利用思考

漏洞版本 sqli <3.2.5 phar 反序列化 <3.2.4 漏洞分析 前台sqli 补丁 https://github.com/star7th/showdoc/commit/84fc28d07c5dfc894f5fbc6e8c42efd13c976fda 补丁对比发现&#xff0c;在server/Application/Api/Controller/ItemController.class.php中将$item_id变量…

Java--抽象类

1.抽象--abstract 2.不能对抽象类进行实例化&#xff0c;也就是不能new这个抽象类 3.抽象类的应用&#xff0c;就是在class前加入abstract这个单词&#xff0c;同理抽象方法也是在void前加入abstract 4.在抽象类中可以写普通方法&#xff0c;但抽象方法只能写在抽象类中 5.…

Linux账号和权限管理详解

Linux系统中安装和管理程序 太详细了 &#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的…

婚恋交友语音交友小程序APP系统开发

在数字化时代&#xff0c;婚恋交友的方式也日益多样化。传统的相亲、朋友介绍等方式已经无法满足现代人快节毒的生活需求&#xff0c;更多的人开始选择通过线上平台寻找自己的另-婚恋交友语音交友小程序APP应运而生&#xff0c;为单身男女提供了个便捷、高效的交友平台。本文将…

vue使用quill编辑器自定义附件上传方法,并根据上传附件名称生成链接

1、附件上传 需求&#xff1a; 在编辑器中上传word,pdf,excel等附件后&#xff0c;能根据上传附件的名称生成link链接&#xff0c;在展示页面能实现点击链接下载或预览附件&#xff0c;效果图如下: 实现方法&#xff1a; quill编辑器自身带有link&#xff0c;但不满足需求&…

探索【Python面向对象】编程:新时代的高级编程范式详解

目录 1. 面向对象编程概念&#xff08;OOP&#xff09; 1.1 什么是类和对象&#xff1f; 1.2 类的定义 1.3 类和对象的关系 1.4 小李的理解 2. 抽象 2.1 抽象的概念 2.2 抽象类和方法 2.3 小李的理解 3. 类和实例 3.1 类的定义和实例化 3.2 类的属性和方法 3.3 小…

[Linux][Shell][Shell逻辑控制]详细讲解

目录 1.if 判断1.if-then2.if-then-else3.elif4.case5.实际上手 2.条件测试0.事前说明1.test 命令2.[]3.双括号1.(())2.[[]] 4.实际上手 3.循环1.for2.while3.until命令4.控制循环1.break2.continue 5.处理循环的输出 1.if 判断 1.if-then 语法&#xff1a;if command thenco…

Java技术栈总结:容器集合篇

一、List 1、ArrayList &#xff08;1&#xff09;底层数据结构 底层数据结构为数组。数组是一种用连续的内存空间存储相同数据类型数据的线性数据结构。 Q&#xff1a;为什么数组索引下标从0开始&#xff1f; A&#xff1a;从0开始&#xff0c;对应寻址公式&#xff1a;a[i]…

FLStudio21.3.12中文破解版本安装包win+mac电脑安装包下载

&#x1f3a4; FL Studio 21中文版&#xff1a;音乐制作新宠&#xff0c;让你的创作起飞&#xff01; 嗨&#xff0c;亲爱的音乐创作者们&#xff01;&#x1f44b;今天要和大家分享一个让我超级兴奋的宝藏软件——FL Studio 21中文版&#xff01;这不仅仅是一款音乐制作软件&…

科研绘图系列:R语言金字塔图(pyramid plot)

介绍 金字塔图(Pyramid chart)是一种用于展示人口统计数据的图表,特别是用于展示不同年龄段的人口数量。这种图表通常用于展示人口结构,比如性别和年龄的分布。 特点: 年龄分层:金字塔图按年龄分层,每一层代表一个年龄组。性别区分:通常,男性和女性的数据会被分别展…

Linux命令-grep/wc/管道符

1、Linux命令-grep/wc/管道符 2、echo/tail/重定向符 3、vi/vim 编辑器