mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2026-09-22 22:38:05 +03:00
EN Document: Fixed broken links in the documents
This commit is contained in:
@@ -62,13 +62,13 @@ If the domain currently being queried:
|
||||
"clientIP": "1.2.3.4"
|
||||
},
|
||||
{
|
||||
"address": "[https://8.8.8.8/dns-query](https://8.8.8.8/dns-query)",
|
||||
"address": "https://8.8.8.8/dns-query",
|
||||
"domains": ["geosite:netflix"],
|
||||
"skipFallback": true,
|
||||
"queryStrategy": "UseIPv4"
|
||||
},
|
||||
{
|
||||
"address": "[https://1.1.1.1/dns-query](https://1.1.1.1/dns-query)",
|
||||
"address": "https://1.1.1.1/dns-query",
|
||||
"domains": ["geosite:openai"],
|
||||
"skipFallback": true,
|
||||
"queryStrategy": "UseIPv6"
|
||||
@@ -152,9 +152,9 @@ The default value `UseIP` allows querying both A + AAAA records. When a query in
|
||||
```json
|
||||
"dns": {
|
||||
"servers": [
|
||||
"[https://1.1.1.1/dns-query](https://1.1.1.1/dns-query)",
|
||||
"https://1.1.1.1/dns-query",
|
||||
{
|
||||
"address": "[https://8.8.8.8/dns-query](https://8.8.8.8/dns-query)",
|
||||
"address": "https://8.8.8.8/dns-query",
|
||||
"domains": [
|
||||
"geosite:netflix"
|
||||
],
|
||||
@@ -162,7 +162,7 @@ The default value `UseIP` allows querying both A + AAAA records. When a query in
|
||||
"queryStrategy": "UseIPv4" // netflix domain queries A record
|
||||
},
|
||||
{
|
||||
"address": "[https://1.1.1.1/dns-query](https://1.1.1.1/dns-query)",
|
||||
"address": "https://1.1.1.1/dns-query",
|
||||
"domains": [
|
||||
"geosite:openai"
|
||||
],
|
||||
@@ -191,9 +191,9 @@ Global `"queryStrategy": "UseIP"` does not conflict with sub-item `"queryStrateg
|
||||
```json
|
||||
"dns": {
|
||||
"servers": [
|
||||
"[https://1.1.1.1/dns-query](https://1.1.1.1/dns-query)",
|
||||
"https://1.1.1.1/dns-query",
|
||||
{
|
||||
"address": "[https://8.8.8.8/dns-query](https://8.8.8.8/dns-query)",
|
||||
"address": "https://8.8.8.8/dns-query",
|
||||
"domains": [
|
||||
"geosite:netflix"
|
||||
],
|
||||
|
||||
@@ -307,10 +307,7 @@ Adjusts the underlying socket options of the connection used when querying ECH r
|
||||
"show": false,
|
||||
"target": "example.com:443",
|
||||
"xver": 0,
|
||||
"serverNames": [
|
||||
"example.com",
|
||||
"[www.example.com](https://www.example.com)"
|
||||
],
|
||||
"serverNames": ["example.com", "www.example.com"],
|
||||
"privateKey": "",
|
||||
"minClientVer": "",
|
||||
"maxClientVer": "",
|
||||
|
||||
@@ -13,7 +13,7 @@ Install Golang: [golang.org/doc/install](https://golang.org/doc/install)
|
||||
## Pull Xray Source Code
|
||||
|
||||
```bash
|
||||
git clone [https://github.com/XTLS/Xray-core.git](https://github.com/XTLS/Xray-core.git)
|
||||
git clone https://github.com/XTLS/Xray-core.git
|
||||
cd Xray-core && go mod download
|
||||
```
|
||||
|
||||
@@ -22,7 +22,7 @@ cd Xray-core && go mod download
|
||||
Note: In network environments where Google cannot be accessed normally, dependencies cannot be pulled correctly. You need to set `GOPROXY` first:
|
||||
|
||||
```bash
|
||||
go env -w GOPROXY=[https://goproxy.io](https://goproxy.io),direct
|
||||
go env -w GOPROXY=https://goproxy.io,direct
|
||||
```
|
||||
|
||||
## Build Binary
|
||||
|
||||
@@ -14,7 +14,7 @@ You can submit your changes to the documentation by following these steps:
|
||||
However, for complex edits, please use VSCode. Clone the documentation from your forked repository, for example:
|
||||
|
||||
```bash
|
||||
git clone [https://github.com/your-github-username/Xray-docs-next.git](https://github.com/your-github-username/Xray-docs-next.git)
|
||||
git clone https://github.com/your-github-username/Xray-docs-next.git
|
||||
```
|
||||
|
||||
3. Create a new branch based on the `main` branch, for example:
|
||||
|
||||
@@ -24,7 +24,7 @@ Additionally, I trust that by now you are gradually becoming familiar with basic
|
||||
2. Run the installation script
|
||||
|
||||
```shell
|
||||
wget -O - [https://get.acme.sh](https://get.acme.sh) | sh
|
||||
wget -O - https://get.acme.sh | sh
|
||||
```
|
||||
|
||||
3. Make the `acme.sh` command effective
|
||||
@@ -62,10 +62,10 @@ Before officially applying for a certificate, let's use a test command (`--issue
|
||||
2. You should ultimately see a log similar to this:
|
||||
|
||||
```log
|
||||
[Wed 30 Dec 2022 04:25:12 AM EST] Using ACME_DIRECTORY: [https://acme-staging-v02.api.letsencrypt.org/directory](https://acme-staging-v02.api.letsencrypt.org/directory)
|
||||
[Wed 30 Dec 2022 04:25:13 AM EST] Using CA: [https://acme-staging-v02.api.letsencrypt.org/directory](https://acme-staging-v02.api.letsencrypt.org/directory)
|
||||
[Wed 30 Dec 2022 04:25:12 AM EST] Using ACME_DIRECTORY: https://acme-staging-v02.api.letsencrypt.org/directory
|
||||
[Wed 30 Dec 2022 04:25:13 AM EST] Using CA: https://acme-staging-v02.api.letsencrypt.org/directory
|
||||
[Wed 30 Dec 2022 04:25:13 AM EST] Create account key ok.
|
||||
[Wed 30 Dec 2022 04:25:13 AM EST] Registering account: [https://acme-staging-v02.api.letsencrypt.org/directory](https://acme-staging-v02.api.letsencrypt.org/directory)
|
||||
[Wed 30 Dec 2022 04:25:13 AM EST] Registering account: https://acme-staging-v02.api.letsencrypt.org/directory
|
||||
[Wed 30 Dec 2022 04:25:13 AM EST] Registered
|
||||
[Wed 30 Dec 2022 04:25:13 AM EST] ACCOUNT_THUMBPRINT='CU6qmPKuRqhyTAIrF4swosR375194z_1ddUlWef8xDc'
|
||||
[Wed 30 Dec 2022 04:25:13 AM EST] Creating domain key
|
||||
@@ -78,9 +78,9 @@ Before officially applying for a certificate, let's use a test command (`--issue
|
||||
[Wed 30 Dec 2022 04:25:25 AM EST] Success
|
||||
[Wed 30 Dec 2022 04:25:25 AM EST] Verify finished, start to sign.
|
||||
[Wed 30 Dec 2022 04:25:25 AM EST] Lets finalize the order.
|
||||
[Wed 30 Dec 2022 04:25:25 AM EST] Le_OrderFinalize='[https://acme-staging-v02.api.letsencrypt.org/acme/finalize/490205995/7730242871](https://acme-staging-v02.api.letsencrypt.org/acme/finalize/490205995/7730242871)'
|
||||
[Wed 30 Dec 2022 04:25:25 AM EST] Le_OrderFinalize='https://acme-staging-v02.api.letsencrypt.org/acme/finalize/490205995/7730242871'
|
||||
[Wed 30 Dec 2022 04:25:25 AM EST] Downloading cert.
|
||||
[Wed 30 Dec 2022 04:25:25 AM EST] Le_LinkCert='[https://acme-staging-v02.api.letsencrypt.org/acme/cert/xujss5xt8i38waubafz2xujss5xt8i38waubz2](https://acme-staging-v02.api.letsencrypt.org/acme/cert/xujss5xt8i38waubafz2xujss5xt8i38waubz2)'
|
||||
[Wed 30 Dec 2022 04:25:25 AM EST] Le_LinkCert='https://acme-staging-v02.api.letsencrypt.org/acme/cert/xujss5xt8i38waubafz2xujss5xt8i38waubz2'
|
||||
[Wed 30 Dec 2022 15:21:52 AM EST] Cert success.
|
||||
--BEGIN CERTIFICAT--
|
||||
sxlYqPvWreKgD5b8JyOQX0Yg2MLoRUoDyqVkd31PthIiwzdckoh5eD3JU7ysYBtN
|
||||
@@ -127,7 +127,7 @@ Before officially applying for a certificate, let's use a test command (`--issue
|
||||
|
||||
```log
|
||||
vpsadmin@vps-server:~$ acme.sh --issue -d subdomain.yourdomain.com -w /home/vpsadmin/www/webpage --keylength ec-256
|
||||
[Wed 30 Dec 2022 15:22:51 AM EST] Using CA: [https://acme-v02.api.letsencrypt.org/directory](https://acme-v02.api.letsencrypt.org/directory)
|
||||
[Wed 30 Dec 2022 15:22:51 AM EST] Using CA: https://acme-v02.api.letsencrypt.org/directory
|
||||
[Wed 30 Dec 2022 15:22:51 AM EST] Creating domain key
|
||||
[Wed 30 Dec 2022 15:22:51 AM EST] The domain key is here: /home/vpsadmin/.acme.sh/subdomain.yourdomain.com_ecc/subdomain.yourdomain.com.key
|
||||
[Wed 30 Dec 2022 15:22:51 AM EST] Single domain='subdomain.yourdomain.com'
|
||||
@@ -138,9 +138,9 @@ Before officially applying for a certificate, let's use a test command (`--issue
|
||||
[Wed 30 Dec 2022 15:22:51 AM EST] Success
|
||||
[Wed 30 Dec 2022 15:22:51 AM EST] Verify finished, start to sign.
|
||||
[Wed 30 Dec 2022 15:22:51 AM EST] Lets finalize the order.
|
||||
[Wed 30 Dec 2022 15:22:51 AM EST] Le_OrderFinalize='[https://acme-v02.api.letsencrypt.org/acme/finalize/490205996/7730242872](https://acme-v02.api.letsencrypt.org/acme/finalize/490205996/7730242872)'
|
||||
[Wed 30 Dec 2022 15:22:51 AM EST] Le_OrderFinalize='https://acme-v02.api.letsencrypt.org/acme/finalize/490205996/7730242872'
|
||||
[Wed 30 Dec 2022 15:22:51 AM EST] Downloading cert.
|
||||
[Wed 30 Dec 2022 15:22:51 AM EST] Le_LinkCert='[https://acme-v02.api.letsencrypt.org/acme/cert/vsxvk0oldnuobe51ayxz4dms62sk2dwmw9zhuw](https://acme-v02.api.letsencrypt.org/acme/cert/vsxvk0oldnuobe51ayxz4dms62sk2dwmw9zhuw)'
|
||||
[Wed 30 Dec 2022 15:22:51 AM EST] Le_LinkCert='https://acme-v02.api.letsencrypt.org/acme/cert/vsxvk0oldnuobe51ayxz4dms62sk2dwmw9zhuw'
|
||||
[Wed 30 Dec 2022 15:22:51 AM EST] Cert success.
|
||||
--BEGIN CERTIFICAT--
|
||||
sxlYqPvWreKgD5b8JyOQX0Yg2MLoRUoDyqVkd31PthIiwzdckoh5eD3JU7ysYBtN
|
||||
|
||||
@@ -34,7 +34,7 @@ At the time of writing, the installation script has a few small bugs when using
|
||||
2. Download the installation script locally:
|
||||
|
||||
```shell
|
||||
wget [https://github.com/XTLS/Xray-install/raw/main/install-release.sh](https://github.com/XTLS/Xray-install/raw/main/install-release.sh)
|
||||
wget https://github.com/XTLS/Xray-install/raw/main/install-release.sh
|
||||
```
|
||||
|
||||
3. Execute the installation command:
|
||||
@@ -190,8 +190,8 @@ First, various configurations can refer to the [official VLESS configuration exa
|
||||
|
||||
```json
|
||||
// REFERENCE:
|
||||
// [https://github.com/XTLS/Xray-examples](https://github.com/XTLS/Xray-examples)
|
||||
// [https://xtls.github.io/config/](https://xtls.github.io/config/)
|
||||
// https://github.com/XTLS/Xray-examples
|
||||
// https://xtls.github.io/config/
|
||||
// Common config files, whether server or client, have 5 parts. Plus newbie interpretation:
|
||||
// ┌─ 1*log Log Settings - What to write, where to write (evidence available when errors occur)
|
||||
// ├─ 2_dns DNS Settings - How to query DNS (prevent DNS pollution, prevent snooping, avoid matching domestic sites to foreign servers, etc.)
|
||||
|
||||
@@ -61,7 +61,7 @@ The following operations need to be performed as the root user; using sudo may c
|
||||
:::
|
||||
|
||||
```bash
|
||||
curl [https://get.acme.sh](https://get.acme.sh) | sh # Install acme.sh
|
||||
curl https://get.acme.sh | sh # Install acme.sh
|
||||
export CF_Token="sdfsdfsdfljlbjkljlkjsdfoiwje" # Set API Token variable
|
||||
acme.sh --issue -d example.com -d *.example.com --dns dns_cf # Apply for certificate using DNS-01 validation
|
||||
mkdir /etc/ssl/xray # Create directory for certificates
|
||||
@@ -216,7 +216,7 @@ Nginx will be installed via the official repository.
|
||||
sudo apt install curl gnupg2 ca-certificates lsb-release
|
||||
echo "deb [arch=amd64] [http://nginx.org/packages/ubuntu](http://nginx.org/packages/ubuntu) `lsb_release -cs` nginx" \
|
||||
| sudo tee /etc/apt/sources.list.d/nginx.list
|
||||
curl -fsSL [https://nginx.org/keys/nginx_signing.key](https://nginx.org/keys/nginx_signing.key) | sudo apt-key add -
|
||||
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
|
||||
sudo apt update
|
||||
sudo apt install nginx
|
||||
```
|
||||
@@ -260,7 +260,7 @@ To install Caddy, please refer to [Install — Caddy Documentation](https://cadd
|
||||
To enable Caddy to obtain the visitor's real IP, you need to compile Caddy with the Proxy Protocol module. It is recommended to compile online directly on the Caddy website.
|
||||
|
||||
```bash
|
||||
sudo curl -o /usr/bin/caddy "[https://caddyserver.com/api/download?os=linux&arch=amd64&p=github.com%2Fmastercactapus%2Fcaddy2-proxyprotocol&idempotency=79074247675458](https://caddyserver.com/api/download?os=linux&arch=amd64&p=github.com%2Fmastercactapus%2Fcaddy2-proxyprotocol&idempotency=79074247675458)"
|
||||
sudo curl -o /usr/bin/caddy "https://caddyserver.com/api/download?os=linux&arch=amd64&p=github.com%2Fmastercactapus%2Fcaddy2-proxyprotocol&idempotency=79074247675458"
|
||||
sudo chmod +x /usr/bin/caddy
|
||||
```
|
||||
|
||||
|
||||
@@ -366,7 +366,7 @@ defaults
|
||||
timeout server 300s
|
||||
|
||||
frontend tls-in
|
||||
bind :::443 ssl crt /path/to/pem alpn h2,http/1.1 # haproxy uses pem for ssl decryption. pem is obtained by: cat [www.example.com](https://www.example.com).crt [www.example.com](https://www.example.com).key > [www.example.com](https://www.example.com).pem
|
||||
bind :::443 ssl crt /path/to/pem alpn h2,http/1.1 # haproxy uses pem for ssl decryption. pem is obtained by: cat www.example.com.crt www.example.com.key > www.example.com.pem
|
||||
default_backend xray
|
||||
tcp-request inspect-delay 5s
|
||||
tcp-request content accept if HTTP
|
||||
@@ -409,7 +409,7 @@ global
|
||||
group root
|
||||
daemon
|
||||
|
||||
# Adjust HTTP/2 performance. Set relevant items when encountering HTTP/2 performance issues. For more settings, see the tune.h2 section of the Haproxy documentation [https://docs.haproxy.org/2.7/configuration.html](https://docs.haproxy.org/2.7/configuration.html)
|
||||
# Adjust HTTP/2 performance. Set relevant items when encountering HTTP/2 performance issues. For more settings, see the tune.h2 section of the Haproxy documentation https://docs.haproxy.org/2.7/configuration.html
|
||||
tune.h2.initial-window-size 536870912 # Initial window size. Recommended to set. Default is 65536 bytes. Larger values may require some load time during traffic bursts. Adjust based on network speed.
|
||||
tune.h2.max-concurrent-streams 512 # Number of multiplexed streams. Set as needed. Default is 100. Generally no need to set (official recommendation is not to change).
|
||||
|
||||
@@ -653,7 +653,7 @@ defaults
|
||||
timeout server 300s
|
||||
|
||||
frontend tls-in
|
||||
bind :::443 tfo allow-0rtt ssl crt /path/to/server.pem verify optional ca-file /path/to/fullchain.crt crt /path/to/[www.example.com](https://www.example.com).pem alpn h2,http/1.1
|
||||
bind :::443 tfo allow-0rtt ssl crt /path/to/server.pem verify optional ca-file /path/to/fullchain.crt crt /path/to/www.example.com.pem alpn h2,http/1.1
|
||||
use_backend xray if { ssl_fc_sni tunnel.example.com } { ssl_c_used } { ssl_fc_alpn -i h2 } { path_beg /tunnel }
|
||||
use_backend server1 if { ssl_fc_sni atunnel.example.com } { ssl_c_used } { ssl_fc_alpn -i h2 } { path_beg /path2 }
|
||||
use_backend server2 if { ssl_fc_sni btunnel.example.com } { ssl_c_used } { ssl_fc_alpn -i h2 } { path_beg /path3 }
|
||||
|
||||
@@ -76,7 +76,7 @@ If the Xray program is not installed on the side router, you can manually downlo
|
||||
"port": 443,
|
||||
"users": [
|
||||
{
|
||||
"id": "uuid", // Fill in UUID. Can be generated by typing 'xray uuid' in terminal; Arbitrary strings are also supported ([https://xtls.github.io/config/inbounds/vless.html#clientobject](https://xtls.github.io/config/inbounds/vless.html#clientobject))
|
||||
"id": "uuid", // Fill in UUID. Can be generated by typing 'xray uuid' in terminal; Arbitrary strings are also supported (https://xtls.github.io/en/config/inbounds/vless.html#clientobject)
|
||||
"encryption": "none",
|
||||
"flow": "xtls-rprx-vision"
|
||||
}
|
||||
@@ -94,7 +94,7 @@ If the Xray program is not installed on the side router, you can manually downlo
|
||||
// Note: must be tlsSettings when using xtls-rprx-vision flow
|
||||
"allowInsecure": false,
|
||||
"serverName": "yourdomain.domain", // Change to your own domain
|
||||
"fingerprint": "chrome" // Recommended to check Release notes for this setting: [https://github.com/XTLS/Xray-core/releases/tag/v1.7.3](https://github.com/XTLS/Xray-core/releases/tag/v1.7.3)
|
||||
"fingerprint": "chrome" // Recommended to check Release notes for this setting: https://github.com/XTLS/Xray-core/releases/tag/v1.7.3
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -136,13 +136,13 @@ If the Xray program is not installed on the side router, you can manually downlo
|
||||
"Your_VPS_Domain": "Your_VPS_IP" // If 'address' in outbound proxy is a domain: fill VPS IPv4 if you want proxy via IPv4, fill VPS IPv6 if via IPv6; If 'address' is an IP, skip this line.
|
||||
},
|
||||
"servers": [
|
||||
"[https://1.1.1.1/dns-query](https://1.1.1.1/dns-query)",
|
||||
"https://1.1.1.1/dns-query",
|
||||
{
|
||||
"address": "119.29.29.29",
|
||||
"domains": ["geosite:cn"],
|
||||
"expectIPs": ["geoip:cn"]
|
||||
},
|
||||
"[https://dns.google/dns-query](https://dns.google/dns-query)",
|
||||
"https://dns.google/dns-query",
|
||||
"223.5.5.5",
|
||||
"localhost"
|
||||
]
|
||||
@@ -211,7 +211,7 @@ If the Xray program is not installed on the side router, you can manually downlo
|
||||
"domainStrategy": "IPIfNonMatch",
|
||||
"rules": [
|
||||
{
|
||||
// Block CN IP to improve security, or you can route CN traffic into Warp, see [https://xtls.github.io/document/level-2/warp.html](https://xtls.github.io/document/level-2/warp.html)
|
||||
// Block CN IP to improve security, or you can route CN traffic into Warp, see https://xtls.github.io/en/document/level-2/warp.html
|
||||
"ip": ["geoip:cn"],
|
||||
"outboundTag": "block"
|
||||
}
|
||||
@@ -242,7 +242,7 @@ If the Xray program is not installed on the side router, you can manually downlo
|
||||
"certificates": [
|
||||
{
|
||||
"certificateFile": "/etc/ssl/private/fullchain.crt",
|
||||
"keyFile": "/etc/ssl/private/crt.key" // Refer to the Beginner's Guide to fill in the path of the generated fullchain.crt and cert.key here ([https://xtls.github.io/document/level-0/ch06-certificates.html#_6-4-%E6%AD%A3%E5%BC%8F%E8%AF%81%E4%B9%A6%E7%94%B3%E8%AF%B7](https://xtls.github.io/document/level-0/ch06-certificates.html#_6-4-%E6%AD%A3%E5%BC%8F%E8%AF%81%E4%B9%A6%E7%94%B3%E8%AF%B7))
|
||||
"keyFile": "/etc/ssl/private/crt.key" // Refer to the Beginner's Guide to fill in the path of the generated fullchain.crt and cert.key here (https://xtls.github.io/en/document/level-0/ch06-certificates.html#_6-4-official-certificate-issuance)
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
Однако для сложных изменений обязательно используйте VSCode. Склонируйте документацию из вашего форка, например:
|
||||
|
||||
```bash
|
||||
git clone [https://github.com/ваше-имя-пользователя/Xray-docs-next.git](https://github.com/ваше-имя-пользователя/Xray-docs-next.git)
|
||||
git clone https://github.com/ваше-имя-пользователя/Xray-docs-next.git
|
||||
```
|
||||
|
||||
3. Создайте новую ветку на основе ветки `main`, например:
|
||||
|
||||
Reference in New Issue
Block a user