You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tailscale ACL配置咨询:放行全网除特定主机及单主机端口限制

Tailscale ACL 配置问题解答

1. 允许Tailnet内所有主机互访,但禁止访问特定受保护主机

有两种简洁的实现方式:

方式一:利用规则顺序先拒后允

Tailscale ACL 遵循从上到下匹配,匹配即停止的逻辑,先添加拒绝访问目标主机的规则,再开放所有其他互访权限:

"acls": [
  // 拒绝所有主机访问受保护机器的所有端口
  {
    "action": "deny",
    "src": ["*"],
    "dst": ["protected-host:*"]
  },
  // 允许Tailnet内所有主机自由互访
  {
    "action": "accept",
    "src": ["*"],
    "dst": ["*:*"]
  }
]

方式二:使用排除语法直接实现「除某主机外全部允许」

在允许规则的dst字段中用!标记需要排除的主机,写法更紧凑:

"acls": [
  {
    "action": "accept",
    "src": ["*"],
    "dst": ["*:*", "!protected-host:*"]
  }
]

2. 配置公网可访问服务器(仅开放9100端口)+ 禁止该服务器向Tailnet出站

你的现有配置存在逻辑漏洞:第二条规则会允许Tailnet内主机访问该服务器的所有端口,同时也会放行该服务器向Tailnet的出站请求。正确配置需要按严格顺序设置三条规则:

"acls": [
  // 1. 禁止目标服务器向Tailnet发起任何出站连接
  {
    "action": "deny",
    "src": ["website-docker-host-1"],
    "dst": ["*:*"]
  },
  // 2. 仅允许公网访问该服务器的9100端口
  {
    "action": "accept",
    "src": ["tag:internet"],
    "dst": ["website-docker-host-1:9100"]
  },
  // 3. 允许Tailnet内其他所有主机自由互访
  {
    "action": "accept",
    "src": ["*"],
    "dst": ["*:*"]
  }
]

规则说明:

  • 第一条规则优先匹配,直接阻断目标服务器的所有出站请求,确保它无法访问Tailnet内任何节点
  • 第二条规则仅开放公网(tag:internet)对目标服务器9100端口的访问权限
  • 第三条规则保障Tailnet内其他主机的正常互访,不会被前两条规则影响

如果需要允许Tailnet内特定主机访问该服务器的9100端口,可在第二条规则的src中添加对应主机标识,例如:["tag:internet", "internal-monitor-host"]

内容的提问来源于stack exchange,提问作者GaryO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 08:40:15