tkcharlotte's blog

记录数据转发的各类姿势手法。

SSH 端口转发

动态端口转发(SOCKS代理)

让不加密的连接走SSH连接,提高数据安全性。

SSH -D port user@host

SSH会建立一个socket连接,监听转发的端口。经过该端口的数据会被转发到远程主机。

场景

A B C三台主机,A在网段A,B在网段B,不能互相ping通,但是C有两张网卡可以沟通A和B,我们可以在C上使用动态端口转发,然后A挂上C的socks代理就能访问B。

本地端口转发

ssh -L local_port ssh_ip ssh_port server

场景

host1host2不能直接访问,但是可以通过host2中继一下。

ssh -L 2121:host2:21 host3

host1绑定本地2121端口,当有到2121端口连接时转发到host3,由host3连接到host2的21端口。此时host1作为一个服务端。

host1本地执行ssh -p 2121 localhost 连接到本地2121端口,实际连接的是host2的22端口。

远程端口转发(内网穿透)

ssh -R port:<host2>:host2_port host3

让远程主机host3监听端口port,本地主机与host建立连接。将内网host2端口转发到外网host3port端口。

场景

外网不能访问内网,内网之间可以访问。

host1上,ssh -R 2222:host2:22 host3,意思就是让host3监听2222端口,然后把数据经过host1转发给host2

host3上,ssh -p 2222 localhost 实际连接的是host2

如果host1host2是同一台主机,就更好理解了,典型的内网穿透的场景,内网能访问外网,但是外网不能访问内网。

参考链接

 评论


载入天数...载入时分秒... | 字数统计:14.4k