SSH隧道相关

1.实战 SSH 端口转发

2.SSH隧道技术简介

3.Secure Network (ssh端口映射)-----图详细可以使用

 

笔记:

在SSH隧道中<remote host>和<remote port>是应用服务器的地址和端口,不论是本地转发还是远程转发

1.本地转发

SSH -L <port>:<remote host>:<remote port> <SSH Server>

在《实战SSH端口转发》中,本地转发的例子,因为ldapserver中的389端口,只能被允许在ldapserver中的应用客户端所访问,即389端口的服务是绑定在127.0.0.1上的,

所以在这个例子中的<remote host>为localhost或者127.0.0.1这个表示隧道要转向的目的应用服务器的地址。

 

2.远程转发(逆向隧道)

SSH -R <port>:<remote host>:<remote port> <SSH Server>

参数的设置规则还是和本地转发一样理解

在这种模式下,如果需要其他机子访问<port> 需要确保SSH Server 的GatewayPorts为yes,或者命令行加-g

默认是yes,如果默认不是yes,可以在/etc/sshd_config中修改GatewayPorts no为GatewayPorts yes来打开它。

 

3.多主机转发

  1)目的应用服务器所在的主机和SSH Server服务器不是同一台服务器,这个时候<remote host>就是那台应用服务器所在的主机。这个时候<remote host>和<SSH Server>就是不同的。

  2)App Client和SSH Client不在同一台主机的情况下,在SSH Client所在的主机上执行的SSH需要带上-b 0.0.0.0 使得<port>端口监听服务不是绑定在127.0.0.1上。

或者不用-b也可以指定绑定的地址哈,-L或者-R参数的第一个冒号之前可以跟绑定地址,比如-L 0.0.0.0:2222:234.234.234.234:22

 

4.动态端口转发,相当于socks代理

SSH -D <SSH Server>

 在实际实用的时候,通常会加上-NT,即SSH -NT -D <user>@<SSH Server> 或者有公私钥对 然后传给SSH Server服务器,这样就不需要用户名密码输入验证。

参看SSH原理与运用(二):远程操作与端口转发

一些实用细节参看SSH隧道技术简介后面部分。

你可能感兴趣的:(SSH隧道相关)