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
In this example, I am using Proxyscrape residential proxies, but you can also use premium proxies or any other proxies as well.
Now that we have created the container that does the proxying, we can use any container we want to use this container’s network by just adding the --network=container:tun2socks flag.
Để 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.