使用autossh实现内网穿刺-程序员宅基地

技术标签: 运维  linux  服务器  docker  

前言

需要在客户公司部署一套系统,要求是能公网访问,但是客户那边没有公网IP。所以打算打算使用autossh实现内网穿刺。

准备

硬件:

我需要一台有独立ip的公网服务器82.82.82.82(充当穿刺服务器),一台能连接公网的服务器,或个人电脑(无固定IP)。

原理:

两台服务器通过autossh建立连接(类似ssh,但掉线会重连),将公网服务器的如10001端口映射到客户服务器80端口

实现:

公网用户访问82.82.82.82:10001端口实际访问到客户电脑的80端口。

图解:

在这里插入图片描述

代码

公网服务器
  1. 在服务器提供商的网页控制台增加端口放行,如增加10001端口放行(云防火墙)。
  2. 进入服务内部设置防火墙放行10001端口.并重启防火墙(系统防火墙)。
firewall-cmd --zone=public --add-port=10001/tcp --permanent
firewall-cmd --zone=public --add-port=10001/tcp --permanent
firewall-cmd --reload
本地电脑
  1. 安装autossh
yum install epel-release # 系统版本>=CentOS 7.6需要执行,启用 EPEL 额外软件存储库,否则autossh包会找不到
yum install autossh #安装autossh
  1. 生成公钥私钥,并复制到公网服务器,来实现免密登录公网服务器。
ssh-keygen #生成公钥私钥
cat /root/.ssh/id_rsa.pub  #将里面的公钥内容复制到云服务器的/root/.ssh/authorized_keys里来实现免密登录
  1. 配置端口映射,并设置开机启动

设置端口映射,1995是本地服务器的保证持续连接的端口(随便用个未使用的),80是内网服务器的提供服务端口,10001是对应穿透服务器上的端口

autossh -f -M 1995 -NR 10001:localhost:80 [email protected]

chmod +x /etc/rc.d/rc.local #设置开机启动
echo 'autossh -f -M 1995 -NR 10001:localhost:80 [email protected]' >> /etc/rc.d/rc.local

验证

在本地服务器执行 sof -i:80,看到信息就是正确
在这里插入图片描述

在公网服务器执行netstat -antpul | grep 10001,看到信息就是正确
在这里插入图片描述
内网访问:192.168.0.1出现“你好,我是192.168.0.1”
公网访问:82.82.82.82:10001出现“你好,我是192.168.0.1”

原创不易,欢迎点赞收藏,转发请注明出处

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xiantianga6883/article/details/131472101

智能推荐

win10微软账号登陆报错:0x80190001解决方案_微软账户登录0x8019001-程序员宅基地

文章浏览阅读3.5w次,点赞19次,收藏18次。win10微软账号登陆报错:0x80190001解决方案_微软账户登录0x8019001

从微软AzureDevOps看实施基于DevOps全流程软件交付-程序员宅基地

文章浏览阅读1.5k次。Azure DevOpsAzure DevOps 汇集人员、流程和技术,实现软件交付自动化,为用户提供持续的价值。借助 Azure DevOps 解决方案,帮助您全流程构建你的软件产品,它使流程和产品更可靠。Azure DevOps帮助你用敏捷工具计划项目;用Git管理你的代码;..._azure devops approve

Typora中使用LaTeX:多行公式左对齐_typora对齐公式-程序员宅基地

文章浏览阅读1.4w次,点赞7次,收藏40次。Typora中使用LaTeX:多行公式左对齐有时候公式太长,用=号对齐很难看(有的公式左边很长,右边很短),此时难免需要进行"公式左对齐"。所需要的环境还是"align"(或者是align*,不带公式编号)。语法如下:\begin{align*}\label{2} & X(0) = x(0)W_{N}^{0\cdot0} + x(1)W_{N}^{0\cdot1} + \cdots + x(N-1)W_{N}^{0\cdot(N-1)}\\ & X(1) = x(0)W_{N}_typora对齐公式

springboot配置文件加载顺序, java启动参数优先级_nacos默认覆盖本地吗-程序员宅基地

文章浏览阅读1k次。(12)、jar包外面的 Profile-specific application properties (application- {profile} .properties和YAML)(13)、jar包内的 Profile-specific application properties (application-{profile}.properties和YAML)(1)、在您的HOME目录设置的Devtools全局属性(~/.spring-boot-devtools.properties)。_nacos默认覆盖本地吗

适合写技术文档的工具_技术文档编写工具-程序员宅基地

文章浏览阅读3.6k次。https://www.showdoc.com.cn/_技术文档编写工具

面向食品领域的命名实体识别技术-程序员宅基地

文章浏览阅读706次,点赞17次,收藏24次。非常感谢您的详细任务描述和要求。作为一位世界级人工智能专家和计算机领域大师,我将以专业的技术语言和深入的见解,为您撰写这篇《面向食品领域的命名实体识别技术》的技术博客文章。面向食品领域的命名实体识别技术作者:禅与计算机程序设计艺术1. 背景介绍食品行业是一

随便推点

lua面向对象编程之点号与冒号的差异详细比较-程序员宅基地

文章浏览阅读41次。首先,先来一段在lua创建一个类与对象的代码 1 Class = {} 2 Class.__index = Class 3 4 function Class:new(x,y) 5 local temp = {} 6 setmetatable(temp, Class) 7 temp.x = x 8 temp.y = y 9 return...

百度云虚假下载_虚假新闻:关于公共云的5种常见误解-程序员宅基地

文章浏览阅读212次。百度云虚假下载 In the complex world of IT, there are many misconceptions about migrating to the public cloud. Some of these portray the public cloud as the panacea for every IT issue, whereas others consider..._from diggers to data centres从淘金企业到数据中心

Tesseract图像识别OCR的学习1_tesseract doocr-程序员宅基地

文章浏览阅读1.1k次。领导让做一个识别发票的服务,之前都是写增删改查,完全没接触过图像识别这种高大上的东西,记录一下吧新建一个项目,导入tess4j <dependency> <groupId>net.sourceforge.tess4j</groupId> <artifactId>tess4j&l..._tesseract doocr

不同层级的Android开发者的不同行为,我们该如何进阶和规划?-程序员宅基地

文章浏览阅读874次,点赞11次,收藏14次。首先是一个知识清单:(对于现在的Android及移动互联网来说,我们需要掌握的技术)泛型原理丶反射原理丶Java虚拟机原理丶线程池原理丶注解原理丶注解原理丶序列化Activity知识体系(Activity的生命周期丶Activity的任务栈丶Activity的启动模式丶View源码丶Fragment内核相关丶service原理等)代码框架结构优化(数据结构丶排序算法丶设计模式)APP性能优化(用户体验优化丶适配丶代码调优)热修复丶热升级丶Hook技术丶IOC架构设计。

Pelee: A real-time object detection system on mobile devices-程序员宅基地

文章浏览阅读237次。Pelee: A real-time object detection system on mobile devices属于densenet的变种文章,没有使用可分离卷积,因为可分离卷积不同的框架实现方法不一样。Before first dense blockDynamic Number of channels in Bottleneck layerThe nu..._a real-time object detection system on mobile devices