具有反向连接的远程HTTP代理

时间:2017-05-01 10:04:00

标签: architecture reverse-proxy remote-server http-proxy

以下是这种情况。在远程LAN网络中有PC-1,我想从我的家用PC代理我的 HTTP流量(具有公共静态IP)。 PC(PC-1)无法收听来自互联网的请求(它位于防火墙后面)。它(PC-1)只能在端口上启动并连接到我的家用电脑。我如何使用(修改)该连接作为代理连接?

1 个答案:

答案 0 :(得分:1)

第一种方法:

在PC-1上启动某种代理程序,我通常会使用mitmproxy(mitmdump更精确)

Option Explicit
Const olFolderInbox = 6
Sub HowManyEmails()
    Dim olApp As Object
    Dim olNs As Object
    Dim Inbox As Object
    Dim SubFolder As Object
    Dim Recip As Object

    Set olApp = CreateObject("Outlook.Application")
    Set olNs = olApp.GetNamespace("MAPI")
    Set Recip = olNs.CreateRecipient("0m3r@email.com") ' Share address
        Recip.Resolve
    Set Inbox = olNs.GetSharedDefaultFolder(Recip, olFolderInbox) ' Inbox

    [B2].Value = Inbox.Items.Count

    Set SubFolder = Inbox.Folders("COMPLETED") ' subfolder

    [B3].Value = SubFolder.Items.Count

    Set olApp = Nothing
    Set olNs = Nothing
    Set Inbox = Nothing
    Set SubFolder = Nothing
    Set Recip = Nothing
End Sub

执行到家用电脑的ssh反向隧道

# on pc1
mitmdump -p 45849

配置http(s)_proxy env vars或浏览器将隧道指向socks proxy http://127.0.0.1:45849

# on pc1
ssh -R 45849:127.0.0.1:45849 <user>@<home_pc>

第二种方法:

反向到家用电脑的隧道,暴露PC1的ssh服务

# on home pc
export http_proxy=http://127.0.0.1:45849
export https_proxy=http://127.0.0.1:45849

使用反向隧道创建“DynamicForward”隧道

# on pc1
ssh -R 45848:127.0.0.1:22 <user>@<home_pc>

配置http(s)_proxy env vars或浏览器将隧道指向socks proxy http://127.0.0.1:45849

# on home pc
ssh -p 45848 -D 45849 <user>@127.0.0.1

当我必须安装或更新软件时,我经常使用第一种方法为安全环境中的远程服务器“提供互联网”,在多层防火墙后面。