内外网映射访问内网服务器

如果本地有公网ip,比如连接的宽带有公网ip,可以直接通过路由配置转发就行了,如果本地没有公网ip,那就需要通过下面这种方式来访问内网服务器了。

1:首先内网服务器需要连接外网,可以通过网线或者WiFi都可以。

2:准备三台服务,一台是内网服务器A,一台是阿里云公网服务器B(47.96.79.177),一台是其他可以访问外网的设备C

3:内网服务器A和公网服务器B互相同步密匙,准备内网服务器A密匙

#进入内网服务器A,执行下面命令
cd ~/.ssh 或者 cd /.ssh  #如果提示没用该目录,则需要生成该目录和下面的文件,直接在内网服务器A通过执行下面这个命令就可以了
ssh-keygen -t rsa (一直回车,无需配置密码)#执行完成后,再次cd ~/.ssh,可以发现在该文件下面会出现id_rsa 和id_rsa.pub文件

4:开始同步密匙,配置A ssh到 B的免密登陆

#在内网服务器A执行同步密匙命令,该命令会要求输入外网服务密码,直接输入就行
#ssh-copy-id -i ~/.ssh/id_rsa.pub -p A的某远程端口 A的用户名@A的IP
#or
#ssh-copy-id -i .ssh/id_rsa.pub A的用户名@A的IP
#or
#ssh-copy-id  A的用户名@A的IP
#or
#下面这一步是复制A的~/.ssh/id_rsa.pub内容到B的~/.ssh/authorized_keys中ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 root@47.96.79.177执行完成后,会在内网服务器A ~/.ssh/目录下出现known_hosts文件,里面是外网服务器的信息

同时此时登录到阿里云公网服务器B,也会在B服务器~/.ssh目录下看到authorized_keys文件,里面是内网服务器信息。

5:配置阿里云公网服务器B的ssh参数(尤其是AllowTcpForwarding yes 和 GatewayPorts yes

这2个要开启,其他参数可选配置)

vim /etc/ssh/sshd_config#连接超时及转发相关:
GatewayPorts yes
TCPKeepAlive yes
ClientAliveInterval 60  
ClientAliveCountMax 3#证书相关:
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keysAllowTcpForwarding yes(如修改参数,修改后重启ssh服务)
systemctl restart sshd

6:安装autossh

安装方式一
# 安装autossh
# CentOS
yum install -y autossh
# Ubuntu
apt install -y autossh# 编译安装,安装方式二 官网:https://www.harding.motd.ca/autossh/
$ sudo yum install wget gcc make
$ wget http://www.harding.motd.ca/autossh/autossh-1.4e.tgz
$ tar -xf autossh-1.4e.tgz
$ cd autossh-1.4e
$ ./configure
$ make
$ sudo make install
make install$ which autossh
/usr/local/bin/autossh

7:在内网服务器A执行命令进行端口转发(注意此处如果是阿里云这种云服务器,需要对监听的端口开通安全组)

autossh -M 0 -2 -4 -N  root@47.96.79.177 -p 22 -o ServerAliveInterval=5 -o ServerAliveCountMax=3 -o StrictHostKeyChecking=no -o TCPKeepAlive=yes -R 0.0.0.0:22219:localhost:22 -R 0.0.0.0:22220:localhost:8082

该命令执行完成后,会在47.96.79.177上打开22219和22220监听,通过 netstat -anp|grep 22219命令查看22219端口监听情况,注意图1是AllowTcpForwarding yes 和 GatewayPorts yes这2个没用开启执行后的结果,图2是开启后执行的结果

图1

图2

图1这种只能在47.96.79.177本地通过ssh -p22219 root@localhost访问内网,图2已经可以在其他外网服务器C上通过命令ssh -p22219 root@47.96.79.177来访问内网服务器了

关于图1和图2访问不同得原因说明

一般通过netstat -anp|grep 端口查看端口监听信息,监听端口前面如果是127.0.0.1说明只能在该服务器本地访问,如果监听端口前面如果是0.0.0.0 说明可以在外部访问该服务器了

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

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

相关文章

小林图解系统-二.硬件结构 2.4CPU缓存一致性

CPU Cache的数据写入 CPU和内存的访问性能越差越大,于是在CPU内部嵌入CPU Cache(高速缓存)。 CPU Cache由Cache Line组成,Cache Line由头标志Tag数据块Data Block组成。 如果数据写入Cache,内存和Cache相对应的数据将不同,需要…

Redis-五种数据结构之列表(ziplist、quicklist)

列表 文章目录 列表压缩列表-ziplistziplist 定义级联更新 快速列表-quicklistquicklistNode 定义quicklist 定义quicklist常用操作其他操作quicklist 相对于普通链表优点quick应用场景在redis 中使用quicklist 列表数据类型可以存储一组按插入顺序排序的字符串,他很…

昇思大模型学习·第一天

mindspore快速入门回顾 导入mindspore包 处理数据集 下载mnist数据集进行数据集预处理 MnistDataset()方法train_dataset.get_col_names() 打印列名信息使用create_tuple_iterator 或create_dict_iterator对数据集进行迭代访问 网络构建 mindspore.nn: 构建所有网络的基类用…

Linux搭建Minio单机环境

😊 作者: 一恍过去 💖 主页: https://blog.csdn.net/zhuocailing3390 🎊 社区: Java技术栈交流 🎉 主题: Linux搭建Minio单机环境 ⏱️ 创作时间: 2024年06月19日 目…

Linux网络命令:网络速度测试工具 speedtest-cli 详解

