4.9 KiB
4.9 KiB
透明代理配置
对应 settings.toml 的 [transparent]。
透明代理由两部分组成:
| 部分 | 作用 |
|---|---|
| Xray inbound | 接收被系统规则转发来的流量。 |
| 系统规则 | iptables / nft / ip rule / resolv.conf,把宿主机流量导到 Xray。 |
字段
| 设置 | UI | 默认值 | 可选值 | 作用 | 什么时候修改 |
|---|---|---|---|---|---|
mode |
显示 | close |
close / proxy / whitelist / gfwlist / pac |
是否启用 transparent inbound,以及透明代理流量使用的路由模式。 | 需要宿主机透明代理时改为非 close。 |
type |
显示 | redirect |
redirect / tproxy / system_proxy / tun |
透明代理接入方式。 | 先用 redirect;需要 UDP 再评估 tproxy。 |
port |
显示 | 52345 |
0-65535 |
redirect/tproxy/system_proxy/tun 主端口。 | 端口冲突时修改。 |
socks_port |
显示 | 52306 |
0-65535 |
system_proxy 额外 SOCKS 端口。 |
只在 system proxy 场景修改。 |
ipforward |
显示 | false |
bool |
生成脚本写 /proc/sys/net/ipv4/ip_forward 和 IPv6 forwarding。 |
宿主机要作为网关转发其它设备/容器流量时开启。 |
docker_transparent |
显示 | true |
bool |
redirect/tproxy 规则只关注指定 Docker CIDR,并不过滤 docker/veth/br-* 接口。 | 要透明代理 Docker 容器流量时保持开启。 |
docker_transparent_cidrs |
显示 | 172.16.0.0/12 |
分号分隔 IPv4 CIDR | Docker 容器源地址网段。 | Docker 网段不是默认范围时修改。 |
tproxy_excluded_interfaces |
显示 | docker*,veth*,wg*,ppp*,br-* |
逗号分隔接口模式 | 系统规则排除入口接口。 | tproxy/redirect 误拦截特定接口时修改。 |
tproxy_white_country_codes |
隐藏 | [] |
国家/地区代码数组 | 从 geoip.dat 解析白名单 CIDR,tproxy 下 RETURN。 |
tproxy 下需要国家/地区直连白名单时手改。 |
tproxy_white_custom_ips |
隐藏 | [] |
CIDR 数组 | tproxy 自定义 RETURN CIDR。 | tproxy 下需要额外直连网段时手改。 |
tun_bypass_interfaces |
隐藏 | "" |
字符串 | 写入 tinytun.yaml 的绕过接口。 |
使用 TinyTun 且要绕过接口时手改。 |
tun_auto_route |
显示 | true |
bool |
写入 tinytun.yaml 的 auto_route。 |
TUN 路由由外部管理时关闭。 |
tun_route_shell_type |
隐藏 | "" |
字符串 | 预留。 | 当前不用改。 |
tun_route_shell_path |
隐藏 | "" |
字符串 | 预留。 | 当前不用改。 |
tun_setup_script |
隐藏 | "" |
shell 文本 | type = tun 时生成 setup 脚本内容。 |
需要自定义 TUN 初始化时手改。 |
tun_teardown_script |
隐藏 | "" |
shell 文本 | type = tun 时生成 cleanup 脚本内容。 |
需要自定义 TUN 清理时手改。 |
tun_process_backend |
隐藏 | "" |
字符串 | 写入 TinyTun 进程匹配后端。 | 需要进程分流时手改。 |
tun_exclude_processes |
隐藏 | "" |
换行/逗号分隔字符串 | 写入 TinyTun 排除进程。 | 避免 Xray/pyxray 自身进入 TUN 回环时修改。 |
模式行为
mode |
透明代理路由行为 |
|---|---|
close |
不生成 transparent inbound,不执行透明代理 setup。 |
proxy |
transparent 流量全部走 proxy。 |
whitelist |
transparent 流量按 whitelist 规则。 |
gfwlist |
transparent 流量按 gfwlist 规则。 |
pac |
transparent 流量复用 [routing].mode。 |
类型行为
type |
Xray inbound | 系统规则 | 适用 |
|---|---|---|---|
redirect |
dokodemo-door + followRedirect + tproxy=redirect |
nat 表 REDIRECT / nft redirect | 推荐默认;主要处理 TCP。 |
tproxy |
dokodemo-door + followRedirect + tproxy=tproxy |
mangle + fwmark + table 100 / nft tproxy | 需要 UDP/TProxy 时。 |
system_proxy |
HTTP + SOCKS | 不改内核规则,只生成占位脚本 | 应用显式配置代理。 |
tun |
SOCKS 入站 + tinytun.yaml |
使用 tun_setup_script / tun_teardown_script |
外部 TinyTun 方案。 |
Docker 部署注意
| 配置 | 说明 |
|---|---|
network_mode: host |
规则作用于宿主机网络命名空间。 |
privileged: true |
允许改 iptables/nft/ip rule/procfs。 |
/etc/resolv.conf:/etc/resolv.conf |
redirect DNS 劫持时修改宿主机 DNS。 |
docker_transparent = true |
生成 Docker CIDR 相关 PREROUTING 规则。 |
生成文件
| 文件 | 用途 |
|---|---|
ip-forward-apply.sh |
写 IP forwarding。 |
resolv-hijack-setup.sh |
redirect DNS 劫持。 |
resolv-hijack-cleanup.sh |
恢复 DNS。 |
transparent-iptables-setup.sh |
安装 iptables 规则。 |
transparent-iptables-cleanup.sh |
清理 iptables 规则。 |
transparent-nft-setup.sh |
加载 nftables 规则。 |
transparent-nft-cleanup.sh |
清理 nftables 规则。 |
v2raya.nft |
nftables 表内容。 |
tinytun.yaml |
TinyTun 配置。 |