SSH反向代理

问题描述

很多人肯定碰到这样一个问题:自己办公室的电脑回家之后就没法通过家里的电脑远程连接过来了。除非通过拨通VPN或者其他方式先连接到公司内网。如果公司没有VPN,那么我们如何通过SSH连接到公司的电脑呢?这里我们可以使用SSH反向代理

实验环境

机器编号 IP 用户名 备注
  • A
172.16.206.131 aaa 目标服务器,在局域网中,可以访问 A
  • B
10.10.10.206 bbb 代理服务器,在外网中,无法访问 A
  • C
10.10.10.202 可以直接访问 B,无法直接访问 A

目标

从 C 机器使用 SSH 访问 A

解决方案

在 A 机器上做到 B 机器的反向代理;在 B 机器上设置GatewayPorts yes

环境需求

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

CentOS系统默认都安装了openssh-server。

实施步骤

1、在A上面建立到B的反向代理

ssh -fCNR 88:localhost:22 [email protected]
参数解释:
-f 后台运行
-C 允许压缩数据
-N 不执行任何命令
-R 将端口绑定到远程服务器,反向代理
-L 将端口绑定到本地客户端,正向代理

命令解释:将主机A本地的22端口映射到代理服务器上的88端口上。

登录代理服务器B,查看是否启动了88端口

[[email protected] .ssh]# netstat -tunlp | grep ‘88‘     
tcp        0      0 0.0.0.0:88                  0.0.0.0:*                   LISTEN      1234/sshd             
tcp        0      0 :::88                       :::*                        LISTEN      1234/sshd

2、修改代理服务器B的配置文件/etc/ssh/sshd_config,设置GatewayPorts yes

3、测试从C服务器用SSH连接到A

[email protected]:~/.ssh# ssh -p 88 [email protected]  
[email protected]‘s password: 
Last login: Fri Jun 24 14:43:01 2016 from localhost

注意:连接到A时,一定要用A主机上的账号,ip为代理服务器IP地址

SSH免密码登录

1、主机A在代理服务器B创建反向代理时,需要输入B的账户密码。为了免密码登录,可以将主机A的aaa用户公钥文件传到主机B的bbb账户authorized_keys文件中。

2、主机C通过SSH连接主机A时,也需要输入主机上的aaa用户的密码,为了免密码登录,可以将主机C上的用户的公钥传到主机A的aaa用户下的authorized_keys文件中。

Autosssh的用法

AutoSSH 的使用方法和 SSH 类似,只是它提供了断线自动连接功能,这样就不必每次重新输入命令了。而且还可以解决超时断开连接的问题。

经过测试,代理服务器B重启后,主机A上建立的反向代理连接会在主机B重启后,自动创建。

安装autossh

yum -y install autossh

用autossh创建反向代理的命令

$ autossh -M 5678 -fNR 88:localhost:22 [email protected]

比之前的命令添加的一个‘-M 5678‘参数,负责通过‘5678‘端口监视连接状态,连接有问题时就会自动重连

总结
由于SSH隧道也使用了SSH加密协议,因此是不会被防火墙上的内容过滤器监控到的。也就是说一切在隧道中传输的数据都是被加密的。当然,离开隧道后的数据还是会保持自己原有的样子,没有加密的数据还是会被后续的路由设备监控到。

参考文档:

http://www.freeoa.net/osuport/netmanage/linux-ssh-tunneling-proxy_1892.html

http://tilt.lib.tsinghua.edu.cn/node/755

时间: 2024-08-28 07:53:06

SSH反向代理的相关文章

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

1. 描述一下目前的机器状况,梳理梳理: 机器 IP 用户名 备注 A 10.21.32.106 gdut728 目标服务器,处于内网 B 123.123.123.123 root 外网服务器,相当于桥梁的作用 PS:123.123.123.123只是我随意起的,大家请别攻击别人的服务器啊啊啊 2. 解决方法: 通俗地说:就是在机器A上做到B机器的反向代理:然后在B机器上做正向的代理实现本地端口的转发 2.1 实现前的准备 每台都要安装ssh的客户端. 在这里我使用的是centos7,都自带ss

ssh反向代理配置

