下面为你重新整理一份包含所有避坑补丁、从零到成功申请 SSL 证书的终极完整版操作手册。以后重装或在新机器部署,直接按顺序复制即可一次跑通。
第一阶段:在谷歌云 (GCP) 部署 WireGuard 服务端
开启 BBR 加速与内核转发 在 GCP 终端执行以下命令:
Bash
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf sudo sysctl -p验证: 终端输出中包含
net.ipv4.ip_forward = 1和bbr即为生效。下载并运行安装脚本
Bash
curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh chmod +x wireguard-install.sh sudo ./wireguard-install.sh填写安装向导(关键避坑参数)
IPv4 or IPv6 public address:必须手动改成 GCP 的外部公网 IP(35.220.240.98),绝不能用默认的10.x.x.x内网 IP。Public interface:保持默认(如ens4),回车。WireGuard interface name:保持默认(wg0),回车。Server WireGuard IPv4:保持默认(10.66.66.1),回车。Server WireGuard IPv6:保持默认,回车。Server WireGuard port:手动输入4433(避开默认的51820,防止被国内运营商阻断)。First / Second DNS resolver:保持默认,回车。Allowed IPs list:保持默认,回车开始安装。Client name:输入arm并回车,后续的 Client IP 一路回车保持默认(分配给 ARM 机10.66.66.2)。
查看并复制生成的客户端配置
Bash
cat /root/wg0-client-arm.conf验证: 将屏幕打印出的
[Interface]和[Peer]完整内容复制下来备用。
第二阶段:在家里的 ARM 机配置 WireGuard 客户端与本地放行
安装客户端组件 在家里 ARM 机器终端执行:
Bash
sudo apt update && sudo apt install wireguard resolvconf -y写入精简且带心跳的配置文件(核心防断联步) 创建配置文件:
Bash
sudo nano /etc/wireguard/wg0.conf将刚才复制的内容修改为以下格式(去掉 IPv6、去掉 DNS、缩窄 AllowedIPs 防断网、必须加上 PersistentKeepalive = 25):
Ini, TOML
[Interface] PrivateKey = <填你生成的ARM客户端私钥> Address = 10.66.66.2/32 [Peer] PublicKey = <填你生成的GCP服务端公钥> PresharedKey = <填你生成的预共享密钥> Endpoint = 35.220.240.98:4433 AllowedIPs = 10.66.66.0/24 PersistentKeepalive = 25按
Ctrl+O回车保存,Ctrl+X退出。启动隧道并设置开机自启
Bash
sudo wg-quick up wg0 sudo systemctl enable wg-quick@wg0验证: 执行
ping 10.66.66.1 -c 4,有正常毫秒数返回且0% packet loss。放行 ARM 机本地防火墙与 Docker 转发链 在 ARM 机终端执行以下命令,确保
wg0隧道进来的流量能直接访问 1Panel 的 OpenResty 容器:Bash
sudo iptables -I INPUT -i wg0 -p tcp -m multiport --dports 80,443,10001 -j ACCEPT sudo iptables -I FORWARD -i wg0 -j ACCEPT sudo iptables -I FORWARD -o wg0 -j ACCEPT验证: 在 ARM 机执行
curl -I [http://10.66.66.2](http://10.66.66.2),返回HTTP/1.1 200 OK。
第三阶段:在 GCP 配置端口转发与永久固化
写入 80、443、10001 端口转发规则 回到 GCP 终端,执行以下命令(注意:千万不要执行
iptables -t nat -F清空原表):Bash
# 转发 80, 443, 10001 端口到 ARM 机 (10.66.66.2) sudo iptables -t nat -A PREROUTING -p tcp -m multiport --dports 80,443,10001 -j DNAT --to-destination 10.66.66.2 # 伪装返回路径,确保 ARM 机把数据包顺着隧道原路送回 GCP sudo iptables -t nat -A POSTROUTING -p tcp -d 10.66.66.2 -m multiport --dports 80,443,10001 -j MASQUERADE验证: 在 GCP 终端执行
curl -I [http://10.66.66.2](http://10.66.66.2),直接返回HTTP/1.1 200 OK(Server: openresty)。修复 DNS 并安装持久化工具保存规则 继续在 GCP 终端执行:
Bash
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf sudo apt update && sudo apt install iptables-persistent -y sudo netfilter-persistent save验证: 执行
sudo cat /etc/iptables/rules.v4 | grep 10.66.66.2,能看到上面那两条DNAT和MASQUERADE规则即代表永久固化成功。
第四阶段:域名解析、站点绑定与申请 SSL 证书
配置域名 DNS 解析 在域名后台(如 Cloudflare)添加一条 A 记录:
名称:
@(对应redbook.eu.org)IPv4 地址:
35.220.240.98代理状态:关闭小黄云(设为仅 DNS / DNS Only)。
验证: 在电脑上
ping redbook.eu.org,返回的 IP 是35.220.240.98。
在 1Panel 绑定域名
打开 ARM 机的 1Panel 面板 -> 网站 -> 网站,找到你的目标站点(如
192.168.0.111:10001),点击 配置 -> 域名设置。点击 新增域名,填入
redbook.eu.org,端口保持默认的80。验证: 用手机断开 WiFi 走 5G 流量,浏览器访问
[http://redbook.eu.org](http://redbook.eu.org),能正常打开网页。
在 1Panel 申请并开启 Let's Encrypt 证书
进入 1Panel 网站 -> 证书 -> 申请证书。
主域名填
redbook.eu.org,验证方式选择 HTTP 验证,关联网站选择刚才绑定的站点,点击申请。申请成功后,回到 网站 -> 目标站点 配置 -> HTTPS,勾选 启用 HTTPS,选择刚下发的证书并开启 强制 HTTPS 保存。
验证: 手机 5G 访问
[https://redbook.eu.org](https://redbook.eu.org),地址栏出现安全锁图标且网页正常加载。
评论