paint-brush
如何创建个人住宅代理来绕过地理限制经过@abhilashchowdhary
13,031 讀數
13,031 讀數

如何创建个人住宅代理来绕过地理限制

经过 Abhilash Chowdhary5m2023/01/28
Read on Terminal Reader

太長; 讀書

住宅代理有很多有用的应用程序,例如网络抓取、在线研究、绕过地理限制和匿名浏览。但是,它们可能很昂贵,有些访问超过 10 GB 的数据每月收费超过 100 美元。我通过使用 P2P VPN 在美国的家用桌面上创建自己的住宅代理找到了解决方案。
featured image - 如何创建个人住宅代理来绕过地理限制
Abhilash Chowdhary HackerNoon profile picture

问题

住宅代理有很多有用的应用程序,例如网络抓取、在线研究、绕过地理限制和匿名浏览。但是,它们可能很昂贵,有些访问超过 10 GB 的数据每月收费超过 100 美元。


去年,当我去印度和东南亚其他地区旅行时,我想要一种可靠的方式,让我可以不受地域限制地访问 Netflix 和 Amazon Prime 等各种订阅服务上的内容。我想这样做


  1. 每月不必为 VPN/住宅代理服务支付超过 100 美元。此外,Netflix 在使用 VPN 时偶尔会阻止我。
  2. 无需为我在美国的家庭互联网连接支付额外的静态 IP 费用。

解决方案

我通过在美国的家庭桌面上创建自己的住宅代理找到了一个解决方案。


通过设置点对点 (P2P) VPN 并将我的笔记本电脑和台式机连接到它,我能够将我在印度的笔记本电脑的流量路由到我在美国的台式机,然后将这些请求转发到 www/public在从我的家庭网络返回响应之前访问互联网。


所有这一切都无需经历在我的家庭路由器中设置连接转发配置的麻烦。


什么是 P2P VPN

点对点 (P2P) 是 VPN 的一种架构模型,用于为用户创建安全的共享环境。基于 P2P 的 VPN 与标准的中心辐射模型不同,它不通过中央服务器路由所有流量,从而避免了拥塞。这提高了安全性,并允许通过添加节点而不会使网络负担过重来更有效地扩展。此外,P2P VPN 中的连接使用最快的路径,减少了延迟。


有多种开源、免费增值和付费 P2P VPN 解决方案可用。 Tinc 是流行的开源 VPN 之一。


网络设置如何?

网络堆栈由以下组件组成:


  1. 家用台式机(美国)

  2. 我的笔记本电脑(美国以外)

  3. P2P vpn 守护进程通过同一帐户在两台机器上运行

  4. 在桌面上运行的 Http 代理服务器


下图描述了从美国境外的笔记本电脑检索公共网页的信息流。

从美国境外的笔记本电脑检索公共网页时的信息流。 1. 是初始请求,4. 是最终响应


我想要一个易于设置且需要近乎零配置的 P2P VPN。我最终使用了tailscale。以下步骤大部分适用于任何 VPN,但如果使用 tailscale,您可能会发现这最合适。

设置此网络所采取的步骤

  1. 在台式机和笔记本电脑上设置 vpn 客户端

    1. 在台式机和笔记本电脑上下载并安装 VPN 客户端。

    2. 如果使用零配置 VPN,请使用 vpn 注册您的帐户并使用同一帐户在两台计算机上登录


  2. 在桌面上设置转发 http 代理服务器

    您可以使用任何开源代理服务器。我使用 https://github.com/abhinavsingh/proxy.py 因为它很容易设置。我在 docker 容器中运行它。此代理的 docker 镜像在 docker hub 上可用。要在 docker 容器中运行它,您可以执行此命令

    docker run -it -p 8899:8899 --rm abhinavsingh/proxy.py:latest


    在上面的命令中,代理服务器侦听端口 8899。当我们在笔记本电脑的应用程序中指定代理服务器的 url 时,这将很有用


  3. 识别 VPN 网络中台式机的 IP 地址:安装并登录您的 VPN 帐户后,让我们找出台式机的 IP 地址,笔记本电脑将使用该 IP 地址转发其 http 请求。


    为此,您可以列出桌面上所有网络接口的 IP 地址。然后确定名称以您的 VPN 客户端名称开头的接口的 IP 地址,对于我的情况,它以“tailscale”开头。


    我在我的 linux 机器的终端上使用ip命令来识别 ip 地址

    $ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever …. 4: tailscale0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 qdisc fq_codel state UNKNOWN group default qlen 500 link/none inet 100.113.xxx.xx/32 scope global tailscale0 valid_lft forever preferred_lft forever …

    在这里,我能够在网络接口tailscale0中的本地 tailscale 网络中找到桌面的 IP 地址: 100.113.xxx.xx


  4. 在笔记本电脑上使用代理服务器地址访问公网:

    现在我们知道桌面的 ip 地址(我们称之为$ip_desktop )和桌面上 http 代理服务器的端口号(我们称之为$proxy_port ),我们可以通过代理地址http://$ip_desktop:$proxy_port转发来自笔记本电脑的所有网络流量http://$ip_desktop:$proxy_port


    例如,您可以通过台式机从笔记本电脑向 example.com 发送 curl 请求,例如

    curl --proxy "http://$ip_desktop:$proxy_port" "https://example.com"


使用代理服务器

以上说明演示了如何在旅途中使用家中的备用计算机创建免费的住宅代理服务器。现在您可以通过以下任何一种方式在您的个人笔记本电脑上使用此代理地址:


  1. 在您的 Web 框架/语言的 http 客户端库中的应用程序代码中(python 中的请求,javascript 中的获取等)
  2. 对于来自您笔记本电脑的所有 Web 请求。这样你就可以通过桌面的代理服务器转发任何类型的 http 请求。在 ubuntu 中,您可以按照以下步骤执行此操作https://help.ubuntu.com/stable/ubuntu-help/net-proxy.html.en
  3. 就在您的浏览器中。尽管 Chrome 和 Firefox 不提供为它们设置独占 http 代理设置的本机方法,但您可以通过扩展来做到这一点https://github.com/foxyproxy/firefox-extension


我选择了 2. 并将所有 http 请求从我的笔记本电脑转发到台式机。我使用此设置两个多月,没有任何明显的停机时间。


结论

在本文中,我们介绍了如何使用以下方法设置个人住宅代理


  1. 点对点VPN
  2. 两台或多台个人电脑


根据 VPN 的选择,假设您已经拥有多台计算机,则无需任何额外费用即可完成整个设置。使用此住宅代理,您可以匿名访问互联网,而不会因您当前的物理位置而受到任何地理限制。