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上面了。
下面图解下:
2、通过SecureCRT配置端口转发
首先打开SecureCRT正常ssh连接到你的公网服务器2.2.2.2上边,点击菜单栏的"Options->Session Options->Port Forwarding->Add...",如图:
此时,再新建一个ssh连接:
这样就成功连接至你公司的内网机器3.3.3.3上了。
3、思考题
如果你公司内网有一台机器是3.3.3.4,是你的Windows主机,而且开放了3389远程连接端口,你再怎么在这个新的连接上做端口转发,从而成功远程连接到你公司的Windows机器呢?
如果对文中有什么不懂的,就给我留言吧!
- 微信扫码赞助
- 支付宝赞助