Một số trường hợp sử dụng yêu cầu bạn phải proxy lưu lượng trong các chương trình không hỗ trợ proxy gốc. Bài viết trước đã thảo luận về cách thực hiện điều này trên Windows, nhưng cũng có rất nhiều trường hợp sử dụng proxy trên Linux hoặc thậm chí là Docker container để tăng thêm tính linh hoạt.
Trong bài đăng trên blog này, chúng tôi sẽ thảo luận về cách sử dụng proxy cho container Docker bằng cách sử dụng container Docker xjasonyu/tun2socks .
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 qua máy chủ proxy. Công cụ này đượ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 vùng chứa Docker.
Trong hướng dẫn này, tôi sẽ tập trung vào cách sử dụng nó với Docker, để bạn có thể kết nối bất kỳ vùng chứa Docker nào khác với nó và sử dụng proxy.
Đầu tiên, chúng ta cần tạo một vùng chứa Docker ban đầu để thực hiện việc 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
Trong ví dụ này, tôi đang sử dụng Proxyscrape proxy dân dụng, 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 được vùng chứa thực hiện proxy, chúng ta có thể sử dụng bất kỳ vùng chứa nào mà chúng ta muốn để sử dụng mạng của vùng chứa này chỉ bằng cách thêm cờ --network=container:tun2socks.
Để kiểm tra xem mọi thứ có hoạt động chính xác không, bạn có thể sử dụng một thùng chứa thử nghiệm mà tôi đã xây dựng để trả về dữ liệu vị trí IPinfo.
docker chạy --rm --network =container:tun2socks hibenji/checkip
Như bạn thấy, hiện tại chúng ta có thể ủy quyền hầu hết mọi thứ thông qua proxy, ngay cả khi proxy không được hỗ trợ gốc.
Tất nhiên, bạn có thể sử dụng proxy xoay vòng khi tạo vùng chứa ban đầu, nhưng bạn cũng có thể tạo nhiều vùng chứa tun2socks, tất cả đều có phiên cố định nếu cần.
Cách tiếp cận này đối với proxy trong Docker mở ra một thế giới khả năng. Bây giờ bạn có thể sử dụng proxy kết hợp với hầu như bất kỳ vùng chứa Docker nào, ngay cả những vùng chứa 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 chứa trong vùng chứa của bạn, cho phép bạn thực hiện các tác vụ có thể khó 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à 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.