美文网首页
ssh正向代理与反向代理

ssh正向代理与反向代理

作者: 蚂蚁都督 | 来源:发表于2020-08-07 11:18 被阅读0次

    场景

    我们开发的时候经常遇到一个问题,开发的web服务器或后台服务在公司的服务器上,但是回到家或假期需要开发的时候,自己的笔记本无法连接这些服务,一种方法是用vagrant搞一套仿真的开发环境,但是这要求我们的笔记本内存足够大,并且还需要经常进行同步,如何能够在家里访问呢?
    ssh隧道是个不错的选择。

    常用参数

    • -N 告诉SSH客户端,这个连接不需要执行任何命令。仅仅做端口转发
    • -C 表示压缩数据传输
    • -f 告诉SSH客户端在后台运行
    • -q Quiet mode. 安静模式,忽略一切对话和错误提示
    • -g:允许远程主机连接主机的转发端口
    • -L port:host:hostport 做本地映射端口(正向隧道,监听本地port)
      • 需要使用的本地端口号(7001)
      • 需要访问的目标机器IP地址
      • 需要访问的目标机器端口(端口: 21)
    • -R。port:host:hostport 该参数的三个部分的含义分别(反向隧道,监听远程port)
      • 远程机器使用的端口(8080)
      • 需要映射的内部机器的IP地址(127.0.0.1)
      • 需要映射的内部机器的端口(22)
      • -R X:Y:Z 就是把我们内部的Y机器的Z端口映射到远程机器的X端口上
    • -D port 指定一个本地机器 ``动态的 应用程序端口转发
    • ssh正向代理
      目的是从本地访问远程的服务
      远程是ssh server, 本地是ssh client, 侦听端口在本地
    ssh -fCNg -L 7001:<远程内部服务器-ip>:<远程内部服务-port> <user>@<远程网关IP> -p <远程网关的ssh 服务 port>  
    ftp localhost:7001 # 现在访问本地7001端口,就能连接在内网的服务了
    
    • SSH动态代理
      目的是从本地访问远程的服务
      远程是ssh server, 本地是ssh client, 侦听端口在本地
    ssh -fCNg -D 0.0.0.0:1080 <user>@<远程网关IP>  -p <远程网关ssh的port># 将端口绑定在127.0.0.1上
    在浏览器里设置代理,用localhost和1080即可,访问的时候直接用内部的地址;
    
    • SSH 反向代理
      目的是从远程访问本地的服务
      ssh server在本地,远程是ssh client, 端口侦听在远程的服务器上
    ssh -CfNg -R 7001:<本地内部服务器-ip>:<本地内部服务-port> <user>@<远程网关IP> -p <远程网关的ssh 服务 port>  
    

    在远程的服务器上可以通过7001端口访问到本地的服务,

    相关文章

      网友评论

          本文标题:ssh正向代理与反向代理

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