我想实现一个中间有两个(A 和 B)服务器的代理。流量从我的计算机流向服务器 B,然后流向服务器 A,然后获取数据。我发现在 ~/.ssh/config 中使用以下配置:
HOST B
HostName B
user debian
DynamicForward 0.0.0.0:1081
我可以使用 1081 端口作为代理。但现在我不知道如何通过 A 代理所有 B 的流量。
答案1
您希望将客户端上的端口转发到服务器上的固定端口A
:
ssh -L 1080:localhost:1081 A
这localhost
是服务器A
。在服务器的 1081 端口上,A
您必须有一个动态 (SOCKS5) 代理:
ssh -D 1081 B
综合起来:
ssh -t -L 1080:localhost:1081 A -- ssh -D 1081 B
如果在主机 A 和主机 B 之间使用基于密码的身份验证,或者
ssh -f -L 1080:localhost:1081 A -- ssh -D 1081 B
如果您使用公钥认证并希望ssh
在后台工作。