自建 VPN 后 Thunderbird 无法发送 Gmail 邮件:原因与解决方法
一、问题现象
在使用自建的 VPN 方案(Wstunnel + WireGuard + Clash Verge Rev)时,我发现 Thunderbird 无法通过 Gmail 发送邮件,报错如下:
- “无法连接到发件服务器(SMTP)smtp.gmail.com,该服务器可能暂时不可用,或者拒绝 SMTP 连接。”
- 或者:“消息未发送,因为与发件服务器(SMTP)smtp.gmail.com 的连接超时。”
与此同时,通过浏览器访问 https://mail.google.com 却完全正常。这说明 VPN 本身能够连通 Google,问题出在 Thunderbird 的流量没有被正确代理。
![[截图 1:Thunderbird 发送失败的错误弹窗]](https://www.shuijingwanwq.com/wp-content/uploads/2026/06/1-16.png)
[截图 1:Thunderbird 发送失败的错误弹窗]
二、原因分析
核心原因在于 Clash 分流规则未覆盖邮件协议端口。
- 我的 VPN 方案使用 Clash 进行流量分流,默认规则通常只覆盖 HTTP/HTTPS 的常用端口(80、443)。
- Thunderbird 发送邮件使用 SMTP 协议,端口为
587或465。由于规则中没有明确匹配这些端口,流量被 Clash 路由到了DIRECT(直连)。 - 而我的网络环境必须通过 VPN 才能访问外网,直连时无法连接到 Google 的 SMTP 服务器,导致超时或拒绝连接。
浏览器能访问 Gmail,是因为网页流量走的是 443 端口,被 Clash 规则中的 MATCH,Proxy 兜底处理了。因此出现了“网页正常,邮件客户端失败”的现象。
三、解决方案
3.1 确认 Thunderbird 的 SMTP 设置
首先确保 Thunderbird 本身的发件服务器配置符合 Gmail 的要求,尤其是 OAuth2 认证(Google 已逐步淘汰普通密码认证)。
进入 Thunderbird 的 账户设置 → 发送服务器 (SMTP),编辑对应的 Gmail 发件服务器。
![[截图 2:编辑发件服务器窗口,显示端口 465 + SSL/TLS + OAuth2]](https://www.shuijingwanwq.com/wp-content/uploads/2026/06/2-13-1024x554.png)
[截图 2:编辑发件服务器窗口,显示端口 465 + SSL/TLS + OAuth2]
![[截图 3:编辑发件服务器窗口,显示端口 587 + STARTTLS + OAuth2] (最终推荐配置)](https://www.shuijingwanwq.com/wp-content/uploads/2026/06/3-13-1024x554.png)
[截图 3:编辑发件服务器窗口,显示端口 587 + STARTTLS + OAuth2] (最终推荐配置)
推荐使用以下参数:
| 项目 | 值 |
|---|---|
| 服务器地址 | smtp.gmail.com |
| 端口 | 587 |
| 连接安全 | STARTTLS |
| 身份验证方法 | OAuth2 |
| 用户名 | 完整的 Gmail 地址 |
保存后重启 Thunderbird,尝试发送一封测试邮件。仍然失败,继续下一步。
![[截图 4:Thunderbird 发送失败的错误弹窗]](https://www.shuijingwanwq.com/wp-content/uploads/2026/06/4-11.png)
[截图 4:Thunderbird 发送失败的错误弹窗]
3.2 修改 Clash 配置,添加邮件端口代理规则
打开 Clash 配置文件(我使用的是 Clash Verge Rev 订阅文件中的自定义规则),找到 rules: 字段,在 本地局域网直连规则之后、国内流量直连规则之前 插入以下两行:
rules:
# ... 前面的规则 ...
# 本地局域网直连
- IP-CIDR,127.0.0.1/8,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT
- IP-CIDR,172.16.0.0/12,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT
# ===== 新增:邮件端口走代理 =====
- DST-PORT,587,Proxy
- DST-PORT,465,Proxy
# 国内流量直连
- DOMAIN-SUFFIX,cn,DIRECT
- GEOIP,CN,DIRECT
# 其他全部走代理
- MATCH,Proxy
注意:
Proxy应替换为你配置中实际使用的代理策略组名称(例如PROXY、ZgoCloud-WG等)。
[截图 5:Clash 规则片段,突出显示新增的两行 DST-PORT 规则]
保存配置文件,然后在 Clash Verge Rev 中重新加载配置(点击 Profiles 页面的刷新图标,或重启 Clash)。
3.3 验证结果
重启 Thunderbird 后再次尝试发送邮件。按照上述步骤操作后,邮件应该能够正常发送。
四、备用排查方法
如果修改后仍然超时,可以尝试以下两种方式:
4.1 在 Thunderbird 中直接设置 SOCKS5 代理
绕过 Clash 的规则分流,强制 Thunderbird 所有流量走代理。
- 打开 Thunderbird 设置 → General → 底部 Network Settings → Settings…
- 选择 Manual proxy configuration
- SOCKS Host:
127.0.0.1,端口:Clash 的 SOCKS5 端口(通常为7897) - 勾选 Proxy DNS when using SOCKS v5
- 确定并重启 Thunderbird。
如果此方法能发送成功,说明 Wstunnel 和 WireGuard 本身没有问题,问题仅在于 Clash 规则。此时应检查规则顺序或策略组名称是否正确。我之前有过一次配置,手动配置代理,参考:Ubuntu 26.04 邮件客户端折腾记:从网易邮箱大师到 Thunderbird,一口气添加 8 个邮箱
4.2 检查 Wstunnel 的端口转发范围
某些 Wstunnel 启动命令中只指定了 WireGuard 端口(如 51820)的转发,导致其他端口(如 587、465)无法到达远程服务器。
请确认你的 Wstunnel 启动参数是否限制了端口转发。通常情况下,默认配置会转发所有 TCP 端口。如有必要,请修改 Wstunnel 的启动命令,移除端口限制。
五、总结
本问题的根本原因在于 Clash 分流规则未包含邮件端口,导致 Thunderbird 的 SMTP 流量走了直连。解决方法也很直接:在 Clash 规则的 rules 部分添加:
- DST-PORT,587,Proxy
- DST-PORT,465,Proxy
这一思路同样适用于其他非 HTTP 协议(如 SSH、游戏、应用商店更新等)的代理问题——只需找到对应的端口,将其加入代理规则即可。
环境参考:Ubuntu 26.04 + Thunderbird 151.0.1 + Clash Verge Rev + 自建 Wstunnel/WireGuard 方案。
拒绝折腾 | 专属 WireGuard VPN 代搭建服务
本频道长期实测各类网络优化方案。自用线路已连续稳定运行超过 1 个月,全程无掉线记录。如果你不想反复踩坑、折腾复杂的服务器与协议配置,欢迎联系我获取专属解决方案。
服务内容:
✅ 远程代搭建:在你自己的服务器上部署专属 VPN,数据完全掌控,一劳永逸。
✅ 免费试用福利:新用户可申请免费试用一个月我的自建节点,亲自体验极致的稳定性与速度。
✅ 效果保证:深度优化分流规则,彻底解决日常使用中的卡顿与连接超时问题。
联系方式:
Telegram:@shuijingwan
微信:13980074657
邮箱:shuijingwanwq@gmail.com
![[截图 5:Clash 规则片段,突出显示新增的两行 DST-PORT 规则]](https://www.shuijingwanwq.com/wp-content/uploads/2026/06/5-8.png)