2 điểm bởi GN⁺ 2024-04-03 | 1 bình luận | Chia sẻ qua WhatsApp

Wireproxy: proxy Socks5/HTTP hoặc đường hầm dưới dạng trình khách WireGuard

  • wireproxy là một ứng dụng chạy hoàn toàn trong không gian người dùng, kết nối tới peer wireguard và cung cấp cho máy một proxy socks5/http hoặc một đường hầm.
  • Hữu ích khi bạn cần kết nối tới một số trang web cụ thể thông qua peer wireguard nhưng không muốn mất công thiết lập một giao diện mạng mới.

Vì sao cần công cụ này

  • Khi bạn chỉ muốn dùng wireguard như một proxy để chuyển một phần lưu lượng.
  • Khi bạn không muốn có quyền root để thay đổi cấu hình wireguard.
  • Hiện tại, người dùng chạy wireproxy kết nối tới máy chủ wireguard ở quốc gia khác và cấu hình trình duyệt để dùng nó cho một số trang web nhất định.
  • wireproxy hoàn toàn tách biệt với giao diện mạng và không cần quyền root để cấu hình.
  • Người dùng Amnezia VPN có thể dùng phiên bản wireproxy do @juev fork.

Tính năng

  • Định tuyến tĩnh TCP cho client và server
  • Proxy SOCKS5/HTTP (hiện tại chỉ hỗ trợ CONNECT)

Việc cần làm

  • Hỗ trợ UDP trong SOCKS5
  • Định tuyến tĩnh UDP

Cách dùng

./wireproxy -c [đường dẫn config]
  • Cung cấp chức năng proxy như một trình khách wireguard trong không gian người dùng.
  • -h là trợ giúp, -c là đường dẫn tệp cấu hình, -s là chế độ im lặng, -d là chạy nền, -v là in phiên bản, -n là chế độ chỉ kiểm tra tính hợp lệ của tệp cấu hình.

Hướng dẫn build

git clone https://github.com/octeep/wireproxy
cd wireproxy
make

Sử dụng cùng VPN

  • Có thể tìm cách dùng wireproxy trên MacOS với Firefox Container Tabs và tự khởi động tại liên kết tương ứng.

Tệp cấu hình mẫu

  • Cấu hình [Interface][Peer] có cùng ý nghĩa và cú pháp như cấu hình wg-quick.
  • TCPClientTunnel và TCPServerTunnel là các đường hầm lần lượt chuyển tiếp lưu lượng TCP từ máy cục bộ và từ mạng wireguard tới một đích cụ thể.
  • STDIOTunnel là một đường hầm kết nối đầu vào và đầu ra tiêu chuẩn của tiến trình wireproxy với một đích TCP cụ thể thông qua wireguard.
  • Socks5 và http tạo proxy socks5 và proxy http trên LAN rồi định tuyến toàn bộ lưu lượng qua wireguard.
  • Nếu bạn đã có sẵn cấu hình wireguard, có thể nhập nó vào tệp cấu hình của wireproxy.
  • Hỗ trợ nhiều peer, và cần chỉ định AllowedIPs để wireproxy biết phải chuyển tiếp qua peer nào.

Ý kiến của GN⁺

  • wireproxy có thể rất hữu ích với người dùng muốn truy cập Internet an toàn thông qua VPN mà không cần kiến thức chuyên sâu về cấu hình mạng.
  • Ứng dụng này hấp dẫn ở chỗ cho phép người dùng định tuyến một số lưu lượng cụ thể qua wireguard mà không cần thay đổi cấu hình mạng ở cấp hệ thống.
  • Tuy nhiên, nếu người dùng không hiểu đầy đủ về bảo mật mạng thì cần thận trọng vì cấu hình sai có thể tạo ra lỗ hổng bảo mật.
  • Khi áp dụng công nghệ wireguard, cần cân nhắc các ràng buộc pháp lý và chính sách quyền riêng tư tại khu vực liên quan, đồng thời xác nhận việc sử dụng VPN có được cho phép hay không.
  • Các dự án mã nguồn mở khác cung cấp tính năng tương tự gồm có OpenVPN, SoftEther VPN..., và người dùng nên chọn công cụ phù hợp với nhu cầu của mình.

1 bình luận

 
GN⁺ 2024-04-03
Ý kiến trên Hacker News
  • Thảo luận về một công cụ nhỏ hữu ích

    • Một người dùng dùng công cụ này để proxy một tab Firefox cụ thể tới router gia đình chạy WireGuard. Công cụ này hoạt động mà không cần giao thức proxy tầng ứng dụng hay SSH.
    • Một người dùng khác thích soks để dùng cùng WireGuard. Nó tái sử dụng giao diện WireGuard hiện có, và người dùng đó đã mô tả chi tiết trong bài viết blog của mình.
    • Một công cụ khác là onetun.
    • Một người dùng nhắc đến pproxy như một công cụ có thể thay thế SSH tunnel. pproxy chuyển đổi giữa nhiều giao thức tunnel khác nhau và cung cấp khả năng định tuyến. Người dùng dùng nó để chuyển SSH SOCKS5 thành HTTP proxy.
  • Thông tin về nhiều client proxy khác nhau

    • Nhiều client proxy đa giao thức hỗ trợ tính năng này. Ví dụ mã nguồn mở gồm sing-box, clash-meta cùng các client khác dựa trên clash, và xray.
    • Client mã nguồn đóng gồm có Surge Mac/iOS.
  • Câu hỏi về triển khai máy chủ trong không gian người dùng

    • Một người dùng thắc mắc liệu có triển khai máy chủ nào chạy hoàn toàn trong user space mà không cần thiết bị tun/tap hay không. Họ đoán rằng việc này sẽ cần một kiểu IP stack trong user space.
  • Đề xuất công cụ cho một dịch vụ VPN cụ thể

    • Có người chia sẻ trải nghiệm tốt khi dùng mullvad-proxy cho Mullvad VPN. Nó tích hợp công cụ CLI của Mullvad nên việc chuyển máy chủ rất dễ dàng, đồng thời được cách ly khỏi máy chủ host. Nó cũng được cấu thành từ nginx và một vài script, nên được kỳ vọng sẽ hỗ trợ SOCKS5 tốt.
  • Phản hồi tích cực về một công cụ được viết bằng Go

    • Một người dùng từng nghĩ rằng có thể dễ dàng viết một công cụ như thế này bằng Go, và sau đó phát hiện ra đúng là như vậy.
  • Thảo luận về trường hợp sử dụng cá nhân

    • Một người dùng nghĩ đến việc dùng các công cụ như thế này để proxy kết nối email của Thunderbird qua một exit node của Tailscale. Nhờ đó họ có thể chỉ proxy kết nối email mà không phải chuyển hướng toàn bộ lưu lượng qua exit node.
  • Nhắc đến tính năng của sing-box

    • Có người chia sẻ rằng sing-box cũng cung cấp cùng chức năng này.