什么是SSH端口转发?
SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。但是,SSH 还能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程也被叫做“隧道”(tunneling),这是因为 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名。
例如,Telnet,SMTP,LDAP 这些 TCP 应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输。而与此同时,如果工作环境中的防火墙限制了一些网络端口的使用,但是允许SSH 的连接,也能够通过将 TCP 端口转发来使用 SSH 进行通讯
SSH 端口转发能够提供两大功能:
加密 SSH Client 端至 SSH Server 端之间的通讯数据
突破防火墙的限制完成一些之前无法建立的 TCP 连接
本地转发(A同过b访问C)在A上执行:
ssh -L localporthostport sshserver
ssh –L 9527:telnetsrv(C 机器):23 -N sshsrv(B 机器) ---------N表示不开远程shell只在本机!
telnet 127.0.0.1 9527
过程
当A 访问本机的9527的端口时,被加密后转发到sshsrv的ssh服务,
再解密被转发到telnetsrv:23
data(A
的数据) 《---》 localhost:9527 (本机的端口)《---》 localhost:XXXXX(本机随机端口)
《---》sshsrv:22 (B)《---》 sshsrv:YYYYY (开个客户端端口)《---》 telnetsrv:23(c主机)
选项:
- -f 后台启用
- -N 不开远程shell
- -g 启用网关功能
A----B-----C
1.配好环境在C主机
2.A上搭建通道
3.A上进行连接
远程转发 :在b上执行:
-R sshserverporthostport sshserver
ssh –R 952723 –N sshsrv
过程:
让sshsrv侦听9527端口的访问,如有访问,就加密后通过ssh
服务转发请求到本机ssh客户端,再由本机解密后转发到
telnetsrv:23
Data 《---》sshsrv:9527《---》 sshsrv:22 《---》localhost:XXXXX 《---》 localhost:YYYYY《---》 telnetsrv:23
动态端口转发:
当用firefox访问internet时,本机的1080端口做为代理服务器,firefox的访问请求被转发到sshserver上,由sshserver
替之访问internet 在本机firefox设置代理socket proxy:127.0.0.1:1080
#ssh -D 1234 [email protected]
表示通过 1234 端口 转发到B主机
搭梯子 --这里是A(centos7)通过B(centos6)连接C(另一个centos7)
1.模拟环境
C 主机设置防火墙
B主机能访问
A主机不能访问
2.搭梯子
在A上搭梯子到B主机