住宅用プロキシには、Web スクレイピング、オンライン調査、地理的制限の回避、匿名ブラウジングなど、多くの便利なアプリケーションがあります。ただし、10 GB を超えるデータへのアクセスに月額 100 ドル以上を請求するものもあり、高額になる可能性があります。
昨年、私がインドや東南アジアの他の地域に旅行していたとき、地域制限なしで Netflix や Amazon Prime などのさまざまなサブスクリプション サービスのコンテンツにアクセスできる信頼できる方法が必要でした。この間やりたかった
米国の自宅のデスクトップに独自の住宅用プロキシを作成することで解決策を見つけました。
ピア ツー ピア (P2P) VPN をセットアップし、ラップトップとデスクトップを接続することで、インドのラップトップのトラフィックを米国のデスクトップにルーティングし、これらの要求を www/public に転送することができました。ホームネットワークから応答を返す前にインターネット。
これはすべて、自宅のルーターで接続転送構成を設定する手間を省くためのものです。
ピアツーピア (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 ネットワークでデスクトップの IP アドレスを特定する: VPN アカウントをインストールしてサインインした後、ラップトップが http 要求を転送するために使用するデスクトップの 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 …
ここで、ネットワーク インターフェイスtailscale0
のローカル Tailscale ネットワーク内のデスクトップの IP アドレスを見つけることができました: 100.113.xxx.xx
ラップトップでプロキシ サーバーのアドレスを使用してパブリック Web にアクセスします。
デスクトップの 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"
上記の手順は、自宅で予備のコンピューターを使用して旅行中に無料の住宅用プロキシ サーバーを作成する方法を示しています。これで、個人のラップトップでこのプロキシ アドレスを次のいずれかの方法で使用できます。
2. を選択し、すべての http 要求をラップトップからデスクトップに転送しました。このセットアップを 2 か月以上使用しましたが、目立ったダウンタイムはありませんでした。
この記事では、以下を使用して個人の住宅用プロキシをセットアップする方法について説明しました
VPN の選択に応じて、複数のコンピューターを既に所有していると仮定すると、セットアップ全体を追加費用なしで実行できます。この住宅用プロキシを使用すると、現在の物理的な場所による地理的制限なしに匿名でインターネットにアクセスできます.