从家用调制解调器创建代理服务器

从家用调制解调器创建代理服务器

我住在印度新德里。我在 Hetzner 云(芬兰,赫尔辛基)有虚拟机。每个虚拟机都有一个来自芬兰赫尔辛基的静态 IP 地址。我在虚拟机上运行一些应用程序。如何设置我家里互联网连接的 IP 地址,作为我的虚拟机的代理 IP?这样:

  1. 芬兰的真实 IP 被隐藏
  2. VM 发出的所有请求都通过我家里的互联网连接的 IP 地址进行
  3. 所有请求都转发到虚拟机

答案1

这可以通过运行 TCP/UDP 代理(如 Nginx、Traefik、HAproxy...)来实现。使用此方法,虚拟机将无法从 IP 数据包中读取真实访问者/用户的 IP 地址,因为这些地址将来自HOME_IPVM_IP

在更具体的 HTTP 情况下,人们可能希望运行 HTTP 代理,尤其是当人们打算在 HTTP 级别执行某些操作(例如缓存或过滤)时。它涉及使用代理终止 TLS 隧道以读取/修改 HTTP 通信。但仍然可以有两个 TLS 隧道,VM <-> homehome <-> remote user。HTTP 代理可以将访问者 IP 地址写入 HTTP 标头(例如 X-Forwarded-For 或 X-Real-IP),从而允许后端(虚拟机)找回此信息。

另一种方法是将虚拟机与家庭路由器连接到同一专用网络中,就像 VPN 一样。如果虚拟机使用 VPN 路由器作为网关,则路由器将成为虚拟机的“远程 NAT”,并可以为这些虚拟机进行端口转发。这样,您就可以将数据包从家庭路由器的 IP 转发到虚拟机,就像使用 LAN 中的设备一样。在这种情况下,真实的用户/访问者 IP 将在虚拟机收到的数据包中可用,因为只更新了目的地,而不是源(对于用户 -> 家庭路由器 -> 虚拟机)。相反,家庭路由器将对虚拟机 -> 家庭路由器 -> 用户流量进行伪装。

相关内容