“代理”连接

“代理”连接

我正在开发一个应用程序 A,它连接到某个端口(>1024)上的远程服务器 S。出于安全原因,服务器 S 仅允许来自具有白名单 IP 地址的特定计算机 I 的连接。这在运行应用程序时没有问题,但在开发过程中却很麻烦。有没有一种更简单的方法,无需设置完整的 VPN 解决方案,让我可以在我的机器 L 上本地运行一个程序,只需通过 I 建立并转发整个到 S 的连接?

简而言之,我想要实现的是,当我在本地运行该程序时,它通过 I 连接到 S,从而允许它通过白名单 IP 地址进行通信。

虽然听起来像是 MITM,但其实不是。A(和主机 L)不需要不可知,而且我可以完全访问除目标机器 S 之外的所有机器,因此更改主机文件、网络接口和设置 ssh 隧道等内容都没有问题。

所有服务器都是 Linux(Ubuntu LTS),我的本地机器是运行 OSX 的 Mac。

答案1

我们谈论的端口数是多少?如果不是很多而且它们不会改变,那么:1. 在您的机器 (L) 上配置您的应用程序 (A),以使用服务器 I 而不是 S 的 IP/主机名。2. 在服务器 I 上设置 HaProxy,以代理从 L 到 S 的所有请求。

    global
    daemon
    maxconn 256

defaults
    mode tcp
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms

frontend serverI
    bind *:Y
    default_backend serverS

backend serverS
    server s X.X.X.X:Y 

否则,您可能能够在主机 L 和服务器 I 之间使用 SSH 隧道进行设置。然后使用 iptables DNAT/SNAT 在服务器 S 和 I 上的 tun 接口之间路由流量,同时将您的应用程序指向笔记本电脑上的 tun。

https://help.ubuntu.com/community/SSH_VPN

相关内容