1、正向连接 - 端口转发
例如:当前机器A,SSH服务端B,目标服务器C,他们三者之间的关系是A可以SSH访问到B,B可以直接访问C,要达到的效果就A通过SSH端口转发直接访问服务器C.
例如:A为自己在家里的电脑,B为公司提供外网可以SSH访问的服务器B,C为内网服务器.B可以访问内网中的服务器C. 通过以下命令可以实现端口映射,通过SSH服务器将本地端口映射到服务器C对应的端口上,从而实现在本地A直接访问C的目的.
在Client机器A执行如下命令:
ssh -L [本地IP可省略:][本地端口]:[服务器C地址]:[服务器C端口] [SSH服务器IP] -p [非默认端口22]
如果使用的是默认SSH端口22 ,则"-p 端口"不用输入.
ssh -L 8001:10.0.0.1:8001 username@115.13.13.1 -p 2200
2、反向连接 - 端口转发
就是将Client的端口镜像到SSH服务器上,所有可以访问SSH服务器的访问SSH镜像的端口时即是访问Client的端口.
ssh -R [SSH服务器IP:][SSH服务器上端口]:[客户端侧IP或能访问到的IP]:[客户端侧IP端口或能反问的IP的端口] 用户名@SSH服务器IP -p SSH服务器端口
如果SSH服务器使用的为默认22端口,则后面的"-p SSH服务器端口"不用输入
ssh -R 115.13.13.1 8080:127.0.0.1:8001 username@115.13.13.1 -p 2200
3、socket代理 ssh服务器可以访问外网,能访问google,facebook等站点,client可以访问ssh服务器但是不能访问google,facebook.如果希望client通过ssh服务器代理访问google,facebook通过以下命令可以实现.
ssh -D 8081 username@SSH服务器IP -p SSH服务器端口