在ssh服务器上创建代理, 使所有流量经过ssh客户端

使用场景:
一个的装有ssh服务端的服务器需要连接外网安装依赖, 但是
1. 服务器没有外网
2. 服务器所在局域网内的电脑没有外网或不方便设置成代理服务器
3. ssh客户端和服务器只有一个ssh端口可以连接
4. ssh客户端可以访问外网

以ssh服务器远程方式是ssh -p 11170 [email protected]为例, 要求本地和服务器都装有ssh服务端。

第一步: 在本地客户端执行, 将服务端2200端口映射到本地22端口

ssh -R 2200:localhost:22 -p 11170 [email protected] -N

第二步: 在服务端执行, 设置socks5代理, 监听端口是10800

ssh -D 10800 -p 2200 [email protected]  -N

这时服务端就可以使用代理网络:

curl --socks5 127.0.0.1:10800 http://www.google.com/

via