0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

三条命令助你快速实现SSH内网穿透

dyquk4xk2p3d 来源:良许Linux 作者:良许Linux 2022-11-14 14:32 次阅读

ssh 反向隧道相信大多数同学都比较了解,就算不了解也一定在日常工作中听说过,其实抛开那些专业的术语,通常我们借助 ssh 的反向隧道来实现两个网络隔离的主机间通信。最近小白在远程操作一个私有化的项目时正好用到了这个,简单总结了下便有了此文章。

在操作之前,我先将需要的资源列出一个表格,大家在操作前可以先按照如下准备资源:

代号 角色 机器位置 地址 账户 ssh 端口 sshd
A 中转机器 公网 121.41.218.68 root 22 启用
B 客户机器 客户内网 10.155.0.0/24 root 22 启用
C 我的机器 公司/家中 127.0.0.1 root 22 不需要

这里为了操作方便机器全部用的 root 账号,大家不要学我

我的需求很简单,即客户内网 B 中有一批刚装完操作系统的服务器,我需要在公司或者家中的电脑上通过 Ansible Playbook 批量对这些机器进行初始化。

第一步:开启 ssh server 代理功能

在位于公网服务器上打开 sshd 的GatewayPorts开关,并重启sshd

sed-i"s/#GatewayPortsno/GatewayPortsyes/g"/etc/ssh/sshd_config
systemctlrestartssh

打开代理功能意味着,当我们在建立 ssh 反向隧道后,监听的地址会从默认的 127.0.0.1更换成 0.0.0.0,方便 ssh 客户端远程登录。

第二步:建立 ssh 反向隧道

在客户内网B中找一台能访问 121.41.218.68 地址的服务器,登录上去,并在终端内执行下述命令:

ssh-lroot-p22-qngfNTR882222121.41.218.68-oServerAliveInterval=10

这一步的关键信息其实就是在主机 B 和主机 A 之间建立一条 SSH 隧道,隧道端口的映射关系是主机B:22 <--> 主机A:8822

之所以加上 ServerAliveInterval=10,是让客户端每 10s 发送一个心跳保持隧道的链接,否则这条连接很容易被重置。

第三步:本地 ssh client 代理

目前有了 ssh 的隧道也只能满足我本地主机 C 能通过 121.41.218.68 的 8822 端口 ssh登录到客户内网的 B 主机,还不能满足我进行批量运行任务的需求。

此时,我们就需要在自己电脑上配置 ssh 客户端的 socket 代理来满足需求,配置位于~/.ssh/config

hosthosta
HostName121.41.218.68
Port8822
Userroot

host10.155.0.*
Userroot
Port22
ProxyCommandsshhosta-W%h:%p

至此,我就可以在本地用 ansible-playbook 无缝的进行操作了。

总结

上述 3 步是整个 ssh 内网穿透的核心流程,如果要做得更加的优雅的话,我们还需要考虑几点优化:

为三台机器上的 ssh 客户端分别配置公私钥

为主机 B 上的 ssh 方向隧道创建服务进程,避免重启后隧道丢失

尽量保证公网主机 A 的网络安全,可单独为隧道端口配置防火墙策略

当然,ssh 反向隧道除了能代理 ssh 服务外,它也能对内网的其他服务做 socket 转发,这里本文就不再展开。总之,建立 SSH 反向隧道这种事情大多数情况都是迫于无奈的临时选择,我们在用完后要及时释放连接,避免长期闲置被不法分子盯上后带来的损失。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    8116

    浏览量

    82509
  • 操作系统
    +关注

    关注

    37

    文章

    6284

    浏览量

    121877
  • SSH
    SSH
    +关注

    关注

    0

    文章

    177

    浏览量

    16075

原文标题:三条命令助你快速实现 SSH 内网穿透

