优化文案描述 & 新增 TS UDP 优化

This commit is contained in:
CallMeR
2025-12-04 18:22:56 +08:00
parent 9f6a2fe42d
commit 96a23ad48f
7 changed files with 176 additions and 35 deletions
+112 -13
View File
@@ -32,7 +32,7 @@
$ sudo vim /etc/ssh/sshd_config.d/10-server-sshd.conf
```
在配置文件中添加以下配置项,并保存。
在配置文件中输入以下内容,并保存。
```bash
## SSH 配置项
@@ -122,7 +122,7 @@ $ sudo apt install qemu-guest-agent btop curl tmux logrotate cron neovim zsh git
$ sudo apt install unattended-upgrades powermgmt-base
## 安装网络工具
$ sudo apt install dnsmasq conntrack nftables sshguard lsof knot-dnsutils
$ sudo apt install ethtool dnsmasq conntrack nftables sshguard lsof knot-dnsutils
## 安装 TS
$ sudo apt install tailscale
@@ -189,7 +189,7 @@ update-alternatives: using /usr/bin/nvim to provide /usr/bin/editor (editor) in
$ sudo editor /etc/modules-load.d/10-server-modules.conf
```
在配置文件中添加以下配置项,并保存。
在配置文件中输入以下内容,并保存。
```bash
# This configuration file is customized by fox,
@@ -208,7 +208,7 @@ nf_conntrack
$ sudo editor /etc/sysctl.d/99-sysctl.conf
```
在配置文件中添加以下配置项,注意配置中间的空格。
在配置文件中输入以下内容,注意配置中间的空格。
```bash
# This configuration file is customized by fox,
@@ -316,7 +316,7 @@ $ sudo mkdir -p /etc/systemd/timesyncd.conf.d
$ sudo editor /etc/systemd/timesyncd.conf.d/10-server-ntp.conf
```
在配置文件中添加以下配置项,并保存。
在配置文件中输入以下内容,并保存。
```bash
# This configuration file is customized by fox,
@@ -356,7 +356,7 @@ $ sudo dpkg-reconfigure -plow unattended-upgrades
$ sudo editor /etc/apt/apt.conf.d/20auto-upgrades
```
删除里面全部内容,添加以下配置项,并保存。
删除里面全部内容,输入以下内容,并保存。
配置文件中,用来控制更新周期的参数为 `APT::Periodic::Unattended-Upgrade` `7` 表示更新周期为 `7` 天。
@@ -388,7 +388,7 @@ $ sudo editor /etc/apt/apt.conf.d/50unattended-upgrades
"origin=Tailscale,codename=${distro_codename},label=Tailscale";
## 在配置文件末尾增加以下配置项,代表启用,并调整参数
## 在配置文件末尾增加以下内容,代表启用,并调整参数
Unattended-Upgrade::AutoFixInterruptedDpkg "true";
@@ -411,7 +411,7 @@ Unattended-Upgrade::Automatic-Reboot-Time "13:00";
$ sudo systemctl edit apt-daily-upgrade.timer
```
根据配置文件中的提示,在中间空白处填入以下配置项
根据配置文件中的提示,在中间空白处填入以下内容
```bash
## 定时器配置项
@@ -478,7 +478,7 @@ $ sudo mkdir -p /etc/systemd/resolved.conf.d
$ sudo editor /etc/systemd/resolved.conf.d/10-server-dns.conf
```
在配置文件中添加以下配置项,并保存。
在配置文件中输入以下内容,并保存。
```bash
# This configuration file is customized by fox,
@@ -607,7 +607,106 @@ $ sudo systemctl restart dnsmasq.service
根据不同的启动参数,TS 服务将具有不同的业务能力。
### 2.1.启动模式
### 2.1.网卡调优
根据 TS 官方文档 [Performance best practices](https://tailscale.com/kb/1320/performance-best-practices) 的技术指引,优化网卡的 `rx-udp-gro-forwarding``rx-gro-list` 参数可提升 UDP 转发性能。
本文将使用 `ethtool` 工具并结合 `systemd` 服务提供参数自动配置方案。
```bash
## 创建 tailscale-nic-optim 优化脚本
$ sudo editor /usr/local/bin/tailscale-nic-optim.sh
```
在脚本文件中输入以下内容,并保存。
```bash
#!/bin/sh
ETHTOOL_PATH=$(command -v ethtool)
if [ -z "$ETHTOOL_PATH" ]; then
echo "Error: ethtool command not found. Please install ethtool."
exit 1
fi
NETDEV=$(ip route show default | awk '{for (i=1; i<=NF; i++) {if ($i == "dev") {print $(i+1); exit;}}}')
if [ -z "$NETDEV" ]; then
echo "Error: Could not determine default network device using 'ip route show default'."
exit 1
fi
echo "Configuring network device $NETDEV using $ETHTOOL_PATH for Tailscale optimizations..."
"$ETHTOOL_PATH" -K "$NETDEV" rx-udp-gro-forwarding on rx-gro-list off
if [ "$?" -eq 0 ]; then
echo "Configuration successful for $NETDEV."
exit 0
else
echo "Error: ethtool configuration failed. Check permissions or device status."
exit 1
fi
```
设置脚本可执行权限,并防止脚本被意外修改。
```bash
## 设置脚本可执行权限
$ sudo chmod +x /usr/local/bin/tailscale-nic-optim.sh
## 设置脚本文件防篡改
$ sudo chattr +i /usr/local/bin/tailscale-nic-optim.sh
```
进一步创建 `tailscale-nic-optim` 服务配置文件,以满足系统自动化设置需求。
```bash
## 创建 tailscale-nic-optim.service 配置文件
$ sudo editor /etc/systemd/system/tailscale-nic-optim.service
```
在服务配置文件中输入以下内容,并保存。
```bash
# This configuration file is customized by fox,
# Optimize for TS UDP performance.
[Unit]
Description=Tailscale Network Optimization for Subnet/Exit Nodes
ConditionVirtualization=!container
After=network-online.target
Wants=network-online.target
Before=tailscaled.service
[Service]
Type=oneshot
ExecStart=/usr/local/bin/tailscale-nic-optim.sh
RemainAfterExit=yes
StandardOutput=journal
[Install]
WantedBy=multi-user.target
```
由于修改了服务项,需要执行以下命令进行重载。
```bash
## 服务重载
$ sudo systemctl daemon-reload
```
执行以下命令让 `tailscale-nic-optim` 服务开机自启动。
```bash
## 设置 tailscale-nic-optim 服务开机自启
$ sudo systemctl enable --now tailscale-nic-optim.service
```
### 2.2.启动模式
若仅需 TS 组网功能,执行以下命令。
@@ -639,7 +738,7 @@ $ sudo tailscale up --advertise-exit-node --accept-routes --advertise-routes=172
执行命令后,TS 将自动显示登录链接,只需根据链接进行登录操作即可。
### 2.2.自动更新
### 2.3.自动更新
目前 TS 将跟随系统自动更新,若需额外开启 TS 的自动更新功能,执行以下命令。
@@ -651,7 +750,7 @@ $ sudo tailscale set --auto-update
$ sudo tailscale set --auto-update=false
```
### 2.3.定时任务
### 2.4.定时任务
本步骤为可选操作,主要用于设置 TS 定时重启。
@@ -660,7 +759,7 @@ $ sudo tailscale set --auto-update=false
$ sudo crontab -e
```
在配置文件末尾,增加以下配置项
在配置文件末尾,增加以下内容
```bash
## 定时任务配置项