Cách sử dụng Proxyscrape Proxy với Docker

Hướng dẫn, Làm thế nào để, Tháng Bảy-01-20245 phút đọc

Một số trường hợp sử dụng nhất định yêu cầu bạn ủy quyền lưu lượng truy cập trong các chương trình không hỗ trợ proxy. Blog trước đã thảo luận về cách điều này có thể xảy ra trên Windows, nhưng cũng có rất nhiều trường hợp sử dụng cho proxy trên Linux hoặc thậm chí các thùng chứa Docker để tăng tính linh hoạt.

Trong bài đăng trên blog này, chúng ta sẽ thảo luận về cách sử dụng proxy cho các container Docker bằng cách sử dụng xjasonlyu/tun2socks Docker container.
Tun2socks là một công cụ đường hầm mạng nhẹ và di động cho phép bạn định tuyến lưu lượng truy cập thông qua máy chủ proxy. Nó được viết bằng Go và có sẵn dưới dạng tệp thực thi độc lập hoặc dưới dạng bộ chứa Docker.
Trong bài viết này, mình sẽ tập trung vào cách sử dụng nó với Docker, để sau đó các bạn có thể kết nối bất kỳ container Docker nào khác với nó và làm cho nó sử dụng proxy.

Đầu tiên, chúng ta cần tạo một container Docker ban đầu sẽ thực hiện proxy.

docker run -d --name tun2socks \
-e EXTRA_COMMANDS='echo "nameserver 1.1.1.1" > /etc/resolv.conf;ip rule add iif lo ipproto udp dport 53 lookup main;' \
-e PROXY=http://<user>:<pass>@rp.proxyscrape.com:6060 \
-v '/dev/net/tun:/dev/net/tun' --cap-add=NET_ADMIN \
xjasonlyu/tun2socks
  • EXTRA_COMMANDS là cần thiết để DNS hoạt động bình thường vì vùng chứa tun2socks không xử lý DNS theo mặc định và chỉ tự thực hiện proxy.
  • PROXY là nơi bạn đặt Proxy mà bạn muốn sử dụng, đây có thể là http / https và socks4/5. Một danh sách chi tiết tồn tại ở đây:
  • -v '/dev/net/tun:/dev/net/tun' Gắn thiết bị mạng ảo của máy chủ (/dev/net/tun) vào container, cho phép tun2socks thao tác lưu lượng mạng.
  • --cap-add=NET_ADMIN Cấp cho container các khả năng quản trị mạng cần thiết để thiết lập đường hầm proxy bằng cách cấp cho nó quyền truy cập vào ngăn xếp mạng.

Trong ví dụ này, tôi đang sử dụng Proxyscrape proxy dân cư, nhưng bạn cũng có thể sử dụng proxy cao cấp hoặc bất kỳ proxy nào khác.
Bây giờ chúng ta đã tạo container thực hiện proxy, chúng ta có thể sử dụng bất kỳ container nào chúng ta muốn sử dụng mạng của container này bằng cách chỉ cần thêm cờ --network=container:tun2socks.

Để kiểm tra xem mọi thứ có hoạt động chính xác hay không, bạn có thể sử dụng vùng chứa thử nghiệm mà tôi đã xây dựng để trả về dữ liệu vị trí IPinfo.

docker run --rm --network=container:tun2socks hibenji/checkip

Như bạn có thể thấy, giờ đây chúng tôi có thể proxy khá nhiều thứ thông qua proxy, ngay cả khi nó không được hỗ trợ nguyên bản.
Tất nhiên, bạn có thể sử dụng proxy xoay khi tạo vùng chứa ban đầu, nhưng bạn cũng có thể tạo nhiều thùng chứa tun2socks, tất cả đều có các phiên dính nếu điều đó cũng được yêu cầu.

Cách tiếp cận proxy này trong Docker mở ra một thế giới khả năng. Giờ đây, bạn có thể sử dụng proxy kết hợp với thực tế bất kỳ vùng chứa Docker nào, ngay cả những proxy không có hỗ trợ proxy tích hợp. Điều này có thể nâng cao khả năng của các ứng dụng được đóng gói của bạn, cho phép bạn thực hiện các tác vụ có thể khó khăn hoặc không thể thực hiện được nếu không có mức kiểm soát mạng này.

Cảm ơn bạn đã đọc, và tôi hy vọng bạn đã học được điều gì đó!

Bài viết này được viết bởi Benji, một ProxyScrape người dùng.