ssh反向代理互联网与局域网互通

2015/12/2322:06:05 发表评论

1、ssh反向代理配置

ssh -o options   -f -N ...

-R [服务器IP或省略]:[服务器端口]:[客户端侧能访问的IP]:[客户端侧能访问的IP的端口] [登陆服务器的用户名@服务器IP] 

-p [服务器ssh服务端口(默认22)]

其中,服务器IP如果省略,则默认为127.0.0.1,只有服务器自身可以访问。指定服务器外网IP的话,任何人都可以通过[服务器IP:端口]来访问服务。当然,这个时候服务器本机也要输入外网IP:端口来访问。举例说明:

假设你家里的PC机IP是192.168.1.2,你可以ssh到外网某台服务器2.2.2.2,你公司内网里有一台服务器3.3.3.3。如果你想在家里访问公司服务器上的ssh服务,那么你可以首先在你的公司服务器上做好SSH TUNNEL反向代理,执行以下命令:

ssh -o  ServerAliveInterval=60 -f -N -R 2.2.2.2:2222:127.0.0.1:22 test@2.2.2.2 -p 22

上面这个命令的意思是:把你公司服务器3.3.3.3的22号端口映射到公网机器上2.2.2.2的2222端口,

解释下命令含义:

ServerAliveInterval:客户端这边定义的从中保活发送间隔(是不是有时候用SSH连接的时候,一段时间不活动就会断开呢,哈哈,自己去查怎么回事吧,其实已经告诉你了。)

-f:后台运行

-N:不执行远端命令

-R:反向代理

此时你用ssh工具连接到2.2.2.2上后,再输入命令:

netstat -an | grep 22222
tcp        0      0 127.0.0.1:22222             0.0.0.0:*                   LISTEN 
#可以看到22222端口绑定在127.0.0.1上面
ssh -p 2222 root@127.0.0.1

在服务器上就可以连接到你的公司服务器3.3.3.3上面了。

下面图解下:

QQ图片20151223215202

2、通过SecureCRT配置端口转发

首先打开SecureCRT正常ssh连接到你的公网服务器2.2.2.2上边,点击菜单栏的"Options->Session Options->Port Forwarding->Add...",如图:

1

localhost

此时,再新建一个ssh连接:

2

这样就成功连接至你公司的内网机器3.3.3.3上了。

3、思考题

如果你公司内网有一台机器是3.3.3.4,是你的Windows主机,而且开放了3389远程连接端口,你再怎么在这个新的连接上做端口转发,从而成功远程连接到你公司的Windows机器呢?

如果对文中有什么不懂的,就给我留言吧!

  • 微信扫码赞助
  • weinxin
  • 支付宝赞助
  • weinxin

发表评论

您必须才能发表评论!