美文网首页linux@IT·互联网程序员
ssh 反向隧道-远程端口转发

ssh 反向隧道-远程端口转发

作者: 小直 | 来源:发表于2017-03-15 13:00 被阅读187次

背景描述:

因为某个服务接口绑定了远程服务器C的域名,但是又不能直接在远程服务器C上做服务接口的调试,所以希望能够实现将远程服务器C的请求转发到本地开发环境A上;

基本原理:

本地开发环境A可以通过ssh 服务链接到服务器C上;
如下图的实线,我把ssh 登录链接理解为正向隧道;
那么,如果ssh在链接到服务器C的同时,能够同时创建一条反向隧道(虚线),那么我们就可以想把办法将到达远程服务器C上的请求,通过反向隧道转发到本地;

基本原理流程图

利用ssh创建反向隧道

ssh -R $remote_port:$local_ip:$local_port user@$remote_ip
#ssh -R 89:127.0.0.1:80  user@remote.server.com

最简单的实现:

创建反向隧道
1. 在远程服务器C上搭建nginx -proxy,使得通过服务器C 80端口的请求都转发到服务器C的89端口

远程服务器C上的nginx配置文件如下:

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log  /tmp/access.log  main;

server {
    listen 80;
    server_name  www.* ;

    location / {
        proxy_pass http://127.0.0.1:89;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

2. 在本地开发机A上创建到远程服务器上的反向隧道;

在A上键入以下命令

ssh -R 89:127.0.0.1:80  user@remote_ip

既可以成功在本地80端口接收服务器C上的http请求;

本地内网docker 容器与远程服务器内的docker 容器反向转发:

上图是实现最简单的反向隧道穿透,实际在运用中,由于有集群的存在,映射的复杂度会偏高些;
比如本地的开发环境内有开发环境的集群,远程服务端C也有线上服务的集群;
下图为近期作者完成的本地开发集群及线上服务环境集群的反向隧道穿透流程图:

集群的映射

实现的基本思路和原理与第一个例子相同,大家可以实践看看~

相关文章

  • 5. 调试利器 - 端口转发 - ssh隧道技术

    说明 使用技术:** SSH隧道**端口转发分为 本地端口转发 和 远程端口转发。本地端口转发:将远程的端口映射到...

  • ssh 反向隧道-远程端口转发

    背景描述: 因为某个服务接口绑定了远程服务器C的域名,但是又不能直接在远程服务器C上做服务接口的调试,所以希望能够...

  • 远程服务调试技巧

    SSH端口转发 反向代理 远程端口转发到本地 在remote主机上将会监听10000端口,把接收到的数据转发到本地...

  • 通过SSH隧道连接mysql

    SSH隧道的类型 SSH隧道有3种类型: 动态端口转发(Socks 代理) 本地端口转发 远端端口转发 通过本地端...

  • ssh隧道用于调试

    相关阅读 SSH隧道与端口转发及内网渗透 | 个人博客 SSH隧道技术----端口转发,socket代理 | 博客...

  • ssh端口转发(ssh隧道)详解

    摘要 ssh端口转发(或称ssh隧道)在本机和远程主机之间建立一个加密的通信隧道。这一隧道可以被其他非加密(例如I...

  • 利用 ssh 隧道将 msf 监听端口转发到 VPS

    使用隧道工具将本地监听的 8888 端口转发到公网服务器笔者认为比较方便工具是 ssh 远程端口转发 , 只需要一...

  • 如何在xshell中创建一个SSH隧道

    SSH隧道 ssh隧道有三种类型, 正好可以用来解决文章开头提到的三个问题. 这三个类型是: 本地端口转发. 远程...

  • ssh的代理和端口转发机制介绍

    本文介绍通过ssh建立隧道的三种方式。 ssh的隧道均通过端口转发来实现,包括三种模式: 本地端口转发,使用-L参...

  • SSH隧道技术

    SSH隧道(即SSH代理、端口转发),现在linux默认支持的就是ssh登录。对于SSH隧道,如果之前没接触过,只...

网友评论

    本文标题:ssh 反向隧道-远程端口转发

    本文链接:https://www.haomeiwen.com/subject/ekllnttx.html