Fixes links (#3)

This commit is contained in:
Jim Han 2021-03-17 08:27:02 +08:00 committed by GitHub
parent 53b54caa98
commit d4d8802647
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 45 additions and 41 deletions

View File

@ -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 列表中的地址。

View File

@ -27,7 +27,7 @@ FakeDNS 将使用此选项指定的 IP 块分配地址。
### 如何使用?
FakeDNS 本质上是一个 [DNS 服务器](../dns#serverobject),能够与任意 DNS 规则配合使用。
FakeDNS 本质上是一个 [DNS 服务器](./dns#serverobject),能够与任意 DNS 规则配合使用。
::: tip
只有将 DNS 查询路由到 FakeDNS才能使其发挥作用。

View File

@ -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 节点和其它节点对接的方式

View File

@ -93,7 +93,7 @@ Xray系统级别的策略
* 在其它平台上,默认值为 `512`
::: tip
`bufferSize` 选项会覆盖 [环境变量](env.md#每个连接的缓存大小)中 `Xray.ray.buffer.size` 的设定。
`bufferSize` 选项会覆盖 [环境变量](./examples/env#每个连接的缓存大小)中 `Xray.ray.buffer.size` 的设定。
:::

View File

@ -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

View File

@ -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

View File

@ -14,7 +14,7 @@
目前统计信息不需要任何参数,只要 `StatsObject` 项存在,内部的统计即会开启。
开启了统计以后, 只需在 [Policy](../../base/policy) 中开启对应的项,就可以统计对应的数据。
开启了统计以后, 只需在 [Policy](./policy) 中开启对应的项,就可以统计对应的数据。
## 获取统计信息

View File

@ -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 性能一骑绝尘的核心动力.<br>
XTLS 与 TLS 有相同的安全性, 配置方式也和TLS一致. 点击此处查看[XTLS的技术细节剖析](../../xtls)
XTLS 配置。XTLS 是 Xray 的原创黑科技, 也是使 Xray 性能一骑绝尘的核心动力.
XTLS 与 TLS 有相同的安全性, 配置方式也和TLS一致. 点击此处查看[XTLS的技术细节剖析](./examples/xtls)
::: danger
TLS / XTLS 是目前最安全的传输加密方案, 且外部看来流量类型和正常上网具有一致性.<br>
启用 XTLS 并且配置合适的XTLS流控模式, 可以在保持和 TLS 相同的安全性的前提下, 性能达到数倍甚至十几倍的提升.<br>
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"