共计 1108 个字符,预计需要花费 3 分钟才能阅读完成。
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 机器呢?
如果对文中有什么不懂的,就给我留言吧!
