1. 创建监听脚本 (/usr/local/bin/fix-ts-whitelist.sh)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
sudo tee /usr/local/bin/fix-ts-whitelist.sh << 'EOF'
#!/bin/bash
# 功能:定期检查并修复 tailscale ts-input 链中的白名单规则

CONFIG_FILE="/etc/tailscale/whitelist.conf"
CHAIN="ts-input"
TABLE="filter"

# 如果配置文件不存在,静默退出
if [[ ! -f "$CONFIG_FILE" ]]; then
exit 0
fi

# 检查 ts-input 链是否存在(tailscale 未运行时可能不存在)
if ! iptables -t $TABLE -L $CHAIN -n >/dev/null 2>&1; then
# 链不存在,无需修复,直接退出
exit 0
fi

# 读取配置文件,忽略空行和注释
# 修正1:使用 || [[ -n "$entry" ]] 防止最后一行无换行符时被丢弃
while IFS= read -r entry || [[ -n "$entry" ]]; do
# 修正2:移除行尾注释(# 及之后的内容),避免非法的 iptables 参数
entry="${entry%%#*}"

# 去除前后空白
entry="$(echo "$entry" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"

# 跳过空行(注释行已被清理或原本就是空行)
[[ -z "$entry" ]] && continue

# 检查规则是否已存在
if ! iptables -t $TABLE -C $CHAIN -s "$entry" -j ACCEPT 2>/dev/null; then
# 插入到链的最顶部(优先级最高)
# 注意:若文件中有多条规则,最后读取的条目会成为第一条,
# 即配置文件中后写的规则会优先匹配,可视需求调整
iptables -t $TABLE -I $CHAIN 1 -s "$entry" -j ACCEPT 2>/dev/null
if [[ $? -eq 0 ]]; then
logger -t "fix-ts-whitelist" "Added ACCEPT rule for $entry"
fi
fi
done < "$CONFIG_FILE"

exit 0
EOF
sudo chmod +x /usr/local/bin/fix-ts-whitelist.sh
  1. 创建 systemd service
1
2
3
4
5
6
7
8
9
sudo tee /etc/systemd/system/fix-ts-whitelist.service << 'EOF'
[Unit]
Description=Ensure Tailscale whitelist iptables rules
[Service]
Type=oneshot
ExecStart=/usr/local/bin/fix-ts-whitelist.sh
StandardOutput=journal
StandardError=journal
EOF
  1. 创建 systemd timer(每 1 分钟执行)

以域名 domain.com为例

生成CA

创建 Root Key

可以使用 genrsa 命令创建 Root key,如下创建一个4096位的RSA私钥,并用aes256加密,保存为root/ca.key.pem文件

1
2
mkdir root
openssl genrsa -aes256 -out root/ca.key.pem 4096

AI翻译,仅供参考

最后验证:Jan 5, 2026

Tailscale 现在使用 grants 来保护资源访问,这是一种新一代访问控制策略语法。Grants 提供了 所有原始 ACL 功能以及额外能力

ACL 将 无限期继续运行;Tailscale 不会从产品中移除对第一代语法的支持。但是,Tailscale 建议 迁移到 grants,并对所有新的 tailnet 策略文件配置使用 grants,因为 ACL 不会获得任何新功能。

所有套餐均提供 ACL,但在某些套餐上 某些功能可能受限

前言

Tailscale是基于wireguard的虚拟局域网搭建工具,除开使用官方的服务外,还支持全过程使用自建服务。

此套搭建方式不强制使用HTTPS,支持IP访问,且基于官方原版,不进行额外源码修改

包含HTTPS的部分都可变更为HTTP,关键配置部分有对应说明。

环境

关于HEXO

虽然自己写有过博客系统,但是想想,性能问题,暂时还是使用HEXO吧

贫穷使人认清现实

后续计划

接下来我会不定期更新技术文章,欢迎关注!

0%