ssh隧道的作用主要是
1、保护tcp会话,保护会话中明文传输的内容。
2、绕过防火墙或者穿透到内网,访问对应的服务。
创建隧道时的常用选项有:
“-L”:表示使用本地端口转发创建ssh隧道
“-R”:表示使用远程端口转发创建ssh隧道
“-N”: 表示创建隧道以后不连接到提供ssh服务Server端,通常与”-f”选项连用
“-f”:表示在后台运行ssh隧道,通常与”-N”选项连用
“-g”:表示ssh隧道对应的转发端口将监听在主机的所有IP中,不使用”-g选项”时,转发端口默认只监听在主机的本地回环地址中,”-g”表示开启网关模式,远程端口转发中,无法开启网关功能。
创建本地转发模式的ssh隧道,命令如下
ssh -g -f -N -L forwardingPort:targetIP:targetPort user@sshServerIP
本机上的forwardingPort将会被监听,访问本机的forwardingPort,就相当于访问targetIP的targetPort,ssh隧道建立在本机与sshServer之间。
创建远程转发模式的ssh隧道,命令如下
ssh -f -N -R forwardingPort:targetIP:targetPort user@sshServerIP
sshServer上的forwardingPort将会被监听,访问sshdServer上的forwardingPort,就相当于访问targetIP的targetPort,ssh隧道建立在本机与sshServer之间。
关于配置:
需要在ssh服务端的配置文件中将AllowTcpForwarding的值设置为yes来支持ssh端口转发。
上述sshServerIP,即提供ssh服务的主机。
当隧道建立以后,经过一段时间后,ssh隧道链接可能会被断开,这有可能是因为ssh客户端和ssh服务端长时间没有通讯,于是ssh服务端主动断开了链接,可以调整ssh服务端的ClientAliveInterval配置和ClientAliveCountMax配置的来防止断连。