feat: 基础功能实现
This commit is contained in:
+754
@@ -0,0 +1,754 @@
|
||||
# pyxray 配置说明
|
||||
|
||||
本文档说明当前 Web UI 已整理的配置项:核心配置、入站端口、路由、透明代理、DNS。
|
||||
|
||||
当前 UI 没有展示的配置项,如果本文明确写了隐藏默认值,表示保存配置时会按该默认值写入 `settings.toml`。
|
||||
|
||||
配置页使用改动确认模式:
|
||||
|
||||
- 修改任意配置项后,右下角会出现两个圆形按钮。
|
||||
- `✓` 表示保存设置。
|
||||
- `×` 表示撤回当前未保存修改,恢复到页面加载时的配置值。
|
||||
|
||||
## 核心配置
|
||||
|
||||
### 日志等级
|
||||
|
||||
控制生成的 Xray `log.loglevel`。
|
||||
|
||||
可选值:
|
||||
|
||||
- `trace`
|
||||
- `debug`
|
||||
- `info`
|
||||
- `warn`
|
||||
- `warning`
|
||||
- `error`
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
info
|
||||
```
|
||||
|
||||
注意事项:
|
||||
|
||||
- `trace` / `debug` 适合排查问题,但日志量更大。
|
||||
- 日常使用建议保持 `info`。
|
||||
- 只想看错误时可以改成 `error`。
|
||||
|
||||
### Mux 并发数
|
||||
|
||||
控制 Xray outbound 的 `mux` 设置。
|
||||
|
||||
UI 可选值:
|
||||
|
||||
```text
|
||||
0, 1, 2, 4, 8, 16, 32, 64
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- `0` 表示关闭 Mux。
|
||||
- 非 `0` 表示启用 Mux,并把该值作为 `mux.concurrency`。
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
0
|
||||
```
|
||||
|
||||
保存后的实际含义:
|
||||
|
||||
```text
|
||||
0 -> mux_enabled = false
|
||||
8 -> mux_enabled = true, mux_concurrency = 8
|
||||
16 -> mux_enabled = true, mux_concurrency = 16
|
||||
```
|
||||
|
||||
注意事项:
|
||||
|
||||
- Mux 会把多个连接复用到更少的底层连接中。
|
||||
- 某些节点或网络环境下 Mux 可能提升体验,也可能导致兼容性问题。
|
||||
- 不确定时建议用 `0` 关闭。
|
||||
|
||||
### 隐藏默认项
|
||||
|
||||
当前 UI 不显示 TCP Fast Open。
|
||||
|
||||
保存时固定为:
|
||||
|
||||
```text
|
||||
tcp_fast_open = "default"
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- `default` 表示不主动覆盖 Xray / 系统默认行为。
|
||||
- TCP Fast Open 是 TCP 握手阶段携带首包数据的优化,是否有效取决于系统和网络路径。
|
||||
|
||||
## 入站端口
|
||||
|
||||
入站端口表示 Xray 在本机监听哪些入口,让应用把流量交给 Xray。
|
||||
|
||||
当前 UI 只保留“规则代理入口”,普通 SOCKS/HTTP、VMess、API、自定义入站都隐藏。
|
||||
|
||||
### 监听地址
|
||||
|
||||
控制规则代理入口监听在哪个地址。
|
||||
|
||||
可选值:
|
||||
|
||||
```text
|
||||
127.0.0.1
|
||||
0.0.0.0
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- `127.0.0.1` 只允许本机访问。
|
||||
- `0.0.0.0` 允许局域网设备访问。
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
127.0.0.1
|
||||
```
|
||||
|
||||
注意事项:
|
||||
|
||||
- 如果只给本机程序使用,建议选择 `127.0.0.1`。
|
||||
- 如果要让其它设备连接这台机器的代理端口,才选择 `0.0.0.0`。
|
||||
- 选择 `0.0.0.0` 时需要注意防火墙和局域网安全。
|
||||
|
||||
### 规则 SOCKS 端口
|
||||
|
||||
生成带路由规则的 SOCKS5 入站。
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
20170
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- 应用连接该 SOCKS5 端口后,流量会按路由配置决定走 `proxy`、`direct` 或 `block`。
|
||||
- 端口设为 `0` 表示不生成该入站。
|
||||
|
||||
### 规则 HTTP 端口
|
||||
|
||||
生成带路由规则的 HTTP 代理入站。
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
20172
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- 应用连接该 HTTP 代理端口后,流量会按路由配置决定走 `proxy`、`direct` 或 `block`。
|
||||
- 端口设为 `0` 表示不生成该入站。
|
||||
|
||||
### Sniffing
|
||||
|
||||
控制 Xray 是否从连接中识别目标域名。
|
||||
|
||||
可选值:
|
||||
|
||||
```text
|
||||
disable
|
||||
http,tls
|
||||
http,tls,quic
|
||||
```
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
http,tls,quic
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- `disable` 表示关闭嗅探。
|
||||
- `http,tls` 表示识别 HTTP Host 和 TLS SNI。
|
||||
- `http,tls,quic` 表示额外识别 QUIC。
|
||||
|
||||
注意事项:
|
||||
|
||||
- 路由规则经常依赖域名匹配,开启 Sniffing 后更容易按域名正确分流。
|
||||
- 如果遇到特定服务兼容性问题,可以尝试降低到 `http,tls` 或关闭。
|
||||
|
||||
### Sniffing 仅用于路由
|
||||
|
||||
控制嗅探结果是否只用于路由判断。
|
||||
|
||||
可选值:
|
||||
|
||||
```text
|
||||
关闭
|
||||
开启
|
||||
```
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
关闭
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- `开启` 表示嗅探出的域名只用于路由,不改写实际连接目标。
|
||||
- `关闭` 表示按 Xray 默认 sniffing 行为处理。
|
||||
|
||||
注意事项:
|
||||
|
||||
- `开启` 通常更保守,兼容性更好。
|
||||
- 如果只希望 Sniffing 帮助规则匹配,可以开启。
|
||||
|
||||
### 隐藏默认项
|
||||
|
||||
当前 UI 隐藏以下入站设置,并在保存时固定为默认值:
|
||||
|
||||
```text
|
||||
socks_port = 0
|
||||
http_port = 0
|
||||
vmess_port = 0
|
||||
api.port = 0
|
||||
port_sharing = false
|
||||
domains_excluded = ""
|
||||
custom = []
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- 普通 SOCKS/HTTP 入站不生成,只生成规则 SOCKS/HTTP 入站。
|
||||
- VMess 入站不生成。
|
||||
- Xray API 入站不生成。
|
||||
- 端口共享开关不再单独存在,是否允许局域网访问由“监听地址”决定。
|
||||
- 排除嗅探域名暂不开放 UI。
|
||||
- 自定义入站暂不开放 UI。
|
||||
|
||||
## 路由
|
||||
|
||||
路由决定进入规则代理端口或透明代理入口的流量最终走哪个 outbound。
|
||||
|
||||
当前执行顺序:
|
||||
|
||||
```text
|
||||
1. 先匹配自定义规则
|
||||
2. 再匹配路由模式
|
||||
3. 最后默认走 proxy
|
||||
```
|
||||
|
||||
### 路由模式
|
||||
|
||||
可选值:
|
||||
|
||||
```text
|
||||
whitelist
|
||||
gfwlist
|
||||
proxy
|
||||
direct
|
||||
block
|
||||
```
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
whitelist
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- `whitelist` 表示白名单模式,常见目标是国内和私有地址直连,其它走代理。
|
||||
- `gfwlist` 表示 GFWList 模式,命中规则的目标走代理,其它直连。
|
||||
- `proxy` 表示全部走代理。
|
||||
- `direct` 表示全部直连。
|
||||
- `block` 表示全部阻断。
|
||||
|
||||
注意事项:
|
||||
|
||||
- 想简单全部走代理,选择 `proxy`。
|
||||
- 想国内直连、国外代理,选择 `whitelist`。
|
||||
- 想更保守地只代理规则命中的目标,选择 `gfwlist`。
|
||||
|
||||
### 自定义规则
|
||||
|
||||
自定义规则会优先于路由模式匹配。
|
||||
|
||||
语法:
|
||||
|
||||
```text
|
||||
domain(...)->proxy
|
||||
domain(...)->direct
|
||||
domain(...)->block
|
||||
ip(...)->proxy
|
||||
ip(...)->direct
|
||||
ip(...)->block
|
||||
```
|
||||
|
||||
示例:
|
||||
|
||||
```text
|
||||
domain(domain:example.com)->direct
|
||||
domain(geosite:google)->proxy
|
||||
ip(geoip:cn)->direct
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- `domain(...)` 表示按域名规则匹配。
|
||||
- `ip(...)` 表示按 IP 规则匹配。
|
||||
- `->proxy` 表示命中后走代理。
|
||||
- `->direct` 表示命中后直连。
|
||||
- `->block` 表示命中后阻断。
|
||||
|
||||
注意事项:
|
||||
|
||||
- 一行一条规则。
|
||||
- 空行和以 `#` 开头的行会被忽略。
|
||||
- 自定义规则只负责前置匹配,不再支持 `default:`。
|
||||
- 默认兜底固定为 `proxy`,不在 UI 中显示。
|
||||
|
||||
### 隐藏默认项
|
||||
|
||||
当前 UI 不显示默认规则。
|
||||
|
||||
保存时固定为:
|
||||
|
||||
```text
|
||||
default_rule = "proxy"
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- 自定义规则和路由模式都没有命中时,最终走 `proxy`。
|
||||
|
||||
当前 UI 也不显示旧的 `custom` / `routingA` 模式。
|
||||
|
||||
## DNS
|
||||
|
||||
DNS 设置控制 Xray 内置 DNS 模块如何解析域名,以及是否提供本地 DNS 入口。
|
||||
|
||||
### 查询策略
|
||||
|
||||
控制生成的 Xray `dns.queryStrategy`。
|
||||
|
||||
可选值:
|
||||
|
||||
```text
|
||||
默认
|
||||
UseIP
|
||||
UseIPv4
|
||||
UseIPv6
|
||||
```
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
UseIPv4
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- `默认` 表示不写入 `queryStrategy`,交给 Xray 默认行为。
|
||||
- `UseIP` 表示允许返回 IP,具体 IPv4 / IPv6 由 Xray 和系统环境决定。
|
||||
- `UseIPv4` 表示优先使用 IPv4 解析结果。
|
||||
- `UseIPv6` 表示优先使用 IPv6 解析结果。
|
||||
|
||||
注意事项:
|
||||
|
||||
- 当前 pyxray 默认使用 `UseIPv4`,避免 IPv6 网络不可用时出现连接失败。
|
||||
- 如果运行环境明确支持 IPv6,可以改成 `UseIP` 或 `UseIPv6`。
|
||||
|
||||
### 防污染模式
|
||||
|
||||
当前 UI 保留该字段,但 pyxray 暂未把它接入 Xray JSON 生成逻辑。
|
||||
交叉核对当前 `.v2rayA` 后,旧的 `antiPollution.GetExternalDNS` 和 `DropSpoofing.GetSetupCommands` 已不在透明代理 setup 路径中生效,因此这里先保持为保存项,不生成额外规则。
|
||||
|
||||
可选值:
|
||||
|
||||
```text
|
||||
closed
|
||||
none
|
||||
dnsforward
|
||||
doh
|
||||
advanced
|
||||
```
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
closed
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- `closed` 表示关闭防污染策略。
|
||||
- `none` 表示不使用额外防污染策略。
|
||||
- `dnsforward` 表示预期转发 DNS 请求,由程序接收 DNS 后再按规则转发到上游。
|
||||
- `doh` 表示预期使用 DNS-over-HTTPS,减少传统 UDP DNS 被劫持或污染的概率。
|
||||
- `advanced` 表示预留高级自定义 DNS 防污染策略。
|
||||
|
||||
注意事项:
|
||||
|
||||
- 当前阶段该字段只保存到 `settings.toml`。
|
||||
- 真正生效的是下方 DNS 规则、查询策略、禁用 fallback、本地 DNS 监听。
|
||||
|
||||
### 特殊模式
|
||||
|
||||
当前 UI 保留该字段,但 pyxray 暂未把它接入 Xray JSON 生成逻辑。
|
||||
当前 `.v2rayA` 代码里原 `specialMode` 的 supervisor / fakedns 相关逻辑已经移除,只保留 redirect 透明代理所需的本地 DNS 监听辅助函数。
|
||||
|
||||
可选值:
|
||||
|
||||
```text
|
||||
none
|
||||
supervisor
|
||||
fakedns
|
||||
```
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
none
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- `none` 表示不启用特殊 DNS 模式。
|
||||
- `supervisor` 表示预期监控 DNS 污染,并结合 sniffing 识别出的域名修正连接行为。
|
||||
- `fakedns` 表示预期使用 FakeDNS,为域名返回保留网段假 IP,再由代理反查假 IP 对应的原始域名。
|
||||
|
||||
注意事项:
|
||||
|
||||
- `fakedns` 通常需要配套 FakeDNS 地址池、透明代理或 TUN 路由逻辑。
|
||||
- 因为当前 `.v2rayA` 已移除 `supervisor` / `fakedns` 生成路径,pyxray 也不会为这些选项生成额外配置。
|
||||
|
||||
### 禁用 fallback
|
||||
|
||||
控制是否生成 Xray `dns.disableFallback`。
|
||||
|
||||
可选值:
|
||||
|
||||
```text
|
||||
关闭
|
||||
开启
|
||||
```
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
关闭
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- `关闭` 表示允许 Xray 在需要时使用 fallback DNS。
|
||||
- `开启` 表示生成 `disableFallback = true`,DNS 解析更严格地按配置规则执行。
|
||||
|
||||
注意事项:
|
||||
|
||||
- 开启后 DNS 行为更可控。
|
||||
- 如果某个 DNS 服务器解析失败,可能不会自动退到其它 DNS,容错更低。
|
||||
|
||||
### 监听本地 DNS
|
||||
|
||||
控制是否生成本地 UDP 53 DNS 入站。
|
||||
|
||||
可选值:
|
||||
|
||||
```text
|
||||
关闭
|
||||
开启
|
||||
```
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
开启
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- `开启` 时允许生成 `dns-in`,让本机 DNS 请求交给 Xray。
|
||||
- `关闭` 时 Xray 仍可在内部解析域名,但不会额外提供本地 DNS 入口。
|
||||
|
||||
注意事项:
|
||||
|
||||
- 本地 DNS 监听只有在透明代理开启且类型为 `redirect` 时才生成;透明代理关闭、`tproxy`、`system_proxy`、`tun` 都不会生成。
|
||||
- 非局域网共享时监听 `127.2.0.17:53/udp`;启用局域网共享时,会额外保留 `0.0.0.0:53/udp` 给局域网设备使用,并增加 `dns-in-local` 处理本机 DNS。
|
||||
- 监听 53 端口可能需要权限,且端口不能被其它 DNS 服务占用。
|
||||
|
||||
### DNS 规则
|
||||
|
||||
DNS 规则一行一条,格式:
|
||||
|
||||
```text
|
||||
server|domains|outbound
|
||||
```
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
localhost|geosite:private|direct
|
||||
223.5.5.5|geosite:cn|direct
|
||||
8.8.8.8||proxy
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- `server` 表示 DNS 服务器,例如 `localhost`、`223.5.5.5`、`8.8.8.8`、`https://dns.google/dns-query`。
|
||||
- `domains` 表示该 DNS 服务器负责解析哪些域名规则,空表示默认 DNS。
|
||||
- `outbound` 表示访问该 DNS 服务器本身时走哪个出口,常用 `direct` 或 `proxy`。
|
||||
|
||||
默认规则含义:
|
||||
|
||||
```text
|
||||
私有域名 -> localhost -> direct
|
||||
国内域名 -> 223.5.5.5 -> direct
|
||||
其它域名 -> 8.8.8.8 -> proxy
|
||||
```
|
||||
|
||||
### 隐藏默认项
|
||||
|
||||
当前 UI 不显示 DNS hosts。
|
||||
|
||||
保存和生成配置时保留默认值:
|
||||
|
||||
```text
|
||||
hosts."courier.push.apple.com" = ["1-courier.push.apple.com"]
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- `hosts` 类似 `/etc/hosts`,用于在 DNS 模块里固定或改写某些域名解析结果。
|
||||
- 当前保留该默认项主要用于兼容 Apple Push 相关域名。
|
||||
|
||||
当前 UI 也不显示出站组与自动更新设置。
|
||||
|
||||
保存时固定为:
|
||||
|
||||
```text
|
||||
outbounds.0.tag = "proxy"
|
||||
outbounds.0.probe_url = "https://www.gstatic.com/generate_204"
|
||||
outbounds.0.probe_interval = "60s"
|
||||
outbounds.0.type = "leastping"
|
||||
auto_update.gfwlist_auto_update_mode = "none"
|
||||
auto_update.gfwlist_auto_update_interval_hour = 0
|
||||
auto_update.subscription_auto_update_mode = "none"
|
||||
auto_update.subscription_auto_update_interval_hour = 0
|
||||
auto_update.proxy_mode_when_subscribe = "direct"
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- 当前 pyxray 只使用手动导入并选中的节点生成 `proxy` outbound。
|
||||
- GFWList 资源更新由“下载”页面负责,不在配置页提供自动更新策略。
|
||||
- 当前不关注订阅相关设置和逻辑。
|
||||
|
||||
## 透明代理
|
||||
|
||||
透明代理由两部分组成:
|
||||
|
||||
```text
|
||||
Xray transparent inbound + 系统流量劫持规则
|
||||
```
|
||||
|
||||
当前 pyxray 已经能生成 Xray transparent inbound,并能生成宿主机透明代理系统规则脚本。
|
||||
|
||||
系统规则脚本当前覆盖:
|
||||
|
||||
- `redirect` 的 legacy iptables 规则。
|
||||
- `redirect` 的 nftables 表配置和加载命令。
|
||||
- `tproxy` 的 legacy iptables 规则。
|
||||
- `tproxy` 的 nftables 表配置和加载命令。
|
||||
- `system_proxy` 的 HTTP/SOCKS 代理入口说明脚本。
|
||||
|
||||
注意事项:
|
||||
|
||||
- 当前只生成脚本,不自动执行系统命令。
|
||||
- 生成规则参考 `.v2rayA/service/core/iptables` 的链名、mark、路由表和端口语义。
|
||||
- 点击“生成配置”时,会在 `config.json` 同级目录下生成 `transparent/` 目录。
|
||||
- `transparent/ip-forward-apply.sh` 用于按配置打开或关闭 Linux IP Forward。
|
||||
- `transparent/resolv-hijack-setup.sh` 用于把 `/etc/resolv.conf` 指向 `127.2.0.17`。
|
||||
- `transparent/resolv-hijack-cleanup.sh` 用于恢复 v2rayA 风格的兜底 DNS。
|
||||
- `transparent/transparent-iptables-setup.sh` 用于安装 legacy iptables 规则。
|
||||
- `transparent/transparent-iptables-cleanup.sh` 用于清理 legacy iptables 规则。
|
||||
- `transparent/transparent-nft-setup.sh` 用于加载 nftables 规则。
|
||||
- `transparent/transparent-nft-cleanup.sh` 用于清理 nftables 规则。
|
||||
- `transparent/v2raya.nft` 是 nftables 表配置;仅在当前透明代理类型需要 nftables 表时生成。
|
||||
- `transparent/tinytun.yaml` 是 TinyTun 配置;仅在 `type = tun` 且透明代理未关闭时生成。
|
||||
|
||||
### 模式
|
||||
|
||||
控制透明代理入口进来的流量怎么走路由。
|
||||
|
||||
可选值:
|
||||
|
||||
```text
|
||||
close
|
||||
proxy
|
||||
whitelist
|
||||
gfwlist
|
||||
pac
|
||||
```
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
close
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- `close` 表示关闭透明代理,不生成 transparent inbound。
|
||||
- `proxy` 表示透明代理流量全部走代理。
|
||||
- `whitelist` 表示透明代理流量按白名单模式分流。
|
||||
- `gfwlist` 表示透明代理流量按 GFWList 模式分流。
|
||||
- `pac` 表示透明代理流量跟随“路由”配置中的路由模式。
|
||||
|
||||
### 类型
|
||||
|
||||
控制透明代理用哪种方式接收系统转发来的流量。
|
||||
|
||||
可选值:
|
||||
|
||||
```text
|
||||
redirect
|
||||
tproxy
|
||||
system_proxy
|
||||
tun
|
||||
```
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
redirect
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- `redirect` 使用 NAT REDIRECT,适合 TCP,Docker 友好。
|
||||
- `tproxy` 使用 TPROXY + fwmark + policy routing,支持 TCP/UDP,但规则复杂且 Docker 不友好。
|
||||
- `system_proxy` 生成 HTTP/SOCKS 代理入口,给系统代理或应用显式使用,不是真正的内核透明代理。
|
||||
- `tun` 表示生成 TinyTun 配置,由 TinyTun 创建 TUN 设备和系统路由。
|
||||
|
||||
注意事项:
|
||||
|
||||
- 当前建议优先使用 `redirect`。
|
||||
- 如果需要 UDP 能力,后续可以考虑 `tproxy`,但要接受更复杂的系统规则。
|
||||
- Docker 容器透明代理优先考虑 `redirect`。
|
||||
|
||||
### 透明代理端口
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
52345
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- `redirect` / `tproxy` 时,系统规则会把流量导到这个端口,Xray 的 `dokodemo-door` 在这里接收流量。
|
||||
- `system_proxy` 时,这个端口作为 HTTP 代理端口。
|
||||
- `tun` 时,当前 pyxray 里仍是占位性质。
|
||||
|
||||
注意事项:
|
||||
|
||||
- 应用通常不会主动连接这个端口,除非是 `system_proxy`。
|
||||
- 该端口不能被其它进程占用。
|
||||
|
||||
### 系统代理 SOCKS 端口
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
52306
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- 只有 `type = system_proxy` 时有意义。
|
||||
- 用作显式 SOCKS5 代理入口。
|
||||
|
||||
示例:
|
||||
|
||||
```text
|
||||
应用 -> 127.0.0.1:52306 SOCKS -> Xray -> proxy/direct
|
||||
```
|
||||
|
||||
### 启用 IP Forward
|
||||
|
||||
控制是否预期打开 Linux IP 转发能力。
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
关闭
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- 开启后,这台机器才能作为网关转发其它设备或容器的流量。
|
||||
- 如果只代理本机程序,一般不需要开启。
|
||||
|
||||
注意事项:
|
||||
|
||||
- 当前 pyxray 只保存该字段,还没有执行系统命令打开 IP Forward。
|
||||
- 后续实现系统规则时,可能对应 `net.ipv4.ip_forward=1`。
|
||||
|
||||
### TUN 自动路由
|
||||
|
||||
控制 TUN 模式下是否预期自动添加系统路由。
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
开启
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- 开启后,程序应自动添加路由,把系统流量导入 TUN 虚拟网卡。
|
||||
- 关闭后,需要用户自己配置路由。
|
||||
|
||||
注意事项:
|
||||
|
||||
- 当前 pyxray 会把该字段写入 `tinytun.yaml` 的 `tun.auto_route`。
|
||||
- 生成的 TinyTun 默认 TUN 地址参考 v2rayA:`198.18.0.1/32` 和 `fd00::1/128`。
|
||||
- 生成的 TinyTun SOCKS5 上游固定为 `127.0.0.1:52345`,对应 Xray 为 TUN 流量准备的本地 SOCKS 入站。
|
||||
- 当前 pyxray 只生成 `tinytun.yaml`,不会自动启动 TinyTun 进程。
|
||||
|
||||
### TPROXY 排除接口
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
docker*,veth*,wg*,ppp*,br-*
|
||||
```
|
||||
|
||||
含义:
|
||||
|
||||
- 只对 `type = tproxy` 有意义。
|
||||
- 生成 TPROXY 系统规则时,这些接口进来的流量会被跳过。
|
||||
- 常用于避免 Docker、veth、WireGuard、PPP、bridge 接口被错误劫持。
|
||||
|
||||
注意事项:
|
||||
|
||||
- 当前 UI 在 `type != tproxy` 时会禁用该输入。
|
||||
- 生成 TPROXY 系统规则脚本时会使用该字段。
|
||||
|
||||
### 当前阶段限制
|
||||
|
||||
当前透明代理配置能生成 Xray JSON 侧的 inbound / routing,也能生成 IP Forward、DNS 劫持、redirect / tproxy 系统规则脚本。
|
||||
|
||||
尚未实现:
|
||||
|
||||
- TUN 设备创建。
|
||||
- TUN 进程启动和生命周期管理。
|
||||
- Docker 容器透明代理规则。
|
||||
- 根据宿主机环境自动选择 iptables-legacy / iptables-nft。
|
||||
- 自动执行或回滚生成的系统规则脚本。
|
||||
Reference in New Issue
Block a user