SSH反向代理实现外网访问内网服务器

原创 2015年11月18日 22:45:07

机器状况

机器号 IP 用户名 备注
A 192.168.1.130 usr_a 目标服务器,在局域网中,可以访问 A
B B.B.B.B usr_b 代理服务器,在外网中,无法访问 A
C - - 可以直接访问 B,无法直接访问 A

目标

从 C 机器使用 SSH 访问 A

解决方案

在 A 机器上做到 B 机器的反向代理;在 B 机器上做正向代理本地端口转发

环境需求

  • 每台机器上都需要 SSH 客户端
  • A、B 两台机器上需要 SSH 服务器端。通常是 openssh-server。

    在 Ubuntu 上安装过程为

    sudo apt-get install openssl-server
    

实施步骤

  1. 建立 A 机器到 B 机器的反向代理【A 机器上操作】

    ssh -fCNR <port_b1>:localhost:22 usr_b@B.B.B.B
    

    <port_b1> 为 B 机器上端口,用来与 A 机器上的22端口绑定。

  2. 建立 B 机器上的正向代理,用作本地转发。做这一步是因为绑定后的 端口只支持本地访问【B 机器上操作】

    ssh -fCNL "*:<port_b2>:localhost:<port_b1>' localhost
    

    <port_b2> 为本地转发端口,用以和外网通信,并将数据转发到 <port_b1>,实现可以从其他机器访问。

    其中的*表示接受来自任意机器的访问。

  3. 现在在 C 机器上可以通过 B 机器 ssh 到 A 机器

    ssh -p <portb2> usra@B.B.B.B
    

至此方案完成。


SSH 参数解释

-f 后台运行
-C 允许压缩数据
-N 不执行任何命令
-R 将端口绑定到远程服务器,反向代理
-L 将端口绑定到本地客户端,正向代理
SSH 自动输入密码登录服务器
安装 sshpass 
sudo apt-get install sshpass
安装完成后使用sshpass允许你用 -p 参数指定明文密码,然后直接登录远程服务器。例如:

sshpass -p '你的密码' ssh 用户名@服务器ip地址

用 '-p' 指定了密码后,还需要在后面跟上标准的 ssh 连接命令

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

利用ssh反向代理以及autossh实现从外网连接内网服务器

前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛。但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上...

怎样从外网访问内网服务器

★★★★★FBI WARNING★★★★★ 以下操作相当于给内网的防火墙上开了个洞,会给整个内网带来极其严重的安全隐患! 为避免产生法律问题,请在操作前务必向网络管理员咨询您的操作权限! ...

外网访问内网服务器配置方法

前提需要有固定IP路由器必须得是通过固定IP上网,才能通过外网访问内网服务器登录路由器在地址栏输入192.168.1.1或192.168.0.1。初始密码为admin,若忘记密码请重置路由器。这里以T...

使用花生壳和TP-LINK路由器搭建外网访问内网服务器的平台

首先说明,本文所述的这种方法,只适用于你的服务器(PC机)具有公网IP的情况,也就是说,你的服务器每次上网时分配到的公网IP可以是动态变化的,但必须要分配到一个公网IP。 1、看服务器是否具有公网I...

笔计本变服务器 / 如何设置路由器外网访问内网服务器

如何通过路由器设置,让外网可以访问到内网中的某一台电脑,也可以是电脑上架设的本地网站。下面是学习啦小编给大家整理的一些有关设置路由器外网访问内网服务器的方法,希望对大家有帮助!   设置路由器外网访...

使用反向代理(Nginx)和隧道转发(SSH)实现内网端口映射

使用反向代理(Nginx)和隧道转发(SSH)实现内网端口映射

CentOS7下搭建nginx反向代理服务器使得外网可以二级域名访问内网应用

创建nginx的本地yum源[root@localhost ~]# yum list |grep nginx No package nginx available. [root@localhost ~...

MySQL workbench外网通过PuTTY设置SSH的tunnels远程访问内网服务器中的MySQL

问题描述: 为了数据安全,一些服务器增加了安全协议(如SSH),外网不能直接访问服务器。 服务器支持SSH远程登录功能时,通过mysql的图形界面工具(MySQL workbench)访问服务器里的m...

利用SSH隧道技术实现跳板机SHELL登陆以及SFTP到内网服务器

跳板原理 SSH隧道技术,分别有三种方法实现:本地端口转发、远程端口转发、静态SOCKS代理 XMANAGER——静态SOCKS代理 出于安全考虑,公司的一组应用服务器仅允许特定...
  • tolcf
  • tolcf
  • 2016-09-05 18:36
  • 2223
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)