具有反向连接的远程 HTTP 代理
Remote HTTP proxy with reverse connection
情况是这样的。在远程 LAN 网络中有 PC-1,我想从我的家庭 PC(有 public 静态 IP)代理我的 HTTP 流量。 PC(PC-1) 无法监听来自互联网的请求(它在 防火墙 后面)。它(PC-1)只能在一个端口上启动并连接到我的家用电脑。我如何使用(修改)该连接作为代理连接?
第一种方法:
在 PC-1 上启动某种代理程序,我通常使用 mitmproxy(更准确地说是 mitmdump)
# on pc1
mitmdump -p 45849
对家庭电脑执行 ssh 反向隧道
# on pc1
ssh -R 45849:127.0.0.1:45849 <user>@<home_pc>
配置 http(s)_proxy 环境变量或浏览器将隧道指向 socks 代理 http://127.0.0.1:45849
# on home pc
export http_proxy=http://127.0.0.1:45849
export https_proxy=http://127.0.0.1:45849
第二种方法:
到家用电脑的反向隧道暴露 PC1 的 ssh 服务
# on pc1
ssh -R 45848:127.0.0.1:22 <user>@<home_pc>
使用反向隧道创建一个'DynamicForward'隧道
# on home pc
ssh -p 45848 -D 45849 <user>@127.0.0.1
配置 http(s)_proxy 环境变量或浏览器将隧道指向 socks 代理 http://127.0.0.1:45849
# on home pc
export http_proxy=http://127.0.0.1:45849
export https_proxy=http://127.0.0.1:45849
我经常使用第一种方法,以便在我必须安装或更新软件时 "give internet" 在多层防火墙后面的安全环境中访问远程服务器。
情况是这样的。在远程 LAN 网络中有 PC-1,我想从我的家庭 PC(有 public 静态 IP)代理我的 HTTP 流量。 PC(PC-1) 无法监听来自互联网的请求(它在 防火墙 后面)。它(PC-1)只能在一个端口上启动并连接到我的家用电脑。我如何使用(修改)该连接作为代理连接?
第一种方法:
在 PC-1 上启动某种代理程序,我通常使用 mitmproxy(更准确地说是 mitmdump)
# on pc1
mitmdump -p 45849
对家庭电脑执行 ssh 反向隧道
# on pc1
ssh -R 45849:127.0.0.1:45849 <user>@<home_pc>
配置 http(s)_proxy 环境变量或浏览器将隧道指向 socks 代理 http://127.0.0.1:45849
# on home pc
export http_proxy=http://127.0.0.1:45849
export https_proxy=http://127.0.0.1:45849
第二种方法:
到家用电脑的反向隧道暴露 PC1 的 ssh 服务
# on pc1
ssh -R 45848:127.0.0.1:22 <user>@<home_pc>
使用反向隧道创建一个'DynamicForward'隧道
# on home pc
ssh -p 45848 -D 45849 <user>@127.0.0.1
配置 http(s)_proxy 环境变量或浏览器将隧道指向 socks 代理 http://127.0.0.1:45849
# on home pc
export http_proxy=http://127.0.0.1:45849
export https_proxy=http://127.0.0.1:45849
我经常使用第一种方法,以便在我必须安装或更新软件时 "give internet" 在多层防火墙后面的安全环境中访问远程服务器。