問題 住宅用プロキシには、Web スクレイピング、オンライン調査、地理的制限の回避、匿名ブラウジングなど、多くの便利なアプリケーションがあります。ただし、10 GB を超えるデータへのアクセスに月額 100 ドル以上を請求するものもあり、高額になる可能性があります。 昨年、私がインドや東南アジアの他の地域に旅行していたとき、地域制限なしで Netflix や Amazon Prime などのさまざまなサブスクリプション サービスのコンテンツにアクセスできる信頼できる方法が必要でした。この間やりたかった VPN/住宅用プロキシ サービスに月額 100 ドル以上支払う必要はありません。また、VPN を使用しているときに Netflix によってブロックされることがありました。 米国に戻って自宅のインターネット接続用の静的 IP に追加料金を支払う必要はありません。 解決 米国の自宅のデスクトップに独自の住宅用プロキシを作成することで解決策を見つけました。 ピア ツー ピア (P2P) VPN をセットアップし、ラップトップとデスクトップを接続することで、インドのラップトップのトラフィックを米国のデスクトップにルーティングし、これらの要求を www/public に転送することができました。ホームネットワークから応答を返す前にインターネット。 これはすべて、自宅のルーターで接続転送構成を設定する手間を省くためのものです。 P2P VPN とは ピアツーピア (P2P) は、ユーザーの安全な共有環境を作成するために使用される VPN のアーキテクチャ モデルです。 P2P ベースの VPN は、標準のハブアンドスポーク モデルとは異なり、すべてのトラフィックを中央サーバー経由でルーティングせず、輻輳を回避します。これにより、セキュリティが向上し、ネットワークに過負荷をかけることなくノードを追加することで、より効率的なスケーリングが可能になります。さらに、P2P VPN の接続は最速のパスを利用して遅延を減らします。 複数のオープンソース、フリーミアム、および有料の P2P VPN ソリューションが利用可能です。 Tinc は人気のあるオープンソース VPN の 1 つです。 ネットワーク設定はどのように見えますか? ネットワーク スタックは、次のコンポーネントで構成されます。 自宅のデスクトップ (米国) 私のラップトップ (米国外) 同じアカウントを介して両方のマシンで実行されている P2P VPN デーモン デスクトップで実行されている HTTP プロキシ サーバー 以下の図は、米国外のラップトップから公開 Web ページを取得するための情報の流れを示しています。 セットアップが簡単で、構成がほとんど必要ない P2P VPN が必要でした。私はテールスケールを使用することになりました。以下の手順は、ほとんどの VPN で一般的なものですが、tailscale を使用する場合はこれが最も適している場合があります。 このネットワークの設定手順 : デスクトップとラップトップでの VPN クライアントのセットアップ デスクトップとラップトップに VPN クライアントをダウンロードしてインストールします。 設定不要の VPN を使用している場合は、アカウントを vpn に登録し、同じアカウントで両方のマシンにサインインします。 : デスクトップでフォワード HTTP プロキシ サーバーを設定する 任意のオープン ソース プロキシ サーバーを使用できます。設定が簡単だったので https://github.com/abhinavsingh/proxy.py を使用しました。 Dockerコンテナ内で実行しました。このプロキシの Docker イメージは、docker ハブで入手できます。 Dockerコンテナ内で実行するには、このコマンドを実行できます docker run -it -p 8899:8899 --rm abhinavsingh/proxy.py:latest 上記のコマンドでは、プロキシ サーバーはポート 8899 でリッスンしています。これは、ラップトップ内のアプリケーションでプロキシ サーバーの URL を指定する場合に役立ちます。 : VPN アカウントをインストールしてサインインした後、ラップトップが http 要求を転送するために使用するデスクトップの IP アドレスを特定します。 VPN ネットワークでデスクトップの IP アドレスを特定する このために、デスクトップ上のすべてのネットワーク インターフェイスの 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 … ここで、ネットワーク インターフェイス のローカル Tailscale ネットワーク内のデスクトップの IP アドレスを見つけることができました: tailscale0 100.113.xxx.xx ラップトップでプロキシ サーバーのアドレスを使用してパブリック Web にアクセスします。 デスクトップの IP アドレス ( と呼びましょう) とデスクトップ上の http プロキシ サーバーのポート番号 ( と呼びましょう) がわかったので、すべてのネットワーク トラフィックをラップトップからプロキシ アドレス 経由で転送できます。 . $ip_desktop $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" プロキシ サーバーの使用 上記の手順は、自宅で予備のコンピューターを使用して旅行中に無料の住宅用プロキシ サーバーを作成する方法を示しています。これで、個人のラップトップでこのプロキシ アドレスを次のいずれかの方法で使用できます。 Web フレームワーク/言語の http クライアント ライブラリ内のアプリケーション コード内 (Python でのリクエスト、JavaScript でのフェッチなど) ラップトップからのすべての Web リクエストに対して。このようにして、デスクトップのプロキシ サーバー経由であらゆる種類の http 要求を転送できます。 ubuntuでは、次の手順に従ってこれを行うことができます https://help.ubuntu.com/stable/ubuntu-help/net-proxy.html.en ブラウザだけで。 Chrome と Firefox には、専用の http プロキシ設定をセットアップするためのネイティブな方法はありませんが、次のような拡張機能を介してこれを行うことができます。 https://github.com/foxyproxy/firefox-extension 2. を選択し、すべての http 要求をラップトップからデスクトップに転送しました。このセットアップを 2 か月以上使用しましたが、目立ったダウンタイムはありませんでした。 結論 この記事では、以下を使用して個人の住宅用プロキシをセットアップする方法について説明しました P2P VPN 2台以上のパソコン VPN の選択に応じて、複数のコンピューターを既に所有していると仮定すると、セットアップ全体を追加費用なしで実行できます。この住宅用プロキシを使用すると、現在の物理的な場所による地理的制限なしに匿名でインターネットにアクセスできます.