客户端:反向代理连接到服务器的80端口,在服务端监听2222端口连接到本地22端口 ssh -NfR 2222:0.0.0.0:22 [email protected] -p80 或者 autossh -M 8888 -CNfR 2222:0.0.0.0:22 [email protected] -p80 服务端: ssh -fCNL *:2223:localhost:2222 localhost   //端口转发

ssh反向代理设置

一.功能描述:通过ssh反向代理服务器使得没有公网ip的Linux服务器可以被外网访问.1.实验主机ip:(1)终端1(192.168.1.101):在局域网内,可以访问外网,无公网ip(2)终端2(192.168.1.102):在局域网内,可以访问外网,无公网ip(3)反向代理服务器(58.23.223.90):具有公网ip,可以从互联网访问2.实验步骤:(1)通过ssh登陆终端1并且执行如下命令: ssh -fCNR 12000:localhost:22 -p 22 -i ./test.ke

内网接口调用,ssh反向隧道与nginx反向代理

外网访问测试机. Windows机器使用SSH反向隧道.服务端使用反向代理 win下安装openssh-win并设置环境变量 打开cmd C:\Users\Administrator>ssh -p 22 -R 1999:localhost:8080 -b 0.0.0.0 [email protected] -R 1999远程机器的端口 -b 外网段监听,不加是 127.0.0.1监听 8080 本机端口 这样外网访问 8.8.8.8的1999端口就映射到了localhost的8080 服务器ng

SSH 正向/反向代理小记

上周因为玩耍Minecraft的原因,折腾了下ssh的正向.反向代理,不得不说,科技改变命运..了解了基础的用法之后,很多跨域的事情都可以通过代理解决,而且只需要ssh帐号权限即可. 那么就简单来介绍下吧,常见的SSH代理介绍文章都会上来先描述场景,例如ABC三个域,怎么样访问之类,看完头就晕了,我换个说法: 1.  minecraft ssh代理 ssh -fCNR 9977:localhost:25565 [email protected] -p 6666 -o TCPKeepAlive=y

使用 ssh -R 穿透局域网访问内部服务器主机,反向代理 无人值守化

使用 ssh -R 穿透局域网访问内部服务器主机,反向代理 无人值守化 http://www.cnblogs.com/phpdragon/p/5314650.html 一.搭建SSH方向代理 准备: 局域网主机(虚拟主机): 192.168.6.233   CentOS 6.7 阿里云服务器:120.25.68.60   CentOS 6.7 1. 阿里云服务器120.25.68.60上需要修改sshd_config配置文件: [[email protected] ~]# vi /etc/ssh

SSH做反向代理

说实话,我对反向代理这个概念并不熟悉,只是感觉以下要做的事是一个代理的逆向过程,故借此名词一用. 问题场景是这样的:我有两套Linux集群的访问权限,分别为A和B,它们互相独立.其中A.B集群均能访问外网,但只有A集群有公网IP,所以从外网直接登录B就不行.要解决的问题就是从外网能登录到B集群. 我对代理的理解是:一台不能访问外网的机器,通过局域网内一台可以访问外网的机器代理服务,就能实现访问外网的目的. 而我以为的反向代理就是以上的逆向过程,这个肯定是可以做到的,比如:我们在外网要对某台局域网

[转]使用 ssh -R 穿透局域网访问内部服务器主机,反向代理 无人值守化

原文: https://www.cnblogs.com/phpdragon/p/5314650.html 使用 ssh -R 穿透局域网访问内部服务器主机,反向代理 无人值守化 一.搭建SSH方向代理 准备: 局域网主机(虚拟主机): 192.168.6.233   CentOS 6.7 阿里云服务器:120.25.68.60   CentOS 6.7 1. 阿里云服务器120.25.68.60上需要修改sshd_config配置文件: [[email protected] ~]# vi /et

Nginx实现反向代理负载均衡与静态缓存

介绍: Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.在连接高并发的情况下,Nginx是Apache服务器不错的替代品,能够支持高达50000个并发连接数的响应. 实验环境: Hostname IP 系统 规划 n2.preferred 192.168.1.2 Centos 6.5 Web server n3.preferred 192.168.1.3 Centos 6.5 Web server n6.preferred 192.168.1.6