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"