目录 一、概述 二、安装 speedtest-cli 1、在基于 Debian 的系统上安装 2、在基于 Red Hat 的系统上安装 三、命令语法 1、基本命令语法 2、查看帮助 3、常用选项 四、 speedtest-cli使用示例 1. 基本测试 2. 列出所有可用的服务器 3. 指定服务器进行测试 …

C语言—数据在内存中的存储

1.整数在内存中的存储 文章回顾(C语言—操作符详解) 整数的2进制表示方式有三种,即原码、反码和补码。 有符号的整数,三种表示方式均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”&…

数据库 | 试卷四

1.数据库系统的特点是 数据共享、减少数据冗余、数据独立、避免了数据不一致和加强了数据保护 2.关系模型的数据结构是二维表结构 3.聚簇索引 cluster index 4. 这里B,C都是主属性,所以B->C不是非主属性对码的部分函数依赖 候选键(AC&a…

复利(Compound Interest)是什么?中英双语介绍

中文版 复利(Compound Interest)深入介绍 1. 什么是复利? 复利(Compound Interest),也称为“利滚利”,是指利息不仅会根据本金计算,还会根据已经累积的利息计算。这种方式可以让投…

极端天气频繁之下,新能源风力发电风机巡检建设智能化超高清化趋势明显

这个6月,中央气象台连发7天高温预警,全国多地气温超40度,全国出现40℃以上高温的范围持续增加,6个国家站日最高气温突破6月极值。极端热浪不仅冲向中国,几乎北半球的所有地区,也同样被这股热浪影响。 随着…

LabVIEW共享变量

共享变量简介 LabVIEW​为​创建​分布​式​应用使用​共享​变量​可以简化​此类​应用的编程。​ 借助​共享​变量,​您​可以​在​同​一个​程序​框​图​的​不同​循环​之间​或者网络上​的​不同VI之间​共享​数据。与LabVIEW中的许多​其他数据​共…

htb_Editorial

hack the book Editorial 端口扫描 80 22 目录扫描 /upload 是一个上传book information的页面 其中最顶上有一个可以上传书本封面的地方,可以从本地上传,也可以从远程下载 这里可能涉及ssrf和本地文件上传,逐一尝试 随便上传一个图片…

idea搜索只显示100条、如何修改idea搜索的条数

文章目录 一、老版本的IDEA(2021年之前的版本)二、新版本的IDEA(2021年及之后的版本)2.1、方式一2.2、方式二 如下图:idea搜索的时候默认只显示100条 要解决IDEA搜索只显示100条的问题,可以通过修改搜索结…

腾讯云入选Gartner®边缘分发平台代表厂商,为企业数字化升级保驾护航

刚刚获悉,国际信息技术研究和分析机构Gartner正式发布《Market Guide for Edge Distribution Platforms》报告,腾讯云凭借边缘安全加速平台EdgeOne成功入选代表厂商。相信这意味着腾讯云EdgeOne领先的技术、产品和实践能力得到了认可。 万物互联时代&am…

【UML用户指南】-19-对基本行为建模-用例图

目录 1、组成结构 2、表示法 3、一般用法 3.1、对主题的语境建模 3.2、对主题的需求建模 4、常用建模技术 4.1、对系统的语境建模 4.1.1、设计过程 4.2、对系统的需求建模 4.2.1、设计过程: 5、正向工程 UML 中的用例图是对系统的动态方面建模的 5 种图之…

进入docker容器内部操作mysql数据库

文章目录 1、查询docker容器2、进入mysql容器内部3、连接mysql数据库4、查询mysql所有的数据库5、使用某个数据库6、展示数据库中所有的表7、查询某张表8、断开mysql9、退出mysql容器 1、查询docker容器 [rootlocalhost ~]# docker ps CONTAINER ID IMAGE …

Java 序列化与反序列化

Java 序列化是一种将对象的状态转换为字节流的机制,以便可以将该对象的状态保存到文件、数据库或通过网络传输。在反序列化过程中,这些字节流可以被重新转换为对象。序列化主要用于以下几种情况: 持久化存储:将对象的状态保存到文…

商城小程序:颠覆传统电商,打造全新商业生态

在数字化浪潮的推动下,网购行业呈现多元化繁荣发展态势,出现了琳琅满目的商品应用小程序,但市面上的商城小程序基本属于通用型,无论是商城界面展示和基本功能,都不能满足个性化和商品推广需求,阻碍了商品的…

测试cudaStream队列的深度

测试cudaStream队列的深度 一.代码二.编译运行[得出队列深度为512] 以下代码片段用于测试cudaStream队列的深度 方法: 主线程一直发任务,启一个线程cudaEventQuery查询已完成的任务,二个计数器的值相减 一.代码 #include <iostream> #include <thread> #include …

linux下cuda安装-ubuntu22.04安装cuda11.8(cuda+cudnn)

原文链接&#xff1a;linux下cuda安装-ubuntu22.04安装cuda11.8(cudacudnn) 导言 cuda是nvidia提供在N卡上实现并行计算的工具包&#xff0c;cudnn是cuda的运行时库&#xff0c;通过cuda提供的内核函数能够高效的在N卡上跑密集计算程序。 本文在N卡机器上安装好了相应的驱动后…

Building wheels for collected packages: mmcv, mmcv-full 卡住

安装 anime-face-detector 的时候遇到一个问题&#xff1a;Installation takes forever #1386&#xff1a;在构建mmcv-full时卡住&#xff0c;这里分享下解决方法&#xff08;安装 mmcv 同理&#xff0c;将下面命令中的 mmcv-full 替换成 mmcv&#xff09; 具体表现如下&#x…