# AWS Lightsail + Tailscale 个人 VPN 部署手册

更新日期：2026-10-29（北京时间）  
适用场景：北京的 Windows 电脑、iPhone，通过东京或悉尼云服务器上网；按需邀请朋友使用出口或联机。  
已走通的配置：东京 Lightsail、Ubuntu 24.04 LTS、512MB 内存、双栈公网网络、Tailscale 出口节点。

> 本手册整理了本次实际部署过程。界面文字、价格、注册审核和套餐可能变化，以下以操作当天的官方页面为准。注册可用不代表北京到该服务器的线路一定稳定。本文讲的是技术配置，不据此判断某项跨境联网用途的合规性；使用时遵守适用规定与服务条款。

> 公开版说明：服务器地址 100.100.100.100、设备名和实例名仅为示例，必须替换为自己的配置。费用、套餐人数与界面以官方当前页面为准。本文保留原手册日期，不表示所有步骤已重新实测。

## 目录

1. [先弄清楚方案与费用](#1-先弄清楚方案与费用)
2. [中国用户注册前需要准备什么](#2-中国用户注册前需要准备什么)
3. [从零创建服务器](#3-从零创建服务器)
4. [安装与启用 Tailscale 出口](#4-安装与启用-tailscale-出口)
5. [Windows 与 iPhone 连接](#5-windows-与-iphone-连接)
6. [查询流量与创建桌面图标](#6-查询流量与创建桌面图标)
7. [其他人如何连接](#7-其他人如何连接)
8. [常见问题与处理](#8-常见问题与处理)
9. [日常使用、安全与停用](#9-日常使用安全与停用)
10. [示例配置记录与官方资料](#10-示例配置记录与官方资料)

## 1. 先弄清楚方案与费用

### 1.1 连接路径

```text
Windows / iPhone → Tailscale 加密连接 → 东京或悉尼服务器 → 目标网站
```

选择服务器作为出口节点后，经过该出口的网站访问显示服务器的公网出口 IP。东京服务器通常对应日本 IP，悉尼通常对应澳洲 IP；网站的地区数据库可能有误差。云服务器 IP 属于机房地址，不是住宅宽带 IP。

仅登录 Tailscale、看到设备在线，并不代表已经使用服务器上网；每个客户端都要单独选择 Exit Node。

### 1.2 配置与预算

| 项目 | 入门配置 | 说明 |
|---|---|---|
| 云服务器 | Ubuntu 24.04 LTS，512MB 内存 | 个人轻量转发先测试；运行游戏服务端需另算 |
| 网络 | Dual-stack，包含公网 IPv4 | 避免误选仅 IPv6 套餐 |
| 参考租金 | 512MB 公网 IPv4 套餐约 US$5/月；1GB 约 US$7/月 | 不含可能的税费、超额流量与附加服务 |
| Tailscale | Personal 免费方案 | 查询时支持最多 6 位用户；商业用途、人数超额另查计划 |
| 域名 | 不需要 | 这套部署不必购买域名、网站证书或负载均衡器 |
| 静态公网 IPv4 | 建议关联一个 | 关联实例时不额外收费，闲置未关联可能收费 |

这些是标价参考，不是固定人民币报价或免费承诺。新用户抵用金、Free/Paid 账户计划和优惠资格按实际账号显示；不要把旧教程中的“固定免费三个月”当作保证。Paid 账户计划不等于必须购买付费技术支持。

参考：[Lightsail 定价](https://aws.amazon.com/lightsail/pricing/)、[Tailscale 定价](https://tailscale.com/pricing)、[Lightsail 计费与优惠说明](https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-frequently-asked-questions-faq-billing-and-account-management.html)。

### 1.3 流量怎样计算

- Lightsail 实例的入站和出站都会消耗套餐流量额度。
- 超过额度后，计费规则对入站和出站不同：超额入站不收费，符合计费条件的超额公网出站会收费。
- VPN 下载 10GB 文件，通常会产生约 10GB 入站、10GB 出站，即约 20GB 额度消耗，另有协议开销。
- 东京与悉尼额度不同：悉尼属于官方列出的流量额度减半地区，东京不在该列表内。请按创建页面对应地区与套餐确认。
- 流量额度每月重置；本地统计的自然月与账单明细、单位和延迟可能存在差异，最终以 AWS 为准。

参考：[官方流量规则](https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-faq-data-transfer-allowance.html)。

## 2. 中国用户注册前需要准备什么

### 2.1 AWS 全球账号和中国区账号不要混淆

本方案租东京或悉尼资源，使用 **AWS 全球服务账号**，入口是 [AWS 全球网站](https://aws.amazon.com/) 和 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

AWS 中国区域（北京、宁夏）的账号和全球账号属于不同体系。网站的 `/cn/` 中文页面不等于中国区域账号；判断时看所注册的服务体系和控制台，而不是页面语言。

参考：[AWS 全球与中国账号区分](https://aws.amazon.com/china-gateway/)。

### 2.2 AWS 要准备的资料

| 信息 | 如何准备 | 是否必须境外资料 |
|---|---|---|
| 邮箱 | 自己长期可访问、能接收验证码与账单的邮箱 | 不要求必须境外邮箱 |
| 姓名、联系地址、邮编 | 填写真实信息；按表单格式填写 | 不需要虚构日本、澳洲或美国地址 |
| 联系电话 | 使用本人可接收验证短信或电话的号码，按表单选择国家代码 | 没有“必须境外手机号”的通用要求；具体验证以页面为准 |
| 支付方式 | 准备符合账号页面要求的有效信用卡 | AWS Inc. 已支持中国银联信用卡开户路径，不必一概认为必须境外卡 |
| 身份资料 | 选择人民币/银联支付时，个人通常需按提示完成身份证件信息核验 | 按官方页面要求提供本人真实资料 |
| MFA | 准备验证器或账号支持的通行密钥等验证方式 | 注册后保护账号使用 |

AWS 官方明确提供：地址与账单国家填写中国，选择中国银联信用卡并进行个人或企业身份核验。人民币信用卡路径当前不支持人民币借记卡。不要将该政策理解为所有银行卡、所有账号都一定能通过审核；是否扣款成功也取决于发卡行。

参考：[AWS 支持银联信用卡开户公告](https://aws.amazon.com/about-aws/whats-new/2025/02/china-unionpay-credit-card-create-aws-account/)、[人民币支付与身份核验](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-payment-cny.html)。

### 2.3 AWS 注册流程

1. 从 AWS 全球网站选择 Create an AWS Account。注册界面可能提供传统账号或其他登录方式，本文按可管理 Lightsail 的完整 AWS 账号说明。
2. 验证邮箱，填写账号名称，并按页面设置登录方式。
3. 个人用途选择个人类型，填写真实中国联系方式和地址。
4. 按页面添加有效支付方式；选择银联/人民币路径时完成所需身份验证。
5. 按提示完成手机验证。
6. 如要求选择 Support plan，可选择适合本用途的免费 Basic 支持，避免误订付费支持。
7. 等待账号激活。若有额外审核，查看邮箱与官方 Support Center，不要连续创建多个账号绕过审核。
8. 登录 Lightsail，确认可选择 Tokyo 或 Sydney 并创建所需规格。账号处于受限体验状态时，按页面核实是否需要升级到可使用该服务的完整计划，再确认费用。
9. 开启 AWS MFA，设置费用提醒。

参考：[AWS 注册流程](https://docs.aws.amazon.com/accounts/latest/reference/getting-started.html)。

### 2.4 Tailscale 要准备的账号

Tailscale 通常通过已有身份服务登录，例如个人 GitHub、Microsoft、Google 或 Apple 账号；不是直接建立一套 Tailscale 邮箱密码。本次使用个人 GitHub。自己的电脑、手机和服务器应使用同一个身份加入同一网络；朋友使用各自账号。

创建个人网络没有租服务器那样的账单地址要求。免费个人方案不要求先购买境外地址、外国手机号、境外信用卡或付费域名。身份服务自身可能要求邮箱、手机或其他验证，按其实际注册要求完成。

参考：[Tailscale 支持的身份服务](https://tailscale.com/docs/integrations/identity)。

### 2.5 国内访问与 iPhone 下载

- 先确认能访问 Tailscale 官网、管理页面及你选择的登录服务，再购买服务器。北京不同运营商、时段和网络环境下，可用性可能不同。
- Google 登录不应作为唯一预设路径；可先测试自己已有的 GitHub、Microsoft 或 Apple 账号能否正常完成授权。
- 如果登录页或客户端连接失败，检查服务状态、网络连通性和账号验证；不要误以为租了服务器就自动解决控制面登录问题。
- iPhone 通过官方 App Store 链接安装。不同商店地区的可用性以手机实际页面为准；本手册不将“必须有境外 Apple 账号”写成通用条件。如果显示该地区不可用，通过 Apple/Tailscale 官方支持核实可用渠道。

## 3. 从零创建服务器

### 3.1 先准备 Windows 客户端

1. 从 [Tailscale 官方下载页](https://tailscale.com/download/windows)下载安装。
2. 打开并登录自己的身份账号。
3. 进入 [Machines 设备列表](https://login.tailscale.com/admin/machines)，确认 Windows 电脑在线。

### 3.2 创建 Lightsail 实例

打开 Lightsail，点击 Create instance：

| 项目 | 本次选择 |
|---|---|
| Instance location | Tokyo，代码 `ap-northeast-1` |
| 若需要澳洲 IP | 改选 Sydney，代码 `ap-southeast-2` |
| 平台 | Linux operating system |
| Blueprint | Ubuntu 24.04 LTS；没有时可选仍受支持的 22.04 LTS |
| Networking type | Dual-stack，含公网 IPv4 |
| 规格 | 512MB 内存起步 |
| 名称 | `hz-vpn` 或自己容易识别的名字 |
| 数量 | 1 |

注意：界面中的 Linux apps 是预装应用类别。本方案选择 Linux operating system → Ubuntu。不要误选 OpenClaw、WordPress 或 Windows 镜像。

先不添加快照、额外磁盘、域名和负载均衡器。核对地区、价格、数量后创建。等实例显示 Running、健康检查通过后继续。若地区选错，重新在目标地区创建；普通实例的地区不能在原页面直接切换。确认新实例可用后删除不需要的旧实例。

参考：[创建 Lightsail 实例](https://docs.aws.amazon.com/lightsail/latest/userguide/getting-started-with-amazon-lightsail.html)。

### 3.3 关联静态公网 IPv4

1. 进入实例 Networking，点击 Attach static IP；若无现成地址，选择创建。
2. 或从 Lightsail 左侧 Networking → Create static IP 进入。
3. 地区选择实例所在地区，关联自己的实例。
4. 起名，例如 `hz-vpn-ip`，创建并关联。
5. 记录新的公网 IPv4；它可能与最初动态 IP 不同。

参考：[静态 IP 创建说明](https://docs.aws.amazon.com/lightsail/latest/userguide/lightsail-create-static-ip.html)。

### 3.4 添加 UDP 防火墙规则

实例 → Networking → Firewall rules → Add rule：

| 项目 | 填写 |
|---|---|
| Application | Custom |
| Protocol | UDP |
| Port or port range | `41641` |
| Source | Anywhere IPv4；启用公网 IPv6 时可同时添加 Anywhere IPv6 |

点击 Add rule 保存。保留 SSH TCP 22 和 Lightsail browser SSH 访问能力。开放 UDP 41641 是帮助直连，不是开放所有端口。普通客户端不需要另开放公网 DNS 53 或网页端口来使用出口。

如服务器自身启用了 UFW，也应按所需规则放行，例如 `sudo ufw allow 41641/udp`。不要为了排错盲目启用或关闭 UFW；先检查 `sudo ufw status`，避免锁住 SSH。

参考：[AWS 防火墙操作](https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-editing-firewall-rules.html)、[Tailscale 端口说明](https://tailscale.com/docs/reference/faq/firewall-ports)。

## 4. 安装与启用 Tailscale 出口

### 4.1 打开服务器终端

实例 → Connect → Connect using SSH。看到 `ubuntu@...:~$` 后，才在该窗口执行本节 Linux 命令。不要把它们粘贴到 Windows PowerShell。

### 4.2 安装 Tailscale

每一框执行完成后，再执行下一框：

```bash
sudo apt-get update
sudo apt-get install -y curl
```

```bash
curl -fsSL https://tailscale.com/install.sh | sh
```

看到 Installation complete 后继续。上面脚本来自 Tailscale 官方域名；如果不希望运行安装脚本，可按官方文档使用系统软件源安装。

参考：[Linux 安装说明](https://tailscale.com/docs/install/linux)。

### 4.3 开启 IPv4 / IPv6 转发

整段复制，包括最后的 EOF：

```bash
sudo tee /etc/sysctl.d/99-tailscale.conf >/dev/null <<'EOF'
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
EOF

sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
```

预期输出两个 `= 1`。这将配置保存下来，服务器重启后仍会加载。

### 4.4 登录并声明出口

```bash
sudo tailscale up --advertise-exit-node
```

1. 复制终端这次新生成的登录链接到浏览器。
2. 使用与 Windows 相同的账号授权。
3. 等服务器终端完成登录，再执行：

```bash
tailscale status
```

正常会看到服务器、电脑等设备，而不是 Logged out。登录链接是临时凭据，不要公开发布。

### 4.5 在管理页面批准出口

进入 Machines，找到 Ubuntu 服务器：

1. 点击右侧 `…`。
2. 选择 Edit exit node；部分版本放在 Edit route settings。
3. 勾选 Use as exit node 并保存。

如果开启了新设备审批，还要分别批准服务器本身加入。设备审批和允许充当出口是不同事项。默认策略一般已允许成员使用出口；自定义过访问规则的网络，需要额外核实 `autogroup:internet` 权限。

参考：[出口节点配置](https://tailscale.com/docs/features/exit-nodes)。

## 5. Windows 与 iPhone 连接

### 5.1 Windows 使用出口

1. 打开任务栏右下角隐藏图标区，右键 Tailscale。
2. 确认登录的是自己的同一网络。
3. 选择 Use exit node → Ubuntu 服务器。
4. 如需继续访问家中打印机、路由器、NAS，启用 Allow local network access。

不要选 Run exit node，那是把 Windows 自己设为出口。

在 Windows PowerShell 验证 IPv4：

```powershell
curl.exe -4 https://checkip.amazonaws.com
```

返回地址应与服务器当前公网 IPv4 一致，而不是服务器的 `100.x.x.x` 虚拟 IP。IPv4 验证成功只证明该次 IPv4 请求走了出口；如果关心 IPv6，也应通过支持 IPv6 的 IP 查询工具单独检查。

恢复直接上网：Use exit node → None。

### 5.2 iPhone 使用出口

1. 从 [官方 iOS 下载入口](https://tailscale.com/download/ios)安装 Tailscale。
2. 打开，允许添加 VPN 配置，按提示验证。
3. 登录自己的同一身份账号。
4. 若开启设备审批，去管理页面批准这台 iPhone。
5. 在手机 Tailscale 中打开连接开关，进入 Exit Node，选择 Ubuntu 服务器。
6. 用 Safari 打开 `https://checkip.amazonaws.com`，核对公网 IPv4。

手机不需要 AWS 私钥，也不需要复制 Windows VPN 配置。电脑与手机可同时使用，但共用服务器带宽和套餐流量。蜂窝网络下也会消耗手机运营商流量。

若手机上有其他 VPN 或网络过滤类应用，排查时先只保留当前要测试的 VPN 连接，避免配置冲突。停用出口选择 None；完全停用 Tailscale可关闭其连接。

参考：[iOS 安装](https://tailscale.com/docs/install/ios)、[iOS 出口使用](https://tailscale.com/docs/features/exit-nodes?tab=ios)。

### 5.3 开机后怎样使用

- AWS 实例保持 Running；Tailscale 服务通常随 Linux 启动，不用每次重装或 SSH 登录。
- Windows 在系统“设置 → 应用 → 启动”或任务管理器启动项中确认 Tailscale 的启动配置；客户端若提供 Run unattended，可按需要启用，让其在未登录用户会话时运行。
- 开机后检查出口是否仍选中服务器；若未选中，再选一次。不要仅凭客户端已启动就认定出口生效。
- 账号登录到期需要重新验证时，按提示完成；重复使用同一设备通常无需每次审批。

## 6. 查询流量与创建桌面图标

### 6.1 AWS 与本地统计的区别

| 查看方式 | 适合查看 | 注意 |
|---|---|---|
| Lightsail → 实例 → Metrics | 收发趋势、峰值、CPU | 图中每个点不是本月累计总量 |
| AWS Billing → Bills → Lightsail → 对应地区 | AWS 已记录的用量和超额费用 | 账单有延迟；费用为 0 不表示流量为 0 |
| vnStat / 桌面流量球 | 本地按天、按月累计 | 从安装之后记录，不能恢复之前流量，不等于官方计费 |

账单关注 `TotalDataXfer-In-Bytes`、`TotalDataXfer-Out-Bytes`、`DataXfer-Out-Overage-Bytes` 等用量项。

参考：[AWS 账单说明](https://docs.aws.amazon.com/lightsail/latest/userguide/understanding-your-amazon-lightsail-bill.html)、[Metrics 说明](https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-viewing-instance-health-metrics.html)。

### 6.2 安装 vnStat

在服务器终端执行：

```bash
sudo apt-get update
sudo apt-get install -y vnstat
sudo systemctl enable --now vnstat
```

确认联网网卡：

```bash
ip route show default
```

本次网卡是 `ens5`。如果你的输出里是其他名称，下面命令和工具配置要一起修改。

```bash
vnstat -i ens5 -m
vnstat -i ens5 -d
```

- `rx` 为接收，`tx` 为发送，`total` 为合计。
- 日期行是实际记录；`estimated` 是推算值，并非已经用掉的量。
- `avg. rate` 是统计期间的平均速率，不是限速。
- 新安装后若数据不足，使用几分钟后再查。
- 服务器使用 UTC 时，北京凌晨可能仍显示前一天；UTC 比北京时间慢 8 小时。
- 不要把 `ens5` 与 `tailscale0` 的流量再相加，避免把同一转发重复计算。

参考：[Ubuntu vnStat 手册](https://manpages.ubuntu.com/manpages/noble/man1/vnstat.1.html)。

### 6.3 资料包里有什么

本文配套 ZIP 的结构：

```text
VPN部署资料包/
  AWS与Tailscale个人VPN部署手册.md
  工具/
    TrafficBall.ps1             悬浮球主程序
    Launch-TrafficBall.vbs      隐藏终端启动器
    Create-Shortcut.ps1         按解压位置生成桌面快捷方式
    创建桌面快捷方式.cmd        双击运行上面的安装步骤
    Check-VPN-Traffic.cmd       文字统计窗口
```

包内不包含 AWS 私钥、登录凭据或授权链接。已有原版流量球能正常使用的话，可继续使用，不必重复安装。

### 6.4 下载 SSH 私钥

仅桌面统计工具需要这一步；普通 VPN 上网不需要私钥。

在实例 Connect 页面选择 Download default key，或在 Lightsail 的 Account → SSH keys 下载实例对应地区的默认私钥。若实例使用自定义密钥，必须使用对应私钥。

本次东京默认文件名：

```text
LightsailDefaultKey-ap-northeast-1.pem
```

保存至 Windows 的 `%USERPROFILE%\Downloads`。资料包流量球也会尝试 `%USERPROFILE%\.ssh`。

参考：[AWS SSH 密钥说明](https://docs.aws.amazon.com/lightsail/latest/userguide/understanding-ssh-in-amazon-lightsail.html)。

### 6.5 首次手动验证 SSH

先在 AWS 浏览器终端执行：

```bash
sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
```

然后在 Windows PowerShell 执行，地址换成服务器在 Machines 中的 Tailscale IPv4：

```powershell
$serverIp = '100.100.100.100'
$keyPath = "$env:USERPROFILE\Downloads\LightsailDefaultKey-ap-northeast-1.pem"
ssh -i $keyPath "ubuntu@$serverIp" "vnstat -i ens5 -m"
```

首次提示主机真实性时，核对 ED25519 指纹与 AWS 终端输出一致后输入 `yes`。如果本地找不到 ssh，在 Windows 可选功能中安装 OpenSSH Client。出现私钥权限错误时，按第 8.4 节修复后再试。

小球使用严格主机验证和非交互登录，因此应先完成这次验证。

### 6.6 创建文字统计图标

可以使用资料包的 `Check-VPN-Traffic.cmd`。本次默认服务器地址是 `100.100.100.100`，网卡为 `ens5`，私钥为东京默认文件名。新部署需要用记事本修改其中相应字段。

也可以自己用记事本建立以下内容，保存为 UTF-8 的 `查看VPN流量.cmd`，文件类型选择“所有文件”，避免保存成 `.cmd.txt`：

```bat
@echo off
set "VPN_SERVER=100.100.100.100"
set "VPN_KEY=%USERPROFILE%\Downloads\LightsailDefaultKey-ap-northeast-1.pem"
ssh.exe -o ConnectTimeout=15 -o IdentitiesOnly=yes -i "%VPN_KEY%" ubuntu@%VPN_SERVER% "vnstat -i ens5 -m && vnstat -i ens5 -d"
pause
```

双击显示月度与每日统计。保存到桌面或为这个文件创建快捷方式即可。

### 6.7 创建悬浮球图标

1. 将整个 ZIP 解压至固定位置，例如“文档”下的 `VPN部署资料包`；不要直接在压缩包里运行。
2. 确保 vnStat 已安装、私钥已保存且手动 SSH 成功。
3. 若是新服务器，用记事本打开 `工具\TrafficBall.ps1`，修改文件开头三项：

```powershell
$script:serverAddress = '100.100.100.100'
$script:interfaceName = 'ens5'
$script:keyFileName = 'LightsailDefaultKey-ap-northeast-1.pem'
```

4. 双击 `工具\创建桌面快捷方式.cmd`。
5. 桌面出现 `VPN流量球.lnk`，双击启动。

安装脚本按当前解压位置生成快捷方式，避免沿用只适用于原电脑位置的 `.lnk`。如果桌面已有同名快捷方式，它不会覆盖；已有工具工作正常时无需再次创建。若要换成资料包版本，先自行移走旧快捷方式，再重新创建。

如果桌面写入被 Windows 权限拒绝，可手动创建：右键桌面 → 新建 → 快捷方式 → 浏览选择 `工具\Launch-TrafficBall.vbs` → 起名“VPN流量球”。这时也要保留工具目录不动。

### 6.8 小球怎样使用

| 操作 | 效果 |
|---|---|
| 左键拖动 | 改变位置，退出时保存 |
| 悬停 | 查看详细用量、状态与更新时间 |
| 双击 | 显示用量说明 |
| 右键 → 立即刷新 | 手动读取 |
| 右键 → 设置每月参考额度 | 按自己的套餐调整分母 |
| 右键 → 始终置顶 | 切换置顶 |
| 右键 → 退出小球 | 停止运行 |

计算规则为：本月 `ens5` 的接收字节 + 发送字节，除以你设置的参考额度。默认是 **1000GB**，工具中 1GB = 10亿字节。它只是参考预算，不保证与 AWS 对 TB/GB 的计费口径完全一致，也不自动读取账户套餐。

按服务器 UTC 自然月取实际记录，不使用 estimated。数据来源是安装 vnStat 之后的记录，因此不能替代完整 AWS 账单。累计很少时显示 `<0.1%`，不是故障。

每 60 秒通过 SSH读取一次简短 JSON。没有测速、网页抓取或大文件下载；SSH 握手和响应有少量流量，确切值取决于环境，不能把先前粗估当成实测。需要省流量时，可将脚本中自动刷新判断的 `TotalSeconds -ge 60` 改为 `TotalSeconds -ge 300`，关闭并重开小球；0.5秒界面轮询计时器不会每次都联网。

小球要求 Tailscale 已连接，但不要求 Windows 选中服务器作为全局出口。失联时显示“未连接”等状态，并保留同月上次记录作为旧值；悬停检查更新时间。跨月没有有效记录时显示 `--%`。

### 6.9 开机自动启动小球

1. 按 `Win + R`。
2. 输入 `shell:startup`，回车。
3. 把桌面的 `VPN流量球.lnk` 复制进去。

这是当前用户登录后启动，不是电脑尚未登录时就显示小球。保留原始程序目录，不要移动或删除；目录变化后需重新生成快捷方式。取消自启只需删除启动文件夹中的 `.lnk`。

## 7. 其他人如何连接

先分清：只想借用日本 IP，优先只共享服务器；希望互相访问电脑、游戏联机，则考虑邀请加入同一网络。朋友始终使用自己的身份账号，不共用你的 GitHub 或 AWS 账号，不发送服务器私钥。

### 7.1 方式 A：只共享服务器出口

这是仅借用出口时较合适的范围：朋友可访问共享服务器，不因此加入你的整个网络。

你操作：

1. Machines → 找到服务器 → `…` → Share。
2. 使用邀请链接或邮箱共享。
3. 确认 **Allow use as an exit node** 已勾选。
4. 把一次性链接发给指定朋友，避免公开传播。

朋友操作：

1. 使用自己的 Tailscale 账号接受共享邀请。
2. 安装并登录客户端。
3. 在 Exit Node 中选择你共享的服务器。
4. 查询公网 IP，核对是否与服务器出口一致。

共享双方的访问策略都会影响连接。对方若在组织网络中，可能需要其管理员批准。这个共享不会自动让朋友看到或访问你的个人电脑，也不等于双方游戏电脑已经组成局域网。

取消：服务器的 Share 设置中撤销对应分享。

参考：[共享机器与出口节点](https://tailscale.com/docs/features/sharing)。

### 7.2 方式 B：邀请加入同一 Tailscale 网络

你操作：

1. 管理网站 → Users → Invite external users。
2. 选择 Copy invite link。
3. 角色选择 Member，而不是 Admin。
4. Generate & copy invite link，发给朋友。

朋友操作：

1. 打开链接，用自己的账号接受。
2. 安装 Tailscale 并登录相同账号。
3. 如果有多个网络，选择你的网络。

你再检查：

- 若开启用户审批，在 Users 批准该用户。
- 若开启设备审批，在 Machines 核对并批准朋友的设备。

默认互通规则下，成员可能访问你电脑上开放的服务。仅需要出口的朋友不必获得整个网络成员权限；确需加入时，按实际用途调整访问策略。默认策略通常允许成员使用已批准出口，自定义过策略则核实权限。

参考：[邀请用户](https://tailscale.com/docs/features/sharing/how-to/invite-any-user)。

### 7.3 用来玩局域网游戏时

- 房主创建游戏，其他人使用房主电脑的 Tailscale IP 与游戏端口加入；不是一律填写云服务器 IP。
- Windows 防火墙需允许相应游戏连接，版本、模组和端口要一致。
- Tailscale 普通组网不会自动转发传统局域网发现所需的广播/组播。能输入 IP 的游戏比较适合；只能搜索房间的游戏，可能需游戏专用发现工具或 ZeroTier、SoftEther 等其他方案。
- 开启云服务器出口不等于两台游戏电脑间的 Tailscale 流量必定经过该服务器。Tailscale 会选择自己的设备间连接路径，可能直连或中继。
- 通常不需要为游戏联机打开全局出口。若想强制固定中转，需要另行设计路由，不能仅靠选中 Exit Node 假定已经实现。

### 7.4 费用与流量归属

朋友使用服务器出口时，共用该服务器带宽和流量额度；收发流量会体现在同一 `ens5` 统计，小球不会自动分人统计。网络内游戏若直接连接两台电脑，不经过服务器的部分不会记入该服务器流量。

Tailscale 人数/方案额度按当前个人计划核对，不应承诺无限人数免费。移除网络成员用 Users 中的暂停/移除操作；只共享机器的朋友在 Share 中撤销。

## 8. 常见问题与处理

### 8.1 AWS 或身份服务注册失败

| 现象 | 优先检查 |
|---|---|
| 收不到邮件 | 垃圾箱、邮箱拼写、收信规则，使用长期可控邮箱 |
| 手机验证码收不到 | 国家代码、号码格式、短信拦截、页面提供的其他验证方式 |
| 卡验证失败 | 是否为支持的信用卡、银行限制、账单资料、身份核验状态 |
| 提示中国区/全球账号不匹配 | 从正确的全球服务入口注册、登录 |
| 激活或创建实例被限制 | 账号激活邮件、支付验证、配额和官方账户支持 |
| 登录 Tailscale 后看不到原设备 | 是否选了不同身份服务、账号或网络 |
| 官网/授权页访问不稳定 | 先区分网站连通性与账号错误；查看官方状态或联系支持 |

不要购买来历不明的成品账号、借用身份资料，或为通过审核填写虚假境外地址。需要补交资料时，只在官方账户页面提交。

### 8.2 `tailscale status` 显示 Logged out

在服务器终端执行：

```bash
sudo tailscale up --advertise-exit-node
```

打开本次新生成的链接重新登录并授权，再执行 `tailscale status`。网站显示过 Login successful，不代表服务器当前一定仍在线；以当前状态和网络连接测试为准。

`sudo systemctl restart tailscaled` 成功时通常不输出内容。重启服务并不能代替账号重新登录。

### 8.3 Windows / 手机看不到出口或启用后无法上网

按顺序检查：

1. AWS 实例是否 Running、健康检查是否正常。
2. 服务器 `tailscale status` 是否已登录。
3. 服务器与客户端是否属于正确账号/网络。
4. 设备是否需要审批；服务器是否允许 Use as exit node。
5. `sysctl net.ipv4.ip_forward net.ipv6.conf.all.forwarding` 是否为 1。
6. Tailscale、系统时间、客户端版本是否正常。
7. 自定义策略是否允许 `autogroup:internet`；共享模式是否勾选允许出口。
8. 如果出现 DNS 错误，检查 Tailscale DNS 配置和服务器的解析能力，不要凭猜测全面关闭防火墙。

如启用出口后断网，先在客户端选择 None 恢复本地连接，再继续排查。服务器在管理列表显示灰点本身不是完整诊断，应结合 `tailscale status`、实际连接和健康检查判断。

### 8.4 私钥权限过宽：UNPROTECTED PRIVATE KEY FILE

本次出现过 `CodexSandboxUsers` 等组可访问私钥，Windows OpenSSH 因此忽略密钥。只修改该文件 ACL，不需要重新购买服务器或生成所有密钥。

在你自己的 Windows PowerShell 中执行：

```powershell
$keyPath = "$env:USERPROFILE\Downloads\LightsailDefaultKey-ap-northeast-1.pem"
$userSid = [System.Security.Principal.WindowsIdentity]::GetCurrent().User

$acl = [System.Security.AccessControl.FileSecurity]::new()
$acl.SetOwner($userSid)
$acl.SetAccessRuleProtection($true, $false)
$rule = [System.Security.AccessControl.FileSystemAccessRule]::new(
    $userSid,
    [System.Security.AccessControl.FileSystemRights]::FullControl,
    [System.Security.AccessControl.AccessControlType]::Allow
)
$acl.AddAccessRule($rule)
Set-Acl -LiteralPath $keyPath -AclObject $acl -ErrorAction Stop
Write-Host '密钥权限已修复'
```

这会将私钥访问权限限制为当前账号。路径必须指向你实际保存的私钥。若访问被拒绝，确认文件所有者和当前登录账号，使用自己的账户处理，不要把私钥改为 Everyone 可读。

参考：[微软 OpenSSH 密钥管理](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement)。

### 8.5 其他 SSH、桌面图标与统计问题

| 现象 | 处理 |
|---|---|
| Permission denied (publickey) | 先处理密钥权限，再确认用户名为 ubuntu、密钥匹配实例地区/自定义密钥 |
| Connection timed out | Tailscale 是否在线、虚拟 IP 是否正确、实例是否运行、服务器 SSH 服务及防火墙 |
| Host key verification failed | 用 AWS 浏览器终端核对指纹；确认服务器确实重建过后，再清理对应旧记录，不盲目禁用主机校验 |
| vnstat: command not found | 按 6.2 安装 vnStat |
| 没有 ens5 数据 | `ip route show default` 确认实际网卡，修改命令和工具配置 |
| No data available | 刚安装时等待采样；再检查 `sudo systemctl status vnstat --no-pager` |
| 小球一直显示未连接 | 先完成 6.5 手动 SSH；双击小球或悬停查看错误；确认密钥路径 |
| 小球显示数据滞后 | 检查 vnStat 服务和服务器时间，数据库超过 15 分钟未更新会提示 |
| 小球双击没有出现 | 保留同目录主程序；从 PowerShell 手动运行以查看错误；检查系统是否限制 VBS/脚本 |
| 快捷方式移动后失效 | `.lnk` 只是指向程序的位置；程序目录移动后需重新生成 |
| 统计日期比北京少一天 | UTC 时区差异，不是数据丢失 |
| 预计流量非常大 | 看实际日期行 total，不要看 estimated |

小球手动诊断示例：在“工具”文件夹空白处打开 PowerShell，然后执行：

```powershell
powershell.exe -NoProfile -STA -ExecutionPolicy Bypass -File .\TrafficBall.ps1
```

该执行策略参数只用于此进程运行本资料包脚本，不需要修改系统全局执行策略。若电脑由组织管理且禁止脚本，应遵守管理策略。

### 8.6 速度慢

Windows PowerShell 查看连接路径：

```powershell
& "$env:ProgramFiles\Tailscale\tailscale.exe" status
```

先产生一些访问流量，再看服务器对应行：`direct` 为直连，`relay` 为中继。也可执行 `tailscale ping` 对虚拟 IP 测试。中继可能降低性能，但不能把所有慢速都归因于中继。

检查北京晚间与白天表现、丢包、服务器 CPU 和内存；有需要再考虑地区或线路。512MB 小规格如果内存不足，可查看 `free -h`，升级可能解决内存瓶颈，却不能修复跨国线路拥堵。

东京可能比悉尼延迟低，但没有保证。服务器端口标称带宽也不是北京的实际下载承诺。测速会实际产生流量，只在需要诊断时做。

参考：[Tailscale 连接类型](https://tailscale.com/docs/reference/connection-types)。

## 9. 日常使用、安全与停用

### 9.1 新设备审批

管理页面 Settings → Device management → Device approval，按提示开启。之后到 Machines 找 Needs approval 设备，核对后 `…` → Approve。免费方案也支持；账号需具备相应管理权限。

设备审批并不能替代登录账号的 MFA。给本次使用的 GitHub 和 AWS 账号开启双重验证；维护设备列表，只保留认识的设备。

参考：[设备审批](https://tailscale.com/docs/features/access-control/device-management/device-approval)。

### 9.2 服务器和客户端维护

- 保持 Ubuntu、Tailscale 和 Windows 更新；维护前确认能从 AWS 浏览器终端进入。
- 服务器记录更新 `sudo apt-get update`，按需使用 `sudo apt-get upgrade`；若提示重启，在可接受的中断时段重启并验证出口。
- SSH 密钥、登录链接和邀请链接不公开传播；朋友连接 VPN 不需要拿到私钥。
- 未使用网站服务时，可以删除 HTTP 80 放行规则。SSH 限制来源时保留浏览器 SSH，避免失去管理入口。
- Tailscale 加密保护客户端到出口；访问网站仍优先 HTTPS。VPN 不会令账号登录、Cookie 或网页行为匿名。
- 出口节点的登录密钥到期会影响连接。到期后重新认证；若决定为长期自用服务器关闭到期，先保护好账号并了解它会延长该节点凭据有效期，不要把关闭到期作为所有设备的默认选择。

### 9.3 费用提醒与停用

在 AWS Billing and Cost Management → Budgets 创建月费用预算，例如 US$10，并设置邮件阈值。注意预算范围是否含其他 AWS 服务、抵用金和税费。提醒不是实时硬限额，也不会自动停机。

只想暂时停止走出口：在电脑/手机选 None。服务器仍在运行、继续产生租金。

确定不再使用：

1. 客户端停用出口，关闭小球。
2. 删除不需要的 Lightsail 实例；仅 Stop 仍会计费。
3. 删除不再使用的静态 IP、快照等独立资源。
4. 从 Tailscale 移除退役服务器，撤销分享和不再需要的用户。
5. 删除启动文件夹里不再需要的流量球快捷方式。

## 10. 示例配置记录与官方资料

### 10.1 本次已知配置

| 项目 | 示例记录 |
|---|---|
| 实例名 | `hz-vpn` |
| 地区 | Tokyo / `ap-northeast-1` |
| 系统 | Ubuntu 24.04 LTS |
| 规格 | 512MB，20GB SSD，双栈 |
| 服务器 Tailscale 名称 | `your-server` |
| 服务器 Tailscale IPv4 | `100.100.100.100` |
| 系统网卡 | `ens5` |
| SSH 用户 | `ubuntu` |
| 默认私钥文件 | `LightsailDefaultKey-ap-northeast-1.pem` |
| 公网 IPv4 | 以 AWS 实例当前值为准，不沿用最初截图的动态地址 |

这些值是本次配置，不是新建账号都会分配到的值。工具包默认沿用它们；重建实例或给别人部署时，必须替换。私钥、密码、MFA 恢复码不记录到本文件。

### 10.2 官方资料索引

- [AWS 全球网站](https://aws.amazon.com/)
- [Lightsail 控制台](https://lightsail.aws.amazon.com/)
- [AWS 注册流程](https://docs.aws.amazon.com/accounts/latest/reference/getting-started.html)
- [中国银联信用卡开户公告](https://aws.amazon.com/about-aws/whats-new/2025/02/china-unionpay-credit-card-create-aws-account/)
- [人民币支付说明](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-payment-cny.html)
- [Lightsail 价格](https://aws.amazon.com/lightsail/pricing/)
- [Lightsail 流量规则](https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-faq-data-transfer-allowance.html)
- [Tailscale 设备列表](https://login.tailscale.com/admin/machines)
- [Tailscale 用户列表](https://login.tailscale.com/admin/users)
- [Tailscale 出口节点](https://tailscale.com/docs/features/exit-nodes)
- [Tailscale 设备共享](https://tailscale.com/docs/features/sharing)
- [Tailscale 邀请用户](https://tailscale.com/docs/features/sharing/how-to/invite-any-user)
- [Tailscale 服务状态](https://status.tailscale.com/)

---

部署检查：账号可登录 → 地区正确 → 实例运行 → UDP 规则 → Tailscale 登录 → 批准设备与出口 → 客户端选出口 → 公网 IP 验证 → 记录流量与费用。
