diff --git a/03.PVE系统调整.md b/03.PVE系统调整.md index 1f98eda..18d20f2 100644 --- a/03.PVE系统调整.md +++ b/03.PVE系统调整.md @@ -162,7 +162,7 @@ performance powersave $ editor /etc/default/cpupower ``` -在配置文件中修改以下配置项,并保存。 +在配置文件中输入以下内容,并保存。 ```bash # This configuration file is customized by fox, @@ -180,7 +180,7 @@ CPUPOWER_STOP_OPTS="frequency-set -g performance" $ editor /etc/systemd/system/cpupower.service ``` -在服务配置文件中修改以下配置项,并保存。 +在服务配置文件中输入以下内容,并保存。 ```bash # This configuration file is customized by fox, @@ -243,7 +243,7 @@ $ crontab -l $ crontab -e ``` -在配置文件末尾,增加以下配置项。 +在配置文件末尾,增加以下内容。 ```bash ## 定时任务配置项 @@ -299,7 +299,7 @@ $ cd /etc/apt/apt.conf.d $ editor /etc/apt/apt.conf.d/20auto-upgrades ``` -删除里面全部内容,添加以下配置项,并保存。 +清空当前全部配置项后,输入以下内容,并保存。 配置文件中,用来控制更新周期的参数为 `APT::Periodic::Unattended-Upgrade` ,`5` 表示更新周期为 `5` 天。 @@ -355,7 +355,7 @@ $ editor /etc/apt/apt.conf.d/50unattended-upgrades "origin=Proxmox,codename=${distro_codename},label=Proxmox Ceph 19 Squid Debian Repository"; -## 在配置文件末尾增加以下配置项,代表启用,并调整参数 +## 在配置文件末尾增加以下内容,代表启用,并调整参数 Unattended-Upgrade::AutoFixInterruptedDpkg "true"; @@ -382,7 +382,7 @@ Unattended-Upgrade::Automatic-Reboot-Time "02:30"; $ systemctl edit apt-daily-upgrade.timer ``` -根据配置文件中的提示,在中间空白处填入以下配置项。 +根据配置文件中的提示,在中间空白处填入以下内容。 ```bash ## 定时器配置项 @@ -464,7 +464,7 @@ $ update-grub $ editor /etc/modules-load.d/10-server-modules.conf ``` -在配置文件中添加以下配置项,并保存。 +在配置文件中输入以下内容,并保存。 ```bash # This configuration file is customized by fox, diff --git a/05.PVE制作虚拟机模板.md b/05.PVE制作虚拟机模板.md index 037da6a..44ec506 100644 --- a/05.PVE制作虚拟机模板.md +++ b/05.PVE制作虚拟机模板.md @@ -23,7 +23,7 @@ $ sudo vim /etc/ssh/sshd_config.d/10-server-sshd.conf ``` -在配置文件中添加以下配置项,并保存。 +在配置文件中输入以下内容,并保存。 ```bash ## SSH 配置项 @@ -175,7 +175,7 @@ update-alternatives: using /usr/bin/nvim to provide /usr/bin/editor (editor) in $ sudo editor /etc/sysctl.d/99-sysctl.conf ``` -在配置文件中添加以下配置项,注意配置中间的空格。 +在配置文件中输入以下内容,注意配置中间的空格。 ```bash # This configuration file is customized by fox, @@ -245,7 +245,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, @@ -317,7 +317,7 @@ $ sudo dpkg-reconfigure -plow unattended-upgrades $ sudo editor /etc/apt/apt.conf.d/20auto-upgrades ``` -删除里面全部内容,添加以下配置项,并保存。 +清空当前全部配置项后,输入以下内容,并保存。 配置文件中,用来控制更新周期的参数为 `APT::Periodic::Unattended-Upgrade` ,`3` 表示更新周期为 `3` 天。 @@ -345,7 +345,7 @@ $ sudo editor /etc/apt/apt.conf.d/50unattended-upgrades "origin=Debian,codename=${distro_codename}-updates"; -## 在配置文件末尾增加以下配置项,代表启用,并调整参数 +## 在配置文件末尾增加以下内容,代表启用,并调整参数 Unattended-Upgrade::AutoFixInterruptedDpkg "true"; @@ -368,7 +368,7 @@ Unattended-Upgrade::Automatic-Reboot-Time "03:00"; $ sudo systemctl edit apt-daily-upgrade.timer ``` -根据配置文件中的提示,在中间空白处填入以下配置项。 +根据配置文件中的提示,在中间空白处填入以下内容。 ```bash ## 定时器配置项 @@ -404,7 +404,7 @@ $ sudo crontab -l $ sudo crontab -e ``` -在配置文件末尾,增加以下配置项。 +在配置文件末尾,增加以下内容。 ```bash ## 定时任务配置项 diff --git a/06.PVE制作DNS服务器.md b/06.PVE制作DNS服务器.md index 6ef5d61..3a986c8 100644 --- a/06.PVE制作DNS服务器.md +++ b/06.PVE制作DNS服务器.md @@ -97,7 +97,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, @@ -171,7 +171,7 @@ $ sudo crontab -l $ sudo crontab -e ``` -在配置文件末尾,增加以下配置项。 +在配置文件末尾,增加以下内容。 ```bash ## 定时任务配置项 @@ -289,7 +289,7 @@ $ sudo /usr/local/bin/smartdns-plugin.sh $ sudo crontab -e ``` -在配置文件末尾,增加以下配置项。 +在配置文件末尾,增加以下内容。 ```bash ## 定时任务配置项 diff --git a/07.PVE制作TS服务器.md b/07.PVE制作TS服务器.md index a700fb0..a28eecc 100644 --- a/07.PVE制作TS服务器.md +++ b/07.PVE制作TS服务器.md @@ -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 ## 定时任务配置项 diff --git a/src/debian/debian_ts_nic_optim.conf b/src/debian/debian_ts_nic_optim.conf new file mode 100644 index 0000000..d851d67 --- /dev/null +++ b/src/debian/debian_ts_nic_optim.conf @@ -0,0 +1,28 @@ +#!/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 + diff --git a/src/debian/debian_ts_nic_optim_service.conf b/src/debian/debian_ts_nic_optim_service.conf new file mode 100644 index 0000000..a0e991d --- /dev/null +++ b/src/debian/debian_ts_nic_optim_service.conf @@ -0,0 +1,19 @@ +# 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 + diff --git a/src/debian/debian_ts_server_modules.conf b/src/debian/debian_ts_server_modules.conf deleted file mode 100644 index 10a273f..0000000 --- a/src/debian/debian_ts_server_modules.conf +++ /dev/null @@ -1,5 +0,0 @@ -# This configuration file is customized by fox, -# Optimize netfilter related modules at system boot. - -nf_conntrack -