当docker里的程序不支持代理时,给docker强上代理

首页 / 默认分类 / 正文

步骤 1:进入已运行的容器终端
步骤 2:在容器内安装 proxychains
根据容器系统类型选择命令:
Debian/Ubuntu:

  apt update && apt install -y proxychains

在 Alpine Linux 容器中安装 proxychains

apk update && apk add proxychains-ng

步骤 3:配置 proxychains
编辑 /etc/proxychains.conf(如果文件不存在则新建):

mkdir -p /etc/proxychains
cat <<EOF > /etc/proxychains/proxychains.conf
strict_chain
proxy_dns
[ProxyList]
socks5 172.21.0.1 1080 vip vip123~
EOF

步骤 4:测试代理是否生效
在容器内运行:

proxychains curl -I https://www.google.com

步骤 5:强制程序走代理
用 proxychains 启动你的目标程序:

proxychains /path/to/your-program

或直接覆盖容器的启动命令(需重启容器):

docker restart <容器名或ID> --entrypoint "proxychains /path/to/your-program"

替代方案:通过 iptables 全局流量转发(高级)
如果容器内没有 proxychains,可以用 iptables 强制所有流量走 SOCKS5(需容器有 CAP_NET_ADMIN 权限):

# 在容器内执行
apk update && apk add iptables# 安装iptables 
iptables -t nat -A OUTPUT -p tcp -j DNAT --to-destination <代理IP>:<代理端口>

持久化配置:

若需容器每次启动自动应用代理,将配置写入 Dockerfile 或 entrypoint.sh:

     RUN apt update && apt install -y proxychains \
         && echo "socks5 172.20.0.1 1080 vip vip123~" >> /etc/proxychains.conf
     CMD ["proxychains", "/path/to/your-program"]

调试技巧:
测试代理连通性:

     proxychains curl -v https://www.google.com

查看实际流量走向:

     proxychains nmap -Pn -sT www.google.com -p 443

测试代理端口连通性(替换为你的代理IP和端口)

nc -zv 172.21.0.1 1080

使用 curl 直接测试代理(不通过 proxychains)

curl -x socks5://vip:vip123~@172.21.0.1:1080 https://www.google.com -I

修复 proxychains 配置
如果配置文件路径正确但依然无效,可能是 proxychains 版本问题。尝试强制指定配置文件路径:
proxychains -f /etc/proxychains/proxychains.conf curl -I https://www.google.com

无标签
评论区
头像