隧道原理
隧道是一种把一种网络协议封装进另外一种网络协议进行传输的技术。这里我们研究ssh隧道,所以所有的网络通讯都是加密的。又被称作端口转发,因为ssh隧道通常会绑定一个本地端口,所有发向这个端口端口的数据包,都会被加密并透明地传输到远端系统。
隧道的类型
ssh隧道有3种类型:
- 动态端口转发(Socks 代理)
- 本地端口转发
- 远端端口转发
ssh端口转发常用选项
-N #告诉SSH客户端,这个连接不需要执行任何命令。仅仅做端口转发
-f #告诉SSH客户端在后台运行
-L #本地转发
-R #远程转发
-D #动态转发
-C #数据压缩
动态端口转发
主机名 | IP地址 |
---|---|
A | 111.111.111.111 |
B | 111.111.111.112 |
C | 192.168.0.4,91.85.113.211 |
D | 102.168.0.1/24 |
假设A只能访问B,B只能访问C,C能访问所有,那么我们要从A访问C和D就只需要在B和C之间做一个动态转发,就可以把B作为代理来用,这样只要能访问B的机器都可以用B来设置代理。如果只想B本机本地使用代理,则本地地址绑定只需要设置为127.0.0.1
在B机