文章出处:【微信号:良许Linux,微信公众号:良许Linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问花生壳怎么进行内网穿透的?

    花生壳是怎么进行内网穿透的,能不能用来***,还是只有组建内网的功能。
    发表于 04-18 06:02

    内网穿透详解-基于NATAPP&NatAssist测试

    教程就可以实现内网穿透啦。【注意以下几点】1、NATAPP提供免费的隧道,这个临时隧道过一段时间就会更新域名和端口,个人觉得临时调试还可以用一下,如果做长期调试,建议还是买一个通道方便些。2、购买
    发表于 09-13 12:14

    搭建自己的IOT平台---内网穿透

    好啦,内网穿透就是这么简单,快去实现你的IOT平台吧注意:花生壳现在需要实名制,如果使用过程发现要实名制的话,可以选择实名,就上传身份证件,然后再采集一下人脸即可,这个可以在APP上快速
    发表于 12-09 23:14

    学习嵌入式Linux的三条路线

    对于学习嵌入式Linux,韦东山老师整理了三条学习路线,适合与不同阶段的学员。三条嵌入式学习路线路线一:单片机路线使用KEL、HAL库来快速的掌握单片机开发路线二:深入学习单片机/RTOS
    发表于 07-20 06:30

    Thinker Edge R内网穿透实现远程SSH的设计该怎样去实现

    Thinker Edge R内网穿透实现远程SSH的设计该怎样去实现呢?
    发表于 02-14 07:28

    广和通ADP-L610-Arduino模块实现基于内网穿透的TCP通信--吴丰艺--大连海事大学

    广和通ADP-L610-Arduino模块实现基于内网穿透的TCP通信原帖链接:https://blog.csdn.net/fgfgfdg8/article/details/118000795前言
    发表于 12-08 09:46

    【HD-G2UL-EVM开发板体验】 内网穿透

    设备,验证是否生效sync && sudo reboot开始在网上有关sakura frp在linux开发板上的教程还比较少,这里写一篇在G2UL开发板上实现内网穿透
    发表于 12-22 16:49

    如何使用花生壳搭建内网穿透

    花生壳的内网穿透原理就是通过花生壳服务器把他们的公网IP地址进行翻译,转换成为一种私有的地址,然后在花生壳服务器上,类似做端口映射,通过不同的端口来访问不同的内网电脑,这一切都是通过互联网来
    的头像 发表于 12-09 11:29 1107次阅读

    常用的内网穿透工具原理和使用方法

    nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,
    发表于 07-10 11:20 836次阅读
    常用的<b class='flag-5'>内网</b><b class='flag-5'>穿透</b>工具原理和使用方法

    内网穿透工具的种类、原理和使用方法

    本文以渗透的视角,总结几种个人常用的内网穿透内网代理工具,介绍其简单原理和使用方法。
    的头像 发表于 08-25 10:35 382次阅读
    <b class='flag-5'>内网</b><b class='flag-5'>穿透</b>工具的种类、原理和使用方法

    什么是nps?常见内网穿透工具有哪些?

    nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。 目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面
    发表于 08-31 10:32 1269次阅读
    什么是nps?常见<b class='flag-5'>内网</b><b class='flag-5'>穿透</b>工具有哪些?

    内网穿透可以带给物联网什么呢?

    内网穿透可以带给物联网什么呢?
    的头像 发表于 10-14 15:14 396次阅读

    神器!实现内网穿透的几款工具

    frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
    的头像 发表于 11-25 10:22 715次阅读
    神器!<b class='flag-5'>实现</b><b class='flag-5'>内网</b><b class='flag-5'>穿透</b>的几款工具

    内网穿透工具FRP的快速入门

    在计算机网络中,内网穿透是一种通过公网建立安全通道,使得位于内网的计算机和服务可以被外部网络访问。对程序员而言,内网穿透可以帮
    的头像 发表于 01-02 11:47 325次阅读

    使用cpolar内网穿透本地MariaDB数据库

    本篇教程将使用cpolar内网穿透本地MariaDB数据库,并实现在外公网环境下使用navicat图形化工具远程连接本地内网的MariaDB数据库。
    的头像 发表于 01-22 10:28 210次阅读
    使用cpolar<b class='flag-5'>内网</b><b class='flag-5'>穿透</b>本地MariaDB数据库