SSH或secureshell是一种非常流行和安全的协议,用于以加密方式连接和发送命令到远程系统。SSH还有其他强大的特性,比如代理从客户机到远程服务器的流量。这个特性也称为SSH隧道。客户机通过常规方式连接到远程SSH服务器,但也在客户机系统上创建了一个端口。此本地端口处于列出的模式,在该模式下,到此端口的连接被重定向或隧道到远程SSH服务器。
SSH代理的优点
代理是一种非常流行和有用的技术,用于通过中间系统与目标系统建立连接。中间系统称为代理,因为目标系统从这个中间系统获取连接请求。
- 使远程连接更加安全。
- 从目标端隐藏客户端。
- 使用中间代理系统控制远程连接。
使用SOCKS5创建SSH代理
ssh命令提供 -D级 选项以创建代理。默认代理类型是Sock5。Socks5是一种HTTP代理。此外,还应指定在客户端系统上侦听的本地端口号。在下面的示例中,TCP端口号8080作为Socks5侦听本地连接。
ssh -D 8080 [email protected]
或者,可以使用其DNS名称或主机名指定远程服务器。在下面的示例中,远程主机名是linuxtect.com。
ssh -D 8080 [email protected]
侦听Socks代理的指定接口/IP地址
默认情况下,SSH代理侦听localhost或127.0.0.1。这使得代理可用于本地使用和本地应用程序。或者,可以指定一个特定的接口或IP地址作为Socks5代理列出。在端口号之前指定IP地址,并使用双冒号作为分隔符。在下面的示例中,Socks5代理端口8080侦听IP地址192.168.1.10。
ssh -D 192.168.1.10:8080 [email protected]
侦听Socks代理的所有接口/IP地址
如果我们想监听所有接口,而不想逐个指定它们,glob操作符*可以用作IP地址。
ssh -D "*:8080" [email protected]
不启动SSH Shell(不执行命令)
SSH用于创建shell以运行命令。即使创建了Socks5代理,默认情况下也会创建SSH shell。如果我们不需要,我们可以阻止SSH shell的创建,其中没有命令可以执行。这个 -不 选项用于不启动SSH shell。
ssh -N -D 8080 [email protected]
相关文章: Linux ulimit命令教程及示例