↓ 跳过正文
  1. 文章归档/

解决独角数卡在纯IPv6环境下 Gmail SMTP 无法发送邮件的问题(WARP出口方案)

··1282 字·3 分钟
目录

dujiaoka

在使用 独角数卡(Dujiaoka) 时,如果你部署在 只有 IPv6 的 VPS,可能会在发送邮件时遇到以下报错:

`Connection could not be established with host smtp.gmail.com

stream_socket_client(): Unable to connect to ssl://smtp.gmail.com:465 (Connection timed out)

`

这说明你的服务器无法通过 IPv6 连接 Gmail SMTP,而 Gmail SMTP 是优先支持 IPv4 的,IPv6-only 的环境下会失败。


✅ 一、安装 Cloudflare WARP(添加 IPv4 出口)
#

WARP 可以为你的 IPv6-only VPS 提供一个免费的 NAT IPv4 出口,非常适合发邮件、访问 IPv4-only 的服务。

安装 WARP 一键脚本:
#

`wget -N https://gitlab.com/fscarmen/warp/-/raw/main/menu.sh && bash menu.sh

`

运行后选择:

`4. 为 IPv6-only VPS 添加 IPv4 出口(WARP)

`


✅ 二、配置 Warp 策略路由(让邮件走 IPv4 出口)
#

1️⃣ 查看 warp 接口 IP(一般是 172.16.0.2):
#

`ip addr show dev warp

`


2️⃣ 添加路由表和规则(仅需一次):
#

`echo "100 warp" >> /etc/iproute2/rt_tables

ip route add default dev warp table warp

ip rule add from 172.16.0.2 table warp

`


3️⃣ (可选)只让 Gmail SMTP 流量走 Warp:
#

`iptables -t mangle -A OUTPUT -p tcp -d smtp.gmail.com --dport 587 -j MARK --set-mark 66

iptables -t mangle -A OUTPUT -p tcp -d smtp.gmail.com --dport 465 -j MARK --set-mark 66

ip rule add fwmark 66 table warp

`

这样其他流量仍使用 IPv6,不走 Warp,仅 Gmail SMTP 流量使用 IPv4。


三、增强:手动添加 DNS 和邮件服务器路由(可选但推荐)
#

为了确保系统能够解析域名并正常连接邮件服务器,建议添加以下路由:

添加 DNS 服务器路由:
#

`ip route add 8.8.8.8 dev warp

ip route add 8.8.4.4 dev warp

ip route add 1.1.1.1 dev warp

ip route add 1.0.0.1 dev warp

`


为 Gmail SMTP 添加专门路由:
#

`ip route add 172.217.0.0/16 dev warp

ip route add 142.250.0.0/15 dev warp

ip route add 173.194.0.0/16 dev warp

ip route add 74.125.0.0/16 dev warp

`


为常用国内邮件服务器添加路由:
#

`ip route add 163.177.90.0/24 dev warp # 163邮箱

ip route add 58.251.149.0/24 dev warp # QQ邮箱

`


四、测试网络和 SMTP 连通性
#

测试 IPv4 出口是否通:
#

`curl -4 --connect-timeout 10 ifconfig.me

`


测试 Gmail SMTP 是否能连通:
#

`curl -4 --connect-timeout 10 telnet://smtp.gmail.com:465

`


使用 ping 测试连通性(如支持):
#

ping -4 -c 3 8.8.8.8


✅ 五、测试网络和 SMTP 连接
#

查看 IPv4 出口是否通:
#

`curl -4 ifconfig.me

`

应显示 Cloudflare 的 IP(如 104.28.x.x)。


测试 Gmail SMTP 是否能连通:
#

`# 测试端口 587(推荐)

curl -4 -v --connect-timeout 10 smtp.gmail.com:587`# 或使用 openssl 更直观
openssl s_client -connect smtp.gmail.com:587 -4

看到 220 smtp.gmail.com ESMTP ... 就说明连接成功。


✅ 六、修改 /etc/gai.conf 优先使用 IPv4
#

编辑配置文件:

`nano /etc/gai.conf

`

找到这行(大概在54行):

#precedence ::ffff:0:0/96 100

改为:

`precedence ::ffff:0:0/96 100

`

取消注释并将优先级改为 100,保存并退出。此操作会让系统优先使用 IPv4 地址连接服务。

七、测试邮件发送
#

独角数卡后台 → 配置 → 邮件测试,里面发送,这下应该会显示发送成功了。

最后持久化方法:写入 systemd 自定义服务
#

由于ip route add 路由规则、ip rule add 策略路由、iptables 标记规则在系统重启后会恢复原样,所以需要持久化,持久化方法。``

1️⃣ 创建脚本文件 /usr/local/bin/warp-route.sh
#

`nano /usr/local/bin/warp-route.sh

`

``

粘贴以下内容(按你实际 IP 情况可以自行修改):

#!/bin/bash

设置默认路由表\
#

ip route add default dev warp table warp
ip rule add from 172.16.0.2 table warp

添加 DNS 路由\
#

ip route add 8.8.8.8 dev warp
ip route add 8.8.4.4 dev warp
ip route add 1.1.1.1 dev warp
ip route add 1.0.0.1 dev warp

Gmail SMTP 路由\
#

ip route add 172.217.0.0/16 dev warp
ip route add 142.250.0.0/15 dev warp
ip route add 173.194.0.0/16 dev warp
ip route add 74.125.0.0/16 dev warp

常用国内邮箱\
#

ip route add 163.177.90.0/24 dev warp
ip route add 58.251.149.0/24 dev warp

iptables 规则(可选)\
#

iptables -t mangle -A OUTPUT -p tcp -d smtp.gmail.com –dport 465 -j MARK –set-mark 66
iptables -t mangle -A OUTPUT -p tcp -d smtp.gmail.com –dport 587 -j MARK –set-mark 66
ip rule add fwmark 66 table warp

``

保存并退出。

然后给脚本添加执行权限:

``

`chmod +x /usr/local/bin/warp-route.sh

`

``


``

2️⃣ 创建 Systemd 启动服务 /etc/systemd/system/warp-route.service
#

``

`nano /etc/systemd/system/warp-route.service

`

``

粘贴以下内容:

\[Unit\]


Description=WARP 路由规则设置
After=network.target

\[Service\]


Type=oneshot
ExecStart=/usr/local/bin/warp-route.sh
RemainAfterExit=true

\[Install\]


WantedBy=multi-user.target

保存并退出。


---

``

### 3️⃣ 启用并启动服务

`systemctl daemon-reexec

systemctl daemon-reload

systemctl enable warp-route.service

systemctl start warp-route.service``

`

``

你可以验证是否执行成功:

`systemctl status warp-route.service

`

``

如果看到 `Active: active (exited)` 就代表**已执行成功并常驻**。

相关文章