我需要将互联网流量从本地计算机转发到远程计算机,并在途中通过中间 SSH 服务器路由流量。远程计算机设有防火墙,并运行 SOCKS5 代理,该代理接受来自端口 9999 等的传入连接。本地计算机也设有防火墙,并使用 socks5 代理通过 ssh 隧道连接到远程 SSH 服务器。
我能够使用配置为使用远程代理的中介服务器上的浏览器来完成此操作,但我希望能够执行相同的操作,除了使用本地计算机上的浏览器。
我可以将浏览器指向本地 socks5 代理以将流量转发到 SSH 服务器,使用“SSH -D [PORT] -C [SSH ADDRESS] -l [username]”创建代理并连接到 SSH 服务器。但我还没弄清楚如何将流量从 SSH 服务器隧道传输到远程代理。我对 SSH 的语法以及 -R -L ProxyCommand 和 Connect 命令感到困惑。
我本质上需要这个:
|(L)浏览器|->|(L)SOCKS5|-->|SSH 服务器|-->|(R)SOCKS5|->|(R)机器|-> 互联网
答案1
一个好主意是使用iptables作为端口转发器。
如果我没记错的话,IPTables 可以接收端口上的流量,并通过同一系统上的 SOCKS 代理转发。您可以使用它从本地计算机创建 SSH 隧道,通过 SSH 服务器到达另一端的计算机。