SSH代理

  • SSH有三种代理参数-L,-D,-R
  • 参考 ssh命令

-L参数在本地监听一个端口,转发数据到远程主机上

实例:

$ ssh -NL 3306:localhost:3306 user@remote_ip

说明:

在本地监听一个3306端口,转发到远程主机上的localhost:3306上,等于访问本地的3306端口就相当于访问到了远程的mysql服务
这种方式访问远程服务会更安全,远程服务不需要对外网暴露端口

原理:

这个代理只适用于代理单一ip单一服务的需求有用,本质上是反向代理,客户端不需要额外配置。

-D参数在本地开放一个socks5协议的代理端口

在本地开放一个1080的socks5端口,支持socks5协议代理的应用程序就可以利用这个端口直接访问到内网资源:

$ ssh -ND 1080 user@remote_ip

curl使用实例:

curl --socks5 127.0.0.1:1080 localhost

原理:

这个代理本质上是正向代理,可以实现一个代理访问更多服务资源的需求。但是需要客户端本身支持代理。