`

通过ssh反向连接内网主机的方法

 
阅读更多

SSH反向连接的使用

1
、什么是反向连接?
反向连接是指主机A(受控端)主动连接主机B(控制端),在主机A和主机B之间建立一个远程连接,通过这个连
接主机B可以主动的向主机A发送一些请求。

2
、为什么需要主机A主动去连接主机B呢?
这是因为主机A在局域网内,如果没有对主机A进行端口映射,对于主机B来说主机A是不可见的,如果在主机B
边向主机A发送连接请求,这个请求是不可达的。而主机B有自己独立的IP,对于主机A来说是可见的,可以直接向
主机B请求连接。

3
SSH反向连接的过程
方法就是主机A主动去连接主机B,主机B响应主机A的连接请求,它们之间就建立了一个远程连接。然后主机B
本地再创建一个本地连接,重定向到主机A和主机B刚才建立的远程连接上,之后对这个本地连接的操作都会反馈到
远程连接上去。整个过程类似于文件的DUP,这就在主机A和主机B之间建立了连接通道,此时对于主机B来说,主
A已经是可见了。

连接流程如下:
3.1
、主机A ssh客户端向主机B sshd服务端发送请求,建立远程连接。
3.2
、主机B sshd服务端创建本地连接很远程连接的映射(反向连接通道)。
3.3
、主机B ssh客户端向主机B sshd服务端的连接通道发送请求, 建立主机B ssh和主机A sshd的连接。

完成连接后,主机A对于主机B可见的形式就是存在于主机B的那个本地连接。

4
、为什么需要在主机B对远程连接映射一个本地连接?
反向连接就是CS架构,不过是受控端主动向控制端请求连接,让它们之间的连接建立。传统的CS方式是可以解决
主机A和主机B之间的连接问题,但是那样主机A和主机B的连接方式并不灵活,两者之间能做的事情,只能是CS之际
协议规定的事情。在主机B上建立了主机A的连接映射后, 对于主机B来说主机A已经不是局域网内那台不可见的主
机,主机A已经是存在主机B的一台可见主机,这样就消除了局域网和广域网的阻碍。 主机A和主机B之间建立的那
个远程连接就是主机A和主机B的通道-网线

5
SSH反向连接的使用
要建立反向连接,首先在主机A上运行:

代码: 全选

ssh -f -N -R 10000:localhost:22 lyb@3322.org

autossh -M 5678 -f -N -R 10000:localhost:22 lyb@3322.org


10000
是主机B上的本地连接端口, 22是主机B上远程连接的那个端口, lyb@3322.org是主机B的地址
连接上后,会需要输入密码。连接成功后,SSH反向连接就建立起来了。要连接到主机A,在主机B上运行:

代码: 全选

ssh lyb@localhost -p 10000

即可。

使用的过程中碰到一个问题, 就是在主机A上发起请求的时候, 需要输入密码。 如果我在家里, 不可能跑到公
司了去输入密码。于是用ssh public key的方法和写一个脚本来解决。脚本如下:

代码: 全选

#!/bin/bash 

while true;do

RET=`ps ax | grep "autossh" | grep -v "grep"`

if [ -z "$RET" ]; then

echo "restart ssh server" 

autossh -M 5678 -f -N -R 25022:localhost:22 lyb@3322.org -p 15222

fi

sleep 100

done


脚本的作用就是监控反向连接的服务, 在被异常中断的时候重启, 使用了SSH公钥后, 也不必跑到公司输入密
码了。  

分享到:
评论

相关推荐

    使用反向ssh从外网访问内网主机的方法详解

    这种方法主要通过建立反向SSH隧道,使得外网主机能够通过内网主机连接到的有固定外网IP的服务器,进而访问内网主机。 反向SSH的工作原理是,内网主机主动连接到有外网IP的服务器,并开放一个端口(如1111),这个...

    SSH与frp内网穿透.pdf

    SSH与frp内网穿透 SSH(Secure Shell)是...需要在frp服务器上配置frp,包括设置远程服务器的IP和端口号,然后可以使用frp连接到内网中的主机。 SSH和frp可以实现内网穿透和免密登陆,提高远程访问的安全性和便捷性。

    tunnelme:反向 SSH 和 SSH 隧道

    而在反向 SSH 隧道中,流程相反:远程服务器会建立连接到本地主机的通道,这样即使远程服务器位于防火墙之后,也可以通过这个隧道访问本地服务。 创建反向 SSH 隧道的基本步骤如下: 1. 在本地主机上运行 SSH ...

    内网ssh/mysql登录缓慢的解决方法

    在许多企业环境中,内网服务器不直接提供DNS服务,因此当SSH(Secure Shell)和MySQL客户端尝试进行DNS反向解析验证服务器身份时,由于无法快速得到响应,会等待超时,这大大延长了登录过程。本文将详细讲解如何解决...

    Linux远程访问工具,支持ssh服务

    8. **高级用法**:SSH还可以与其他命令结合使用,例如`ssh -L`进行端口转发,`ssh -t`在远程服务器上启动一个伪终端,`ssh -R`实现反向端口转发。 了解并熟练掌握这些SSH远程访问的基本概念和技巧,将极大地提高你...

    frp_0.27.1_linux_amd64.tar.gz

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https协议。...利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。

    frp工具-linux-amd64

    frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。...利用处于内网或防火墙后的机器,对外网环境提供 TCP 和 UDP 服务,例如在家里通过 SSH 访问处于公司内网环境内的主机。

    好快Frp内网穿透映射桌面视图版

    Frp: frp 是一款高性能反向代理应用 frp 是一个高性能的反向代理应用,支持 tcp, udp, http, https ...利用处于防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司局部环境的主机。

    frp_0.27.x linux && windows.zip (包含windows版本和linux版本)

    FRP 全名:Fast Reverse Proxy。FRP 是一个使用 Go 语言开发的高性能的反向代理应用,可以帮助...利用处于内网或防火墙后的机器,对外网环境提供 TCP 和 UDP 服务,例如在家里通过 SSH 访问处于公司内网环境内的主机。

    Go-tcptunnel将本地内网服务器映射到公网。

    TCP隧道则是通过一个中间代理服务器,建立两个远程主机之间的TCP连接,使得原本无法直接通信的内网服务器可以通过公网进行访问。 Go-tcptunnel的工作流程如下: 1. **客户端启动**:用户在内网环境中运行Go-...

    4.公网访问篇1

    通过以上步骤,你可以成功地建立从本地机器到云服务器的访问通道,无论是简单的SSH连接还是通过FRP的内网穿透,都能确保安全且稳定的远程访问。同时,通过配置域名和数字证书,还能提升服务的安全性和用户体验。

    frp内网穿透工具-其他

    frp是一个高性能的反向代理应用,可以帮助您...利用处于内网或防火墙后的机器,对外网环境提供tcp服务,例如在家里通过ssh访问处于公司内网环境内的主机。 可查看通过代理的所有http请求和响应的详细信息。(待开发)

    linux ssh端口转发的三种方式

    再细想一下,发现ssh隧道、或者说端口转发,竟然实现了正向代理、反向代理和内网穿透三种常用的网络功能,更佩服其功能的强大和使用中的便利。 ssh有三种端口转发模式,本文一一对其做简要介绍。 本地转发 本地端口...

    主持人:使用此工具公开您的LocalHost

    12. **Serveo**: Serveo是一个基于SSH的反向代理服务,允许用户通过公共URL访问本地Web服务,类似于Ngrok,但它的免费版本已经停止服务。 13. **Localhostrun**: 可能是一个工具或者服务,用于使本地服务器对外可见...

Global site tag (gtag.js) - Google Analytics