paint-brush
Cách tạo Proxy dân cư cá nhân để vượt qua các hạn chế về địa lýtừ tác giả@abhilashchowdhary
12,993 lượt đọc
12,993 lượt đọc

Cách tạo Proxy dân cư cá nhân để vượt qua các hạn chế về địa lý

từ tác giả Abhilash Chowdhary5m2023/01/28
Read on Terminal Reader

dài quá đọc không nổi

Proxy dân cư có rất nhiều ứng dụng hữu ích, chẳng hạn như quét web, nghiên cứu trực tuyến, bỏ qua các giới hạn địa lý và duyệt web ẩn danh. Tuy nhiên, chúng có thể đắt tiền, với một số tính phí hơn 100 đô la một tháng để truy cập vào hơn 10 GB dữ liệu. Tôi đã khám phá ra một giải pháp bằng cách tạo proxy dân cư của riêng mình trên máy tính để bàn tại nhà ở Hoa Kỳ bằng cách sử dụng P2P VPN.
featured image - Cách tạo Proxy dân cư cá nhân để vượt qua các hạn chế về địa lý
Abhilash Chowdhary HackerNoon profile picture

Vấn đề

Proxy dân dụng có rất nhiều ứng dụng hữu ích, chẳng hạn như quét web, nghiên cứu trực tuyến, bỏ qua các giới hạn địa lý và duyệt web ẩn danh. Tuy nhiên, chúng có thể đắt tiền, với một số tính phí hơn 100 đô la một tháng để truy cập vào hơn 10 GB dữ liệu.


Năm ngoái, khi tôi đi du lịch đến Ấn Độ và các khu vực khác của Đông Nam Á, tôi muốn có một cách đáng tin cậy cho phép tôi truy cập nội dung trên các dịch vụ đăng ký khác nhau như Netflix và Amazon Prime mà không bị giới hạn địa lý. Tôi muốn làm điều này trong khi


  1. Không phải trả hơn 100 đô la mỗi tháng cho dịch vụ VPN/proxy dân dụng. Ngoài ra, Netflix thỉnh thoảng sẽ chặn tôi khi sử dụng VPN.
  2. Không phải trả thêm tiền cho một IP tĩnh cho kết nối internet tại nhà của tôi ở Hoa Kỳ.

Giải pháp

Tôi đã khám phá ra giải pháp bằng cách tạo proxy dân cư của riêng mình trên máy tính để bàn tại nhà ở Hoa Kỳ.


Bằng cách thiết lập VPN ngang hàng (P2P) và kết nối máy tính xách tay và máy tính để bàn của tôi với nó, tôi có thể định tuyến lưu lượng truy cập từ máy tính xách tay của mình ở Ấn Độ đến máy tính để bàn của tôi ở Hoa Kỳ, sau đó chuyển tiếp các yêu cầu này tới www/public internet trước khi trả lại phản hồi từ mạng gia đình của tôi.


Tất cả điều này mà không cần phải trải qua những rắc rối khi thiết lập cấu hình chuyển tiếp kết nối trong bộ định tuyến tại nhà của tôi.


VPN P2P là gì

Peer-to-peer (P2P) là một mô hình kiến trúc dành cho VPN được sử dụng để tạo môi trường chia sẻ an toàn cho người dùng. VPN dựa trên P2P khác với mô hình trung tâm và nan hoa tiêu chuẩn ở chỗ không định tuyến tất cả lưu lượng truy cập thông qua máy chủ trung tâm, tránh tắc nghẽn. Điều này cải thiện tính bảo mật và cho phép mở rộng quy mô hiệu quả hơn bằng cách thêm các nút mà không làm quá tải mạng. Ngoài ra, các kết nối trong VPN P2P sử dụng đường dẫn nhanh nhất, giảm độ trễ.


Có sẵn nhiều giải pháp P2P VPN nguồn mở, freemium và trả phí. Tinc là một trong những VPN nguồn mở phổ biến.


Thiết lập mạng trông như thế nào?

Ngăn xếp mạng bao gồm các thành phần sau:


  1. Máy tính để bàn tại nhà (Mỹ)

  2. Máy tính xách tay của tôi (Bên ngoài Hoa Kỳ)

  3. P2P vpn daemon chạy trên cả hai máy thông qua cùng một tài khoản

  4. Máy chủ proxy http chạy trên máy tính để bàn


Sơ đồ bên dưới mô tả luồng thông tin để truy xuất một trang web công cộng từ máy tính xách tay của tôi bên ngoài Hoa Kỳ.

Luồng thông tin khi một trang web công khai được truy xuất từ máy tính xách tay bên ngoài Hoa Kỳ. 1. là yêu cầu ban đầu và 4. là phản hồi cuối cùng


Tôi muốn có một VPN P2P dễ thiết lập và yêu cầu cấu hình gần như bằng không. Tôi đã kết thúc việc sử dụng tailscale. Các bước bên dưới hầu hết là chung chung cho bất kỳ VPN nào nhưng bạn có thể thấy bước này phù hợp nhất nếu sử dụng thang đo đuôi.

Các bước thực hiện để thiết lập mạng này

  1. Thiết lập ứng dụng khách vpn trên máy tính để bàn và máy tính xách tay :

    1. Tải xuống và cài đặt máy khách VPN trên máy tính để bàn và máy tính xách tay.

    2. Nếu sử dụng VPN không cấu hình, hãy đăng ký tài khoản của bạn với vpn và đăng nhập trên cả hai máy bằng cùng một tài khoản


  2. Thiết lập máy chủ proxy http chuyển tiếp trên máy tính để bàn :

    Bạn có thể sử dụng bất kỳ máy chủ proxy nguồn mở nào. Tôi đã sử dụng https://github.com/abhinavsingh/proxy.py vì nó dễ cài đặt. Tôi đã chạy nó trong một container docker. Hình ảnh docker cho proxy này có sẵn trên docker hub. Để chạy nó trong vùng chứa docker, bạn có thể thực hiện lệnh này

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


    Trong lệnh trên, máy chủ proxy đang lắng nghe trên cổng 8899. Điều này sẽ hữu ích khi chúng tôi chỉ định url của máy chủ proxy trong các ứng dụng trong máy tính xách tay


  3. Xác định địa chỉ ip của máy tính để bàn trong mạng VPN : Sau khi cài đặt và đăng nhập vào tài khoản VPN của bạn, hãy tìm ra địa chỉ ip của máy tính để bàn sẽ được máy tính xách tay sử dụng để chuyển tiếp các yêu cầu http của nó.


    Đối với điều này, bạn có thể liệt kê các địa chỉ IP cho tất cả các giao diện mạng trên máy tính để bàn. Sau đó, xác định địa chỉ ip cho một giao diện có tên bắt đầu bằng tên của máy khách VPN của bạn, đối với trường hợp của tôi, nó bắt đầu bằng “tailscale”.


    Tôi đã sử dụng lệnh ip trên thiết bị đầu cuối của máy linux để xác định địa chỉ 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 …

    Tại đây, tôi có thể tìm thấy địa chỉ IP của máy tính để bàn trong mạng quy mô cục bộ của mình trong giao diện mạng tailscale0 : 100.113.xxx.xx


  4. Sử dụng địa chỉ của máy chủ proxy trên máy tính xách tay để truy cập web công cộng:

    Bây giờ chúng ta đã biết địa chỉ IP của máy tính để bàn (hãy gọi nó $ip_desktop ) và số cổng cho máy chủ proxy http trên máy tính để bàn (hãy gọi nó $proxy_port ), chúng ta có thể chuyển tiếp tất cả lưu lượng mạng từ máy tính xách tay qua địa chỉ proxy http://$ip_desktop:$proxy_port .


    Ví dụ: bạn có thể gửi yêu cầu cuộn tròn tới example.com từ máy tính xách tay qua máy tính để bàn như

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


Sử dụng máy chủ proxy

Các hướng dẫn ở trên trình bày cách tạo máy chủ proxy dân dụng miễn phí khi đi du lịch bằng máy tính dự phòng ở nhà. Giờ đây, bạn có thể sử dụng địa chỉ proxy này trên máy tính xách tay cá nhân của mình theo bất kỳ cách nào sau đây:


  1. Trong mã ứng dụng của bạn bên trong thư viện máy khách http của khung/ngôn ngữ web của bạn (yêu cầu trong python, tìm nạp trong javascript, v.v.)
  2. Đối với tất cả các yêu cầu web từ máy tính xách tay của bạn. Bằng cách này, bạn có thể chuyển tiếp bất kỳ loại yêu cầu http nào qua máy chủ proxy của máy tính để bàn. Trong Ubuntu, bạn có thể làm điều này bằng cách làm theo các bước sau https://help.ubuntu.com/stable/ubuntu-help/net-proxy.html.en
  3. Chỉ trong trình duyệt của bạn. Mặc dù Chrome và Firefox không cung cấp cách riêng để thiết lập cài đặt proxy http độc quyền cho chúng, nhưng bạn có thể thực hiện việc này thông qua các tiện ích mở rộng như https://github.com/foxyproxy/firefox-extension


Tôi đã chọn 2. và chuyển tiếp tất cả các yêu cầu http từ máy tính xách tay của tôi sang máy tính để bàn. Tôi đã sử dụng thiết lập này trong hơn hai tháng mà không có bất kỳ thời gian ngừng hoạt động đáng chú ý nào.


Phần kết luận

Trong bài viết này, chúng tôi đã giới thiệu cách thiết lập proxy dân cư cá nhân bằng cách sử dụng


  1. VPN P2P
  2. Hai hoặc nhiều máy tính cá nhân


Tùy thuộc vào lựa chọn VPN, toàn bộ thiết lập có thể được thực hiện mà không mất thêm bất kỳ chi phí nào, giả sử bạn đã sở hữu nhiều máy tính. Sử dụng proxy dân cư này, sau đó bạn có thể truy cập internet ẩn danh mà không có bất kỳ giới hạn địa lý nào do vị trí thực tế hiện tại của bạn.