From d4d880264791ec95149003efeb86cea61b6ae33d Mon Sep 17 00:00:00 2001
From: Jim Han <50871214+JimhHan@users.noreply.github.com>
Date: Wed, 17 Mar 2021 08:27:02 +0800
Subject: [PATCH] Fixes links (#3)
---
docs/config/dns.md | 24 ++++++++-------
docs/config/fakedns.md | 2 +-
docs/config/{inbounds.md => inbound.md} | 6 ++--
docs/config/policy.md | 2 +-
docs/config/reverse.md | 6 ++--
docs/config/routing.md | 4 +--
docs/config/stats.md | 2 +-
docs/config/transport.md | 40 ++++++++++++-------------
8 files changed, 45 insertions(+), 41 deletions(-)
rename docs/config/{inbounds.md => inbound.md} (96%)
diff --git a/docs/config/dns.md b/docs/config/dns.md
index 1a2024d12..a50c6d0f4 100644
--- a/docs/config/dns.md
+++ b/docs/config/dns.md
@@ -2,31 +2,31 @@
## DNS 服务器
+Xray 内置的 DNS 模块,主要有两大用途:
-如果为 Xray 配置了 DNS 服务器模块,主要有两大用途:
-
-- 在路由阶段, 解析域名为 IP, 并且根据域名解析得到的 IP 进行规则匹配以分流. 是否解析域名及分流和路由配置模块中"domainStrategy"的值有关, 只有在设置以下两种值时,才会使用内置 DNS 服务器进行 DNS 查询:
+- 在路由阶段, 解析域名为 IP, 并且根据域名解析得到的 IP 进行规则匹配以分流. 是否解析域名及分流和路由配置模块中 `domainStrategy` 的值有关, 只有在设置以下两种值时,才会使用内置 DNS 服务器进行 DNS 查询:
- "IPIfNonMatch", 请求一个域名时,进行路由里面的 domain 进行匹配,若无法匹配到结果,则对这个域名使用内置 DNS 服务器进行 DNS 查询,并且使用查询返回的 IP 地址再重新进行 IP 路由匹配。
- "IPOnDemand", 当匹配时碰到任何基于 IP 的规则,将域名立即解析为 IP 进行匹配。
- 解析目标地址进行连接。
- - 如 在 `freedom` 协议的 `outbound` 中,将`domainStrategy` 设置为 `UseIP`, 由此 outbound 发出的请求, 会先将域名通过内置服务器解析成 IP, 然后进行连接
+ - 如 在 `freedom` 出站中,将 `domainStrategy` 设置为 `UseIP`, 由此出站发出的请求, 会先将域名通过内置服务器解析成 IP, 然后进行连接。
+ - 如 在 `sockopt` 中,将 `domainStrategy` 设置为 `UseIP`, 此出站发起的系统连接,将先由内置服务器解析为 IP, 然后进行连接。
::: tip TIP 1
内置 DNS 服务器所发出的 DNS 查询请求,会自动根据路由配置进行转发。
:::
::: tip TIP 2
-只支持最基本的 IP 查询(A 和 AAAA 记录)。
+只支持最基本的 IP 查询(A 和 AAAA 记录)。其他查询不会进入内置 DNS 服务器。
:::
## DNS 处理流程
DNS 服务器配置模块可以配置多个DNS服务器, 并且指定优先匹配列表.
-1. 查询的域名与某个 DNS 服务器指定的域名列表匹配时,Xray 会优先使用这个 DNS 服务器进行查询
-2. 无匹配时, 按从上往下的顺序进行查询
+1. 查询的域名与某个 DNS 服务器指定的域名列表匹配时,Xray 会优先使用这个 DNS 服务器进行查询。
+2. 无匹配时, 按从上往下的顺序进行查询,并且会跳过 1 步骤中使用的最后一个服务器。
3. 只返回匹配 expectIPs 的 IP 列表。
DNS 服务器的处理流程示意图如下:
@@ -73,7 +73,7 @@ DNS 服务器的处理流程示意图如下:
- 正则表达式:由 `"regexp:"` 开始,余下部分是一个正则表达式。当此正则表达式匹配目标域名时,该规则生效。例如 "regexp:\\\\.goo.\*\\\\.com$" 匹配"www.google.com"或 "fonts.googleapis.com",但不匹配 "google.com"。
- 子域名 (推荐):由 `"domain:"` 开始,余下部分是一个域名。当此域名是目标域名或其子域名时,该规则生效。例如 “domain:xray.com” 匹配"www.xray.com"、“xray.com”,但不匹配 “wxray.com”。
- 子串:由 `"keyword:"` 开始,余下部分是一个字符串。当此字符串匹配目标域名中任意部分,该规则生效。比如 "keyword:sina.com" 可以匹配"sina.com"、"sina.com.cn" 和"www.sina.com",但不匹配 "sina.cn"。
-- 预定义域名列表:由 `"geosite:"` 开头,余下部分是一个名称,如 `geosite:google` 或者 `geosite:cn`。名称及域名列表参考 [预定义域名列表](../routing/#预定义域名列表)。
+- 预定义域名列表:由 `"geosite:"` 开头,余下部分是一个名称,如 `geosite:google` 或者 `geosite:cn`。名称及域名列表参考 [预定义域名列表](./routing/#预定义域名列表)。
>`servers`: \[string | [ServerObject](#serverobject) \]
@@ -97,6 +97,10 @@ DNS 服务器的处理流程示意图如下:
不同规则初始化得到的 DNS 客户端会在 Xray 启动日志中以 `info` 级别体现,比如 `local DOH`、`remote DOH` 和 `udp` 等模式。
:::
+::: tip TIP 3
+(v1.4.0+) 可以在 [日志](./log) 中打开 DNS 查询日志。
+:::
+
>`clientIp`: string
用于 DNS 查询时通知服务器以指定IP位置。不能是私有地址。
@@ -139,11 +143,11 @@ DNS 服务器端口,如 `53`。此项缺省时默认为 `53`。当使用 DOH
>`domains`: \[string\]
-一个域名列表,此列表包含的域名,将优先使用此服务器进行查询。域名格式和 [路由配置](../routing#ruleobject) 中相同。
+一个域名列表,此列表包含的域名,将优先使用此服务器进行查询。域名格式和 [路由配置](./routing#ruleobject) 中相同。
>`expectIPs`:\[string\]
-一个 IP 范围列表,格式和 [路由配置](../routing#ruleobject) 中相同。
+一个 IP 范围列表,格式和 [路由配置](./routing#ruleobject) 中相同。
当配置此项时,Xray DNS 会对返回的 IP 的进行校验,只返回包含 expectIPs 列表中的地址。
diff --git a/docs/config/fakedns.md b/docs/config/fakedns.md
index 81ec30d52..d8b6b34fa 100644
--- a/docs/config/fakedns.md
+++ b/docs/config/fakedns.md
@@ -27,7 +27,7 @@ FakeDNS 将使用此选项指定的 IP 块分配地址。
### 如何使用?
-FakeDNS 本质上是一个 [DNS 服务器](../dns#serverobject),能够与任意 DNS 规则配合使用。
+FakeDNS 本质上是一个 [DNS 服务器](./dns#serverobject),能够与任意 DNS 规则配合使用。
::: tip
只有将 DNS 查询路由到 FakeDNS,才能使其发挥作用。
diff --git a/docs/config/inbounds.md b/docs/config/inbound.md
similarity index 96%
rename from docs/config/inbounds.md
rename to docs/config/inbound.md
index 9924d6e2a..47ebb66cf 100644
--- a/docs/config/inbounds.md
+++ b/docs/config/inbound.md
@@ -1,6 +1,6 @@
# 入站代理
-入站连接用于接收发来的数据,可用的协议请见[inbound 可用协议列表](../../inbound-protocols)。
+入站连接用于接收发来的数据,可用的协议请见[inbound 可用协议列表](./inbounds)。
## InboundObject
@@ -52,13 +52,13 @@
>`protocol`: string
-连接协议名称,可选的协议类型见[inbound 可用协议列表](../../inbound-protocols)。
+连接协议名称,可选的协议类型见[inbound 可用协议列表](./inbounds)。
>`settings`: InboundConfigurationObject
具体的配置内容,视协议不同而不同。详见每个协议中的 `InboundConfigurationObject`。
->`streamSettings`: [StreamSettingsObject](../transport#streamsettingsobject)
+>`streamSettings`: [StreamSettingsObject](./transport#streamsettingsobject)
底层传输方式(transport)是当前 Xray 节点和其它节点对接的方式
diff --git a/docs/config/policy.md b/docs/config/policy.md
index 78f2b4d5f..1e227abab 100644
--- a/docs/config/policy.md
+++ b/docs/config/policy.md
@@ -93,7 +93,7 @@ Xray系统级别的策略
* 在其它平台上,默认值为 `512`。
::: tip
-`bufferSize` 选项会覆盖 [环境变量](env.md#每个连接的缓存大小)中 `Xray.ray.buffer.size` 的设定。
+`bufferSize` 选项会覆盖 [环境变量](./examples/env#每个连接的缓存大小)中 `Xray.ray.buffer.size` 的设定。
:::
diff --git a/docs/config/reverse.md b/docs/config/reverse.md
index 693ca213d..c3b84468b 100644
--- a/docs/config/reverse.md
+++ b/docs/config/reverse.md
@@ -11,7 +11,7 @@
* `bridge` 会根据流量的大小进行动态的负载均衡。
::: tip
-反向代理默认已开启 [Mux](/develop/protocols/muxcool/),请不要在其用到的outbound上再次开启 Mux。
+反向代理默认已开启 [Mux](../development/protocols/muxcool/),请不要在其用到的outbound上再次开启 Mux。
:::
::: warning
@@ -65,7 +65,7 @@
> `tag`: string
-所有由 `bridge` 发出的连接,都会带有这个标识。可以在 [路由配置](../routing) 中使用 `inboundTag` 进行识别。
+所有由 `bridge` 发出的连接,都会带有这个标识。可以在 [路由配置](./routing) 中使用 `inboundTag` 进行识别。
> `domain`: string
@@ -86,7 +86,7 @@
> `tag`: string
-`portal` 的标识。在 [路由配置](../routing) 中使用 `outboundTag` 将流量转发到这个 `portal`。
+`portal` 的标识。在 [路由配置](./routing) 中使用 `outboundTag` 将流量转发到这个 `portal`。
> `domain`: string
diff --git a/docs/config/routing.md b/docs/config/routing.md
index 7270fe792..f0196b563 100644
--- a/docs/config/routing.md
+++ b/docs/config/routing.md
@@ -103,7 +103,7 @@
* 子域名(推荐):由 `"domain:"` 开始,余下部分是一个域名。当此域名是目标域名或其子域名时,该规则生效。例如 "domain:xray.com" 匹配"www.xray.com"、"xray.com",但不匹配 "wxray.com"。
* 完整匹配:由 `"full:"` 开始,余下部分是一个域名。当此域名完整匹配目标域名时,该规则生效。例如 "full:xray.com" 匹配 "xray.com" 但不匹配"www.xray.com"。
* 预定义域名列表:由 `"geosite:"` 开头,余下部分是一个名称,如 `geosite:google` 或者 `geosite:cn`。名称及域名列表参考 [预定义域名列表](#预定义域名列表)。
-* 从文件中加载域名:形如 `"ext:file:tag"`,必须以 `ext:`(小写)开头,后面跟文件名和标签,文件存放在 [资源目录](../../env#资源文件路径) 中,文件格式与 `geosite.dat` 相同,标签必须在文件中存在。
+* 从文件中加载域名:形如 `"ext:file:tag"`,必须以 `ext:`(小写)开头,后面跟文件名和标签,文件存放在 [资源目录](./examples/env#资源文件路径) 中,文件格式与 `geosite.dat` 相同,标签必须在文件中存在。
::: tip
`"ext:geoip.dat:cn"` 等价于 `"geoip:cn"`
@@ -117,7 +117,7 @@
* [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing):形如 `"10.0.0.0/8"`。
* 预定义IP列表:此列表预置于每一个 Xray 的安装包中,文件名为 `geoip.dat`。使用方式形如 `"geoip:cn"`,必须以 `geoip:`(小写)开头,后面跟双字符国家代码,支持几乎所有可以上网的国家。
* 特殊值:`"geoip:private"`,包含所有私有地址,如 `127.0.0.1`。
-* 从文件中加载 IP:形如 `"ext:file:tag"`,必须以 `ext:`(小写)开头,后面跟文件名和标签,文件存放在 [资源目录](../../env#资源文件路径) 中,文件格式与 `geoip.dat` 相同标签必须在文件中存在。
+* 从文件中加载 IP:形如 `"ext:file:tag"`,必须以 `ext:`(小写)开头,后面跟文件名和标签,文件存放在 [资源目录](./examples/env#资源文件路径) 中,文件格式与 `geoip.dat` 相同标签必须在文件中存在。
>`port`:number | string
diff --git a/docs/config/stats.md b/docs/config/stats.md
index c107d14eb..c2aa08514 100644
--- a/docs/config/stats.md
+++ b/docs/config/stats.md
@@ -14,7 +14,7 @@
目前统计信息不需要任何参数,只要 `StatsObject` 项存在,内部的统计即会开启。
-开启了统计以后, 只需在 [Policy](../../base/policy) 中开启对应的项,就可以统计对应的数据。
+开启了统计以后, 只需在 [Policy](./policy) 中开启对应的项,就可以统计对应的数据。
## 获取统计信息
diff --git a/docs/config/transport.md b/docs/config/transport.md
index 196eecf5d..d2baaa180 100644
--- a/docs/config/transport.md
+++ b/docs/config/transport.md
@@ -31,31 +31,31 @@
}
```
-> `tcpSettings`: [TcpObject](../../transports/tcp)
+> `tcpSettings`: [TcpObject](./transports/tcp)
针对 TCP 连接的配置。
-> `kcpSettings`: [KcpObject](../../transports/mkcp)
+> `kcpSettings`: [KcpObject](./transports/mkcp)
针对 mKCP 连接的配置。
-> `wsSettings`: [WebSocketObject](../../transports/websocket)
+> `wsSettings`: [WebSocketObject](./transports/websocket)
针对 WebSocket 连接的配置。
-> `httpSettings`: [HttpObject](../../transports/h2)
+> `httpSettings`: [HttpObject](./transports/h2)
针对 HTTP/2 连接的配置。
-> `quicSettings`: [QuicObject](../../transports/quic)
+> `quicSettings`: [QuicObject](./transports/quic)
针对 QUIC 连接的配置。
-> `grpcSettings`: [GRPCObject](../../transports/grpc)
+> `grpcSettings`: [GRPCObject](./transports/grpc)
针对 gRPC 连接的配置。
-> `dsSettings`: [DomainSocketObject](../../transports/domainsocket)
+> `dsSettings`: [DomainSocketObject](./transports/domainsocket)
针对 Domain Socket 连接的配置。
@@ -96,7 +96,7 @@
是否启用传输层加密,支持的选项有
- `"none"` 表示不加密(默认值)
- `"tls"` 表示使用 [TLS](https://en.wikipedia.org/wiki/base/transport_Layer_Security)。
-- `"xtls"` 表示使用 [XTLS](../../xtls)。
+- `"xtls"` 表示使用 [XTLS](./examples/xtls)。
> `tlsSettings`: [TLSObject](#tlsobject)
@@ -104,40 +104,40 @@ TLS 配置。TLS 由 Golang 提供,通常情况下TLS协商的结果为使用
> `xtlsSettings`: [XTLSObject](#tlsobject)
-XTLS 配置。XTLS 是 Xray 的原创黑科技, 也是使 Xray 性能一骑绝尘的核心动力.
-XTLS 与 TLS 有相同的安全性, 配置方式也和TLS一致. 点击此处查看[XTLS的技术细节剖析](../../xtls)
+XTLS 配置。XTLS 是 Xray 的原创黑科技, 也是使 Xray 性能一骑绝尘的核心动力.
+XTLS 与 TLS 有相同的安全性, 配置方式也和TLS一致. 点击此处查看[XTLS的技术细节剖析](./examples/xtls)
::: danger
-TLS / XTLS 是目前最安全的传输加密方案, 且外部看来流量类型和正常上网具有一致性.
-启用 XTLS 并且配置合适的XTLS流控模式, 可以在保持和 TLS 相同的安全性的前提下, 性能达到数倍甚至十几倍的提升.
+TLS / XTLS 是目前最安全的传输加密方案, 且外部看来流量类型和正常上网具有一致性.
+启用 XTLS 并且配置合适的XTLS流控模式, 可以在保持和 TLS 相同的安全性的前提下, 性能达到数倍甚至十几倍的提升.
当 `security` 的值从'tls'改为'xtls'时, 只需将`tlsSettings` 修改成为 `xtlsSettings`
:::
-> `tcpSettings`: [TcpObject](../../transports/tcp)
+> `tcpSettings`: [TcpObject](./transports/tcp)
当前连接的 TCP 配置,仅当此连接使用 TCP 时有效。配置内容与上面的全局配置相同。
-> `kcpSettings`: [KcpObject](../../transports/mkcp)
+> `kcpSettings`: [KcpObject](./transports/mkcp)
当前连接的 mKCP 配置,仅当此连接使用 mKCP 时有效。配置内容与上面的全局配置相同。
-> `wsSettings`: [WebSocketObject](../../transports/websocket)
+> `wsSettings`: [WebSocketObject](./transports/websocket)
当前连接的 WebSocket 配置,仅当此连接使用 WebSocket 时有效。配置内容与上面的全局配置相同。
-> `httpSettings`: [HttpObject](../../transports/h2)
+> `httpSettings`: [HttpObject](./transports/h2)
当前连接的 HTTP/2 配置,仅当此连接使用 HTTP/2 时有效。配置内容与上面的全局配置相同。
-> `quicSettings`: [QUICObject](../../transports/quic)
+> `quicSettings`: [QUICObject](./transports/quic)
当前连接的 QUIC 配置,仅当此连接使用 QUIC 时有效。配置内容与上面的全局配置相同。
-> `grpcSettings`: [GRPCObject](../../transports/grpc)
+> `grpcSettings`: [GRPCObject](./transports/grpc)
当前连接的 gRPC 配置,仅当此连接使用 gRPC 时有效。配置内容与上面的全局配置相同。
-> `dsSettings`: [DomainSocketObject](../../transports/domainsocket)
+> `dsSettings`: [DomainSocketObject](./transports/domainsocket)
当前连接的 Domain socket 配置,仅当此连接使用 Domain socket 时有效。配置内容与上面的全局配置相同。
@@ -386,7 +386,7 @@ ocspStapling 检查更新时间间隔。 单位:秒
透明代理需要 Root 或 CAP\_NET\_ADMIN 权限。
::: danger
-当 [Dokodemo-door](../../inbound-protocols/dokodemo) 中指定了 `followRedirect`为`true`,且 Sockopt设置中的`tproxy` 为空时,Sockopt设置中的`tproxy` 的值会被设为 `"redirect"`。
+当 [Dokodemo-door](./inbounds/dokodemo) 中指定了 `followRedirect`为`true`,且 Sockopt设置中的`tproxy` 为空时,Sockopt设置中的`tproxy` 的值会被设为 `"redirect"`。
:::
> `domainStrategy`: "AsIs" | "UseIP" | "UseIPv4" | "UseIPv6"