Fix: format & typo

This commit is contained in:
JimhHan 2021-04-04 20:10:20 +08:00
parent 85353848f5
commit 50779d1ae4
No known key found for this signature in database
GPG Key ID: 48D5D7CF95157AC5
2 changed files with 359 additions and 325 deletions

View File

@ -107,7 +107,8 @@ TLS 配置。TLS 由 Golang 提供,通常情况下 TLS 协商的结果为使
XTLS 配置。XTLS 是 Xray 的原创黑科技, 也是使 Xray 性能一骑绝尘的核心动力。 XTLS 与 TLS 有相同的安全性, 配置方式也和 TLS 一致. XTLS 配置。XTLS 是 Xray 的原创黑科技, 也是使 Xray 性能一骑绝尘的核心动力。 XTLS 与 TLS 有相同的安全性, 配置方式也和 TLS 一致.
点击此处查看 [XTLS 的技术细节剖析](./features/xtls.md) 点击此处查看 [XTLS 的技术细节剖析](./features/xtls.md)
::: danger TLS / XTLS 是目前最安全的传输加密方案, 且外部看来流量类型和正常上网具有一致性。 启用 XTLS 并且配置合适的 XTLS 流控模式, 可以在保持和 TLS 相同的安全性的前提下, ::: tip
TLS / XTLS 是目前最安全的传输加密方案, 且外部看来流量类型和正常上网具有一致性。 启用 XTLS 并且配置合适的 XTLS 流控模式, 可以在保持和 TLS 相同的安全性的前提下,
性能达到数倍甚至十几倍的提升。 当 `security` 的值从 `tls` 改为 `xtls` 时, 只需将 `tlsSettings` 修改成为 `xtlsSettings` 性能达到数倍甚至十几倍的提升。 当 `security` 的值从 `tls` 改为 `xtls` 时, 只需将 `tlsSettings` 修改成为 `xtlsSettings`
::: :::
@ -192,7 +193,8 @@ CipherSuites 用于配置受支持的密码套件列表, 每个套件名称之
你可以在 [这里](https://golang.org/src/crypto/tls/cipher_suites.go#L500)或 [这里](https://golang.org/src/crypto/tls/cipher_suites.go#L44) 你可以在 [这里](https://golang.org/src/crypto/tls/cipher_suites.go#L500)或 [这里](https://golang.org/src/crypto/tls/cipher_suites.go#L44)
找到 golang 加密套件的名词和说明 找到 golang 加密套件的名词和说明
::: danger 以上两项配置为非必要选项,正常情况下不影响安全性 在未配置的情况下 golang 根据设备自动选择. 若不熟悉, 请勿配置此选项, 填写不当引起的问题自行负责 ::: danger
以上两项配置为非必要选项,正常情况下不影响安全性 在未配置的情况下 golang 根据设备自动选择. 若不熟悉, 请勿配置此选项, 填写不当引起的问题自行负责
::: :::
> `allowInsecure`: true | false > `allowInsecure`: true | false
@ -201,7 +203,8 @@ CipherSuites 用于配置受支持的密码套件列表, 每个套件名称之
当值为 `true`Xray 不会检查远端主机所提供的 TLS 证书的有效性。 当值为 `true`Xray 不会检查远端主机所提供的 TLS 证书的有效性。
::: danger 出于安全性考虑,这个选项不应该在实际场景中选择 true否则可能遭受中间人攻击。 ::: danger
出于安全性考虑,这个选项不应该在实际场景中选择 true否则可能遭受中间人攻击。
::: :::
> `disableSystemRoot`: true | false > `disableSystemRoot`: true | false
@ -218,7 +221,8 @@ CipherSuites 用于配置受支持的密码套件列表, 每个套件名称之
此参数用于配置指定 `TLS Client Hello` 的指纹。当其值为空时表示不启用此功能。启用后Xray 将通过 uTLS 库 **模拟** `TLS` 指纹,或随机生成。 此参数用于配置指定 `TLS Client Hello` 的指纹。当其值为空时表示不启用此功能。启用后Xray 将通过 uTLS 库 **模拟** `TLS` 指纹,或随机生成。
::: tip 此功能仅 **模拟** `TLS Client Hello` 的指纹,行为、其他指纹与 Golang 相同。如果你希望更加完整地模拟浏览器 `TLS` ::: tip
此功能仅 **模拟** `TLS Client Hello` 的指纹,行为、其他指纹与 Golang 相同。如果你希望更加完整地模拟浏览器 `TLS`
指纹与行为,可以使用 [Browser Dialer](./transports/websocket.md#browser-dialer)。 指纹与行为,可以使用 [Browser Dialer](./transports/websocket.md#browser-dialer)。
::: :::
@ -229,7 +233,8 @@ CipherSuites 用于配置受支持的密码套件列表, 每个套件名称之
证书列表,其中每一项表示一个证书(建议 fullchain 证书列表,其中每一项表示一个证书(建议 fullchain
::: tip 如果要在 ssllibs 或者 myssl 获得 A/A+ 等级的评价, ::: tip
如果要在 ssllibs 或者 myssl 获得 A/A+ 等级的评价,
请参考 [这里](https://github.com/XTLS/Xray-core/discussions/56#discussioncomment-215600). 请参考 [这里](https://github.com/XTLS/Xray-core/discussions/56#discussioncomment-215600).
::: :::
@ -304,23 +309,29 @@ ocspStapling 检查更新时间间隔。 单位:秒
- `"verify"`:证书用于验证远端 TLS 的证书。当使用此项时,当前证书必须为 CA 证书。 - `"verify"`:证书用于验证远端 TLS 的证书。当使用此项时,当前证书必须为 CA 证书。
- `"issue"`:证书用于签发其它证书。当使用此项时,当前证书必须为 CA 证书。 - `"issue"`:证书用于签发其它证书。当使用此项时,当前证书必须为 CA 证书。
::: tip TIP 1 在 Windows 平台上可以将自签名的 CA 证书安装到系统中,即可验证远端 TLS 的证书。 ::: tip TIP 1
在 Windows 平台上可以将自签名的 CA 证书安装到系统中,即可验证远端 TLS 的证书。
::: :::
::: tip TIP 2 当有新的客户端请求时,假设所指定的 `serverName``"xray.com"`Xray 会先从证书列表中寻找可用于 `"xray.com"` 的证书,如果没有找到,则使用任一 `usage` ::: tip TIP 2
当有新的客户端请求时,假设所指定的 `serverName``"xray.com"`Xray 会先从证书列表中寻找可用于 `"xray.com"` 的证书,如果没有找到,则使用任一 `usage`
`"issue"` 的证书签发一个适用于 `"xray.com"` 的证书,有效期为一小时。并将新的证书加入证书列表,以供后续使用。 `"issue"` 的证书签发一个适用于 `"xray.com"` 的证书,有效期为一小时。并将新的证书加入证书列表,以供后续使用。
::: :::
::: tip TIP 3 当 `certificateFile``certificate` 同时指定时Xray 优先使用 `certificateFile``keyFile``key` 也一样。 ::: tip TIP 3
`certificateFile``certificate` 同时指定时Xray 优先使用 `certificateFile``keyFile``key` 也一样。
::: :::
::: tip TIP 4 当 `usage``"verify"` 时,`keyFile``key` 可均为空。 ::: tip TIP 4
`usage``"verify"` 时,`keyFile``key` 可均为空。
::: :::
::: tip TIP 5 使用 `xray tls cert` 可以生成自签名的 CA 证书。 ::: tip TIP 5
使用 `xray tls cert` 可以生成自签名的 CA 证书。
::: :::
::: tip TIP 6 如已经拥有一个域名, 可以使用工具便捷的获取免费第三方证书,如[acme.sh](https://github.com/acmesh-official/acme.sh) ::: tip TIP 6
如已经拥有一个域名, 可以使用工具便捷的获取免费第三方证书,如[acme.sh](https://github.com/acmesh-official/acme.sh)
::: :::
> `certificateFile`: string > `certificateFile`: string
@ -363,19 +374,21 @@ ocspStapling 检查更新时间间隔。 单位:秒
是否启用 [TCP Fast Open](https://zh.wikipedia.org/wiki/TCP%E5%BF%AB%E9%80%9F%E6%89%93%E5%BC%80)。 是否启用 [TCP Fast Open](https://zh.wikipedia.org/wiki/TCP%E5%BF%AB%E9%80%9F%E6%89%93%E5%BC%80)。
当其值为 `true``正整数`时,启用 TFO当其值为 `false``负数`时,强制关闭 TFO当此项不存在或为 `0` 时,使用系统默认设置。 当其值为 `true``正整数`时,启用 TFO当其值为 `false``负数`时,强制关闭 TFO当此项不存在或为 `0` 时,使用系统默认设置。 可用于 inbound/outbound。
可用于 inbound/outbound。
- 仅在以下版本(或更新版本)的操作系统中可用: - 仅在以下版本(或更新版本)的操作系统中可用:
- Windows 10 (1607) - Windows 10 (1607)
- Mac OS 10.11 / iOS 9 - Mac OS 10.11 / iOS 9
- Linux 3.16:需要通过内核参数 `net.ipv4.tcp_fastopen` 进行设定,此参数是一个 bitmap`0x1` 代表客户端允许启用,`0x2` 代表服务器允许启用;默认值为 `0x1`,如果服务器要启用 TFO请把此内核参数值设为 `0x3` - Linux 3.16:需要通过内核参数 `net.ipv4.tcp_fastopen` 进行设定,此参数是一个 bitmap`0x1` 代表客户端允许启用,`0x2` 代表服务器允许启用;默认值为 `0x1`,如果服务器要启用
- FreeBSD 10.3 (Server) / 12.0 (Client):需要把内核参数 `net.inet.tcp.fastopen.server_enabled` 以及 `net.inet.tcp.fastopen.client_enabled` 设为 `1` TFO请把此内核参数值设为 `0x3`
- FreeBSD 10.3 (Server) / 12.0 (Client):需要把内核参数 `net.inet.tcp.fastopen.server_enabled`
以及 `net.inet.tcp.fastopen.client_enabled` 设为 `1`
- 对于 Inbound此处所设定的`正整数`代表 [待处理的 TFO 连接请求数上限](https://tools.ietf.org/html/rfc7413#section-5.1) **注意并非所有操作系统都支持在此设定** - 对于 Inbound此处所设定的`正整数`代表 [待处理的 TFO 连接请求数上限](https://tools.ietf.org/html/rfc7413#section-5.1) **注意并非所有操作系统都支持在此设定**
- Linux / FreeBSD此处的设定的`正整数`值代表上限,可接受的最大值为 2147483647`true` 时将取 `256`;注意在 Linux`net.core.somaxconn` 会限制此值的上限,如果超过了 `somaxconn`,请同时提高 `somaxconn` - Linux / FreeBSD此处的设定的`正整数`值代表上限,可接受的最大值为 2147483647`true` 时将取 `256`;注意在 Linux`net.core.somaxconn`
会限制此值的上限,如果超过了 `somaxconn`,请同时提高 `somaxconn`
- Mac OS此处为 `true``正整数`时,仅代表启用 TFO上限需要通过内核参数 `net.inet.tcp.fastopen_backlog` 单独设定。 - Mac OS此处为 `true``正整数`时,仅代表启用 TFO上限需要通过内核参数 `net.inet.tcp.fastopen_backlog` 单独设定。
- Windows此处为 `true``正整数`时,仅代表启用 TFO。 - Windows此处为 `true``正整数`时,仅代表启用 TFO。
@ -391,7 +404,8 @@ ocspStapling 检查更新时间间隔。 单位:秒
透明代理需要 Root 或 `CAP\_NET\_ADMIN` 权限。 透明代理需要 Root 或 `CAP\_NET\_ADMIN` 权限。
::: danger 当 [Dokodemo-door](./inbounds/dokodemo.md) 中指定了 `followRedirect``true`,且 Sockopt 设置中的`tproxy` 为空时Sockopt ::: danger
当 [Dokodemo-door](./inbounds/dokodemo.md) 中指定了 `followRedirect``true`,且 Sockopt 设置中的`tproxy` 为空时Sockopt
设置中的`tproxy` 的值会被设为 `"redirect"` 设置中的`tproxy` 的值会被设为 `"redirect"`
::: :::
@ -408,7 +422,9 @@ ocspStapling 检查更新时间间隔。 单位:秒
默认值为 `"AsIs"` 默认值为 `"AsIs"`
::: danger 启用了此功能后,不当的配置可能会导致死循环。 ::: danger
启用了此功能后,不当的配置可能会导致死循环。
一句话版本:连接到服务器,需要等待 DNS 查询结果;完成 DNS 查询,需要连接到服务器。 一句话版本:连接到服务器,需要等待 DNS 查询结果;完成 DNS 查询,需要连接到服务器。
@ -439,7 +455,8 @@ ocspStapling 检查更新时间间隔。 单位:秒
一个出站代理的标识。当值不为空时,将使用指定的 outbound 发出连接。 此选项可用于支持底层传输方式的链式转发。 一个出站代理的标识。当值不为空时,将使用指定的 outbound 发出连接。 此选项可用于支持底层传输方式的链式转发。
::: danger 此选项与 PorxySettingsObject.Tag 不兼容 ::: danger
此选项与 PorxySettingsObject.Tag 不兼容
::: :::
> `acceptProxyProtocol`: true | false > `acceptProxyProtocol`: true | false

View File

@ -176,7 +176,6 @@
``` ```
::: warning 注意 ::: warning 注意
这个位置不是`Xray`标准的日志文件位置,放在这里是避免权限问题对新人的操作带来困扰。当你熟悉之后,建议回归默认位置: `/var/log/xray/access.log` 这个位置不是`Xray`标准的日志文件位置,放在这里是避免权限问题对新人的操作带来困扰。当你熟悉之后,建议回归默认位置: `/var/log/xray/access.log`
`/var/log/xray/error.log` `/var/log/xray/error.log`
::: :::
@ -195,27 +194,23 @@
4. 将下面的文件全部复制进去,并将之前生成的`UUID`填入第 61 行 `"id": "",` 之中。(填好之后的样子是 `"id": "uuiduuid-uuid-uuid-uuid-uuiduuiduuid"` 4. 将下面的文件全部复制进去,并将之前生成的`UUID`填入第 61 行 `"id": "",` 之中。(填好之后的样子是 `"id": "uuiduuid-uuid-uuid-uuid-uuiduuiduuid"`
),本文的这个配置文件中增加了我的各种啰嗦注解,以方便你理解每一个配置模块的功能是什么。 ),本文的这个配置文件中增加了我的各种啰嗦注解,以方便你理解每一个配置模块的功能是什么。
``` ```json
// REFERENCE: // REFERENCE:
// https://github.com/XTLS/Xray-examples // https://github.com/XTLS/Xray-examples
// https://xtls.github.io/config/ // https://xtls.github.io/config/
// 常用的 config 文件,不论服务器端还是客户端,都有 5 个部分。外加小小白解读: // 常用的 config 文件,不论服务器端还是客户端,都有 5 个部分。外加小小白解读:
// ┌─ 1_log 日志设置 - 日志写什么,写哪里(出错时有据可查) // ┌─ 1*log 日志设置 - 日志写什么,写哪里(出错时有据可查)
// ├─ 2_dns DNS-设置 - DNS 怎么查(防 DNS 污染、防偷窥、避免国内外站匹配到国外服务器等) // ├─ 2_dns DNS-设置 - DNS 怎么查(防 DNS 污染、防偷窥、避免国内外站匹配到国外服务器等)
// ├─ 3_routing 分流设置 - 流量怎么分类处理(是否过滤广告、是否国内外分流) // ├─ 3_routing 分流设置 - 流量怎么分类处理(是否过滤广告、是否国内外分流)
// ├─ 4_inbounds 入站设置 - 什么流量可以流入 Xray // ├─ 4_inbounds 入站设置 - 什么流量可以流入 Xray
// └─ 5_outbounds 出站设置 - 流出 Xray 的流量往哪里去 // └─ 5_outbounds 出站设置 - 流出 Xray 的流量往哪里去
{ {
// 1_日志设置 // 1\_日志设置
"log": { "log": {
"loglevel": "warning", // 内容从少到多: "none", "error", "warning", "info", "debug" "loglevel": "warning", // 内容从少到多: "none", "error", "warning", "info", "debug"
"access": "/home/vpsadmin/xray_log/access.log", // 访问记录 "access": "/home/vpsadmin/xray_log/access.log", // 访问记录
"error": "/home/vpsadmin/xray_log/error.log" // 错误记录 "error": "/home/vpsadmin/xray_log/error.log" // 错误记录
}, },
// 2_DNS 设置 // 2_DNS 设置
"dns": { "dns": {
"servers": [ "servers": [
@ -223,8 +218,7 @@
"localhost" "localhost"
] ]
}, },
// 3*分流设置
// 3_分流设置
"routing": { "routing": {
"domainStrategy": "AsIs", "domainStrategy": "AsIs",
"rules": [ "rules": [
@ -246,8 +240,7 @@
} }
] ]
}, },
// 4*入站设置
// 4_入站设置
// 4.1 这里只写了一个最简单的 vless+xtls 的入站,因为这是 Xray 最强大的模式。如有其他需要,请根据模版自行添加。 // 4.1 这里只写了一个最简单的 vless+xtls 的入站,因为这是 Xray 最强大的模式。如有其他需要,请根据模版自行添加。
"inbounds": [ "inbounds": [
{ {
@ -275,9 +268,7 @@
"xtlsSettings": { "xtlsSettings": {
"allowInsecure": false, // 正常使用应确保关闭 "allowInsecure": false, // 正常使用应确保关闭
"minVersion": "1.2", // TLS 最低版本设置 "minVersion": "1.2", // TLS 最低版本设置
"alpn": [ "alpn": ["http/1.1"],
"http/1.1"
],
"certificates": [ "certificates": [
{ {
"certificateFile": "/home/vpsadmin/xray_cert/xray.crt", "certificateFile": "/home/vpsadmin/xray_cert/xray.crt",
@ -288,8 +279,7 @@
} }
} }
], ],
// 5*出站设置
// 5_出站设置
"outbounds": [ "outbounds": [
// 5.1 第一个出站是默认规则freedom 就是对外直连vps 已经是外网,所以直连) // 5.1 第一个出站是默认规则freedom 就是对外直连vps 已经是外网,所以直连)
{ {
@ -305,8 +295,7 @@
} }
``` ```
5. 完整流程演示如下: 5) 完整流程演示如下:
![创建日志文件及`config.json`配置文件](./ch07-img04-xray-log-and-config.gif) ![创建日志文件及`config.json`配置文件](./ch07-img04-xray-log-and-config.gif)
## 7.5 启动 Xray 服务!!(并查看服务状态) ## 7.5 启动 Xray 服务!!(并查看服务状态)
@ -316,13 +305,17 @@
1. 输入下面的命令,享受启动`Xray`的历史性时刻吧!!! 1. 输入下面的命令,享受启动`Xray`的历史性时刻吧!!!
``` ```
$ sudo systemctl start xray
\$ sudo systemctl start xray
``` ```
2. 仅仅`start`我们并不能确定是否成功的开启了 Xray 的服务,要确定它的状态,就要用到下面的命令。 2. 仅仅`start`我们并不能确定是否成功的开启了 Xray 的服务,要确定它的状态,就要用到下面的命令。
``` ```
$ sudo systemctl status xray
\$ sudo systemctl status xray
``` ```
看到那个绿色的、令人愉悦的 `active (running)` 了吗?它就是说 `Xray` 已经在正确的运行了 看到那个绿色的、令人愉悦的 `active (running)` 了吗?它就是说 `Xray` 已经在正确的运行了
@ -339,24 +332,33 @@
1. 若你需要暂时关闭 `Xray` 的服务,那就用`stop`命令 1. 若你需要暂时关闭 `Xray` 的服务,那就用`stop`命令
``` ```
$ sudo systemctl stop xray
\$ sudo systemctl stop xray
``` ```
2. 若你需要重启`Xray`的服务,那就用`restart`命令 2. 若你需要重启`Xray`的服务,那就用`restart`命令
``` ```
$ sudo systemctl restart xray
\$ sudo systemctl restart xray
``` ```
3. 若你需要禁用`Xray`的服务(电脑重启后禁止 Xray 自动运行),那就用`disable`命令 3. 若你需要禁用`Xray`的服务(电脑重启后禁止 Xray 自动运行),那就用`disable`命令
``` ```
$ sudo systemctl disable xray
\$ sudo systemctl disable xray
``` ```
4. 若你需要启用`Xray`的服务(电脑重启后确保 Xray 自动运行),那就用`enable`命令 4. 若你需要启用`Xray`的服务(电脑重启后确保 Xray 自动运行),那就用`enable`命令
``` ```
$ sudo systemctl enable xray
\$ sudo systemctl enable xray
``` ```
## 7.7 服务器优化之一:开启 BBR ## 7.7 服务器优化之一:开启 BBR
@ -386,7 +388,8 @@
内核的稳定是一台服务器稳定运行的基石。**【BBR 测试版带来的细微性能差异绝对不值得更换不稳定的内核。】** 请选择你所在的 Linux 发行版所支持的最新内核,这样可以最大限度的保持服务器的长期稳定和兼容。 内核的稳定是一台服务器稳定运行的基石。**【BBR 测试版带来的细微性能差异绝对不值得更换不稳定的内核。】** 请选择你所在的 Linux 发行版所支持的最新内核,这样可以最大限度的保持服务器的长期稳定和兼容。
::: warning 注意 所谓魔改`bbr`的【领先】是有非常强的时效性的。比如很多 `bbrplus` 脚本,因为几年来都没有更新,到现在还会把你的内核换成 `4.19`,要知道现在稳定如 Debian 已经是 `5.9` ::: warning 注意
所谓魔改`bbr`的【领先】是有非常强的时效性的。比如很多 `bbrplus` 脚本,因为几年来都没有更新,到现在还会把你的内核换成 `4.19`,要知道现在稳定如 Debian 已经是 `5.9`
的时代了,那么这个脚本放在 2018 年 1 月也许领先了一点,到 2018 年 10 月 4.19 正发布时就已经失去了意义,放在现在甚至可以说是完完全全的【降级】和【劣化】 的时代了,那么这个脚本放在 2018 年 1 月也许领先了一点,到 2018 年 10 月 4.19 正发布时就已经失去了意义,放在现在甚至可以说是完完全全的【降级】和【劣化】
::: :::
@ -401,8 +404,8 @@
它能解决的也只有丢包率的问题。不太准确的比喻,就是本来你用一辆车送你的货,有时候车半路就坏了(丢包),用了这些以后,你直接派出 3 它能解决的也只有丢包率的问题。不太准确的比喻,就是本来你用一辆车送你的货,有时候车半路就坏了(丢包),用了这些以后,你直接派出 3
份一样的货,让三辆车同时送,只要有一辆没坏就能送到。马路上都是你的车,自然就能把别人挤下去。但可想而知,你挤别人的时候,别人也会来挤你,而整个机房的出口道路一共就那么宽,最终势必就变成集体大堵车了。 份一样的货,让三辆车同时送,只要有一辆没坏就能送到。马路上都是你的车,自然就能把别人挤下去。但可想而知,你挤别人的时候,别人也会来挤你,而整个机房的出口道路一共就那么宽,最终势必就变成集体大堵车了。
::: warning 说明 它们的原理不是算法优化、不是提速、大多数是简单粗暴的**多倍发包** ::: warning 说明
。对于【丢包率非常高】的差线路可能有一点作用,但【对丢包率低的好线路没有任何优化作用,反而会成倍的消耗你的流量】,进而造成服务器和你的邻居不必要的压力。 它们的原理不是算法优化、不是提速、大多数是简单粗暴的**多倍发包**。对于【丢包率非常高】的差线路可能有一点作用,但【对丢包率低的好线路没有任何优化作用,反而会成倍的消耗你的流量】,进而造成服务器和你的邻居不必要的压力。
如果你的线路真的丢包率奇高,真正靠谱的解决方案是【换线路】。 如果你的线路真的丢包率奇高,真正靠谱的解决方案是【换线路】。
::: :::
@ -412,23 +415,24 @@
1. 给 Debian 10 添加官方 `backports` 源,获取更新的软件库 1. 给 Debian 10 添加官方 `backports` 源,获取更新的软件库
``` ```
$ sudo nano /etc/apt/sources.list
\$ sudo nano /etc/apt/sources.list
``` ```
::: warning 说明 ::: warning 说明
本文以 Debian 10 为例,所以使用 `/etc/apt/sources.list` 仍无问题,但如果你并不是根据本文从头开始,或者使用了其他 Linux 本文以 Debian 10 为例,所以使用 `/etc/apt/sources.list` 仍无问题,但如果你并不是根据本文从头开始,或者使用了其他 Linux
发行版,那么建议你建立 `/etc/apt/sources.list.d/` 文件夹,并在这个文件夹内建立自己的配置文件,形如 `/etc/apt/sources.list.d/vpsadmin.list` 发行版,那么建议你建立 `/etc/apt/sources.list.d/` 文件夹,并在这个文件夹内建立自己的配置文件,形如 `/etc/apt/sources.list.d/vpsadmin.list`
,以此保证兼容性,也可避免默认文件在不可预见的情况下被覆盖而导致配置丢失。 ,以此保证兼容性,也可避免默认文件在不可预见的情况下被覆盖而导致配置丢失。
::: :::
2) 然后把下面这一条加在最后,并保存退出。 2. 然后把下面这一条加在最后,并保存退出。
``` ```
deb http://deb.debian.org/debian buster-backports main deb http://deb.debian.org/debian buster-backports main
``` ```
3) 刷新软件库并查询 Debian 官方的最新版内核并安装。请务必安装你的 VPS 对应的版本本文以比较常见的【amd64】为例 3. 刷新软件库并查询 Debian 官方的最新版内核并安装。请务必安装你的 VPS 对应的版本本文以比较常见的【amd64】为例
``` ```
$ sudo apt update && sudo apt -t buster-backports install linux-image-amd64 $ sudo apt update && sudo apt -t buster-backports install linux-image-amd64
@ -442,28 +446,30 @@
- 尝试前做一个系统快照,或者 - 尝试前做一个系统快照,或者
- 你有 `vnc` 可以救场(并且你知道怎么用) - 你有 `vnc` 可以救场(并且你知道怎么用)
::: :::
4) 修改 `kernel` 参数配置文件 `sysctl.conf` 并指定开启 `BBR` 4. 修改 `kernel` 参数配置文件 `sysctl.conf` 并指定开启 `BBR`
``` ```
$ sudo nano /etc/sysctl.conf $ sudo nano /etc/sysctl.conf
``` ```
::: warning 说明 ::: warning 说明
本文以 Debian 10 为例,所以使用 `/etc/sysctl.conf` 仍无问题,但如果你并不是跟着本文从头开始,或者使用了其他 Linux 发行版,那么建议你建立 `/etc/sysctl.d/` 本文以 Debian 10 为例,所以使用 `/etc/sysctl.conf` 仍无问题,但如果你并不是跟着本文从头开始,或者使用了其他 Linux 发行版,那么建议你建立 `/etc/sysctl.d/`
文件夹,并在这个文件夹内建立自己的配置文件,形如 `/etc/sysctl.d/vpsadmin.conf`,以此保证兼容性,因为部分发行版在 `systemd` 文件夹,并在这个文件夹内建立自己的配置文件,形如 `/etc/sysctl.d/vpsadmin.conf`,以此保证兼容性,因为部分发行版在 `systemd`
207 版本之后便不再从 `/etc/sysctl.conf` 读取参数。使用自定义配置文件也可避免默认文件在不可预见的情况下被覆盖而导致配置丢失。 207 版本之后便不再从 `/etc/sysctl.conf` 读取参数。使用自定义配置文件也可避免默认文件在不可预见的情况下被覆盖而导致配置丢失。
::: :::
5. 把下面的内容添加进去 5. 把下面的内容添加进去
``` ```
net.core.default_qdisc=fq net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr net.ipv4.tcp_congestion_control=bbr
``` ```
6. 重启 VPS、使内核更新和`BBR`设置都生效 6. 重启 VPS、使内核更新和`BBR`设置都生效
``` ```
$ sudo reboot $ sudo reboot
``` ```
@ -471,7 +477,6 @@
7. 完整流程演示如下: 7. 完整流程演示如下:
::: tip 啰嗦君 ::: tip 啰嗦君
因为我做展示的 VPS 支持云服务器专用内核,所以动图中我用了 `linux-image-cloud-amd64` 因为我做展示的 VPS 支持云服务器专用内核,所以动图中我用了 `linux-image-cloud-amd64`
。如果你不确定你的 VPS 是否支持,那请务必按照第 3 步的命令,使用常规内核 `linux-image-amd64` 。如果你不确定你的 VPS 是否支持,那请务必按照第 3 步的命令,使用常规内核 `linux-image-amd64`
::: :::
@ -514,42 +519,54 @@
2. 编辑 Nginx 的配置文件 2. 编辑 Nginx 的配置文件
``` ```
$ sudo nano /etc/nginx/nginx.conf
\$ sudo nano /etc/nginx/nginx.conf
``` ```
3. 在我们设置过的 80 端口 Server 中加入下面的语句,并保存退出(可同时删除`root``index`两行) 3. 在我们设置过的 80 端口 Server 中加入下面的语句,并保存退出(可同时删除`root``index`两行)
``` ```
return 301 https://$http_host$request_uri; return 301 https://$http_host$request_uri;
``` ```
4. 在与 `80` 端口同级的位置增加一个本地端口监听来提供网页展示。本文以 `8080` 端口做演示。(可以是任意端口) 4. 在与 `80` 端口同级的位置增加一个本地端口监听来提供网页展示。本文以 `8080` 端口做演示。(可以是任意端口)
``` ```
server { server {
listen 127.0.0.1:8080; listen 127.0.0.1:8080;
root /home/vpsadmin/www/webpage; root /home/vpsadmin/www/webpage;
index index.html; index index.html;
add_header Strict-Transport-Security "max-age=63072000" always; add_header Strict-Transport-Security "max-age=63072000" always;
} }
``` ```
5. 重启 Nginx 服务 5. 重启 Nginx 服务
``` ```
$ sudo systemctl restart nginx
\$ sudo systemctl restart nginx
``` ```
6. 修改 Xray 的回落设置,将回落从 `80` 端口改为 `8080` 端口。(找到 `"dest": 80`, 并改成 `"dest": 8080` 6. 修改 Xray 的回落设置,将回落从 `80` 端口改为 `8080` 端口。(找到 `"dest": 80`, 并改成 `"dest": 8080`
``` ```
$ sudo nano /usr/local/etc/xray/config.json
\$ sudo nano /usr/local/etc/xray/config.json
``` ```
7. 重启 `Xray` 服务,即完成了设置 7. 重启 `Xray` 服务,即完成了设置
``` ```
$ sudo systemctl restart xray
\$ sudo systemctl restart xray
``` ```
8. 完整流程演示如下: 8. 完整流程演示如下:
@ -582,7 +599,7 @@
- 7.4 配置`Xray` - 3. 使用`nano`创建`Xray`的配置文件 - 7.4 配置`Xray` - 3. 使用`nano`创建`Xray`的配置文件
- 7.8 服务器优化之二 - 6. 修改`Xray`的回落设置 - 7.8 服务器优化之二 - 6. 修改`Xray`的回落设置
2) 初版中修改`Nginx`配置文件`nginx.conf`时内容错误(网页文件夹位置错误),若你已经根据之前的位置进行了操作,`Nginx`会无法找到正确的网站。请自查,造成不便十分抱歉! 2. 初版中修改`Nginx`配置文件`nginx.conf`时内容错误(网页文件夹位置错误),若你已经根据之前的位置进行了操作,`Nginx`会无法找到正确的网站。请自查,造成不便十分抱歉!
- 正确文件夹位置:`root /home/vpsadmin/www/webpage;` - 正确文件夹位置:`root /home/vpsadmin/www/webpage;`
- 错误文件夹位置:`root /var/www/website/html` - 错误文件夹位置:`root /var/www/website/html`