-
Notifications
You must be signed in to change notification settings - Fork 5
使用Docker配置透明代理 (Transparent Proxy)
Liang Yi edited this page Jul 22, 2020
·
1 revision
要配置一个完整的透明代理,我们需要配置如下三个内容
- Route Rule,用于指示旁路网关接收到的流量应该转发到何处
- Proxy,用于将流量转发到远端服务器
- DNS,用于抗DNS污染
在这篇Wiki中我将使用 TProxy 这个 Docker Image 作为转发规则
TProxy:
image: ly0007/tproxy:latest
cap_add:
- NET_ADMIN
network_mode: "host"
volumes:
- /etc/tproxy:/config
environment:
- ENABLE_MINI_MODE=1
- ENABLE_OUTPUT_REROUTE=0
使用以上配置来建立一个转发器,以下为环境变量的解释
- REDIR_PORT 设置最终转发到的端口,默认为 10800
- SERVER_PORT 设置放行端口,默认为 10863 (当关闭 ENABLE_OUTPUT_REROUTE 时不需要设置此参数)
- ENABLE_MINI_MODE 启用这个设置来关闭自动下载 CN GEOIP 的功能,此时会将所有流量转发至 REDIR_PORT
- ENABLE_OUTPUT_REROUTE 启用这个配置来转发本机流量,请注意配置 SERVER_PORT 防止回环
此 Wiki 推荐使用 Clash 同时完成 Proxy 和 DNS 的功能
Clash:
image: dreamacro/clash-premium:latest
network_mode: "host"
restart: unless-stopped
volumes:
- /etc/tproxy/clash:/root/.config/clash/
使用以上配置来启用 Clash,Clash 的示例配置如下
redir-port: 10800
allow-lan: true
mode: rule
log-level: error
dns:
enable: true
ipv6: false
listen: ':53'
default-nameserver:
- 114.114.114.114
enhanced-mode: redir-host
nameserver:
- tls://dos.pub
- tls://dns.alidns.com
fallback:
- tls://dns.google
fallback-filter:
geoip: true
ipcidr:
- 240.0.0.0/4
hosts:
# Fill Google IP here
# '+.google.cn': 127.0.0.1
proxy-providers:
# Your Proxy Providers
rule-providers:
Local_Net:
type: http
behavior: classical
path: ./rules/local.yaml
url: http://github.com/ACL4SSR/ACL4SSR/raw/master/Clash/Providers/LocalAreaNetwork.yaml
interval: 43200
Apple_China:
type: http
behavior: classical
path: ./rules/AppleCN.yaml
url: http://github.com/ACL4SSR/ACL4SSR/raw/master/Clash/Providers/Ruleset/Apple.yaml
interval: 43200
Google_China:
type: http
behavior: classical
path: ./rules/GoogleCN.yaml
url: http://github.com/ACL4SSR/ACL4SSR/raw/master/Clash/Providers/Ruleset/GoogleCN.yaml
interval: 43200
rules:
- RULE-SET,Local_Net,DIRECT
- RULE-SET,Apple_China,DIRECT
- RULE-SET,Google_China,DIRECT
- DOMAIN-SUFFIX,.cn,DIRECT
- GEOIP,CN,DIRECT
- MATCH,auto
在这个配置中我启用了 Clash 的转发和 DNS 功能,请注意在 Docker 中将网段设置为 host 或手动转发相应的 redir-port 和 53 端口
请确保 Clash 中的 redir-port 和 TProxy 中的 REDIR_PORT 配置完全相同
完整的 Docker-Compose 如下
version: '2'
services:
Clash:
image: dreamacro/clash-premium:latest
network_mode: "host"
restart: unless-stopped
volumes:
- /etc/tproxy/clash:/root/.config/clash/
TProxy:
image: ly0007/tproxy:latest
cap_add:
- NET_ADMIN
network_mode: "host"
volumes:
- /etc/tproxy:/config
environment:
- ENABLE_MINI_MODE=1
- ENABLE_OUTPUT_REROUTE=0