MikroTik RouterOS 自动维护 ChatGPT 访问地址脚本
随着越来越多用户在 RouterOS 上通过策略路由或分流访问 ChatGPT、OpenAI API 等服务,域名的解析 IP 经常变化成为一个麻烦点。为此,本文提供一个自动更新 ChatGPT 相关 IP 地址列表的智能脚本,可周期性运行,保持访问稳定。
一、脚本功能介绍
该脚本主要作用如下:
- 自动解析 ChatGPT 相关域名(chat.openai.com、api.openai.com 等);
- 自动维护防火墙地址列表(address-list);
- 包含常见 Cloudflare、Azure、OpenAI 的已知 CIDR 段;
- 自动定时执行,无需人工维护。
支持版本:RouterOS 7.20 及以上
二、脚本代码
在 RouterOS 中执行以下脚本,名称建议设置为 update_chatgpt:
# --- ChatGPT 地址自动更新脚本(v2.0 智能版)---
# 适配 RouterOS 7.20 及以上
:local domains {"chat.openai.com"; "api.openai.com"; "cdn.openai.com"; "openai.com"}
# 已知大段(Cloudflare + Azure + OpenAI)
:local knownCIDRs {"104.16.0.0/12"; "172.64.0.0/13"; "141.101.64.0/18"; "13.104.0.0/14"; "20.33.0.0/16"; "40.74.0.0/15"; "23.98.142.176/28"; "40.84.180.224/28"}
# 添加 CIDR 段(若不存在)
:foreach c in=$knownCIDRs do={
:if ([:len [/ip/firewall/address-list/find list=chatgpt address=$c]] = 0) do={
/ip/firewall/address-list/add list=chatgpt address=$c comment="known-range"
:log info ("[update_chatgpt] Added CIDR -> $c")
}
}
# 解析域名
:foreach d in=$domains do={
:local ip [:resolve $d];
:if ($ip != "0.0.0.0") do={
:if ([:len [/ip/firewall/address-list/find list=chatgpt address=$ip]] = 0) do={
/ip/firewall/address-list/add list=chatgpt address=$ip comment=$d;
:log info ("[update_chatgpt] $d -> $ip added")
} else={
:log info ("[update_chatgpt] $d -> $ip already exists")
}
} else={
:log warning ("[update_chatgpt] Failed to resolve $d")
}
}三、设置定时任务(Scheduler)
在 WinBox 或命令行中添加以下计划任务:
/system scheduler/add name=update_chatgpt \
start-date=Oct/06/2025 start-time=14:25:18 \
interval=01:00:00 \
on-event="/system script run update_chatgpt" \
policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon说明:此任务会每小时执行一次脚本,确保 IP 地址持续更新。若有新解析到的 ChatGPT IP,会自动写入 /ip firewall address-list 的 chatgpt 列表中。
四、验证执行结果
执行以下命令查看结果:
/ip/firewall/address-list/print where list=chatgpt
若输出中包含多个 IP 和 CIDR 段,并在日志中能看到:
[update_chatgpt] chat.openai.com -> xxx.xxx.xxx.xxx added则说明脚本运行成功。
五、进阶用法(策略路由 / 分流)
/ip/firewall/mangle/add chain=prerouting dst-address-list=chatgpt \
action=mark-routing new-routing-mark=VPN passthrough=yes搭配 WireGuard / BGP / PPPoE 等实现智能分流,让 ChatGPT、OpenAI API 自动走代理出口,保持稳定、快速的访问体验。
六、日志输出示例
脚本运行后日志会自动记录状态:
update_chatgpt: chat.openai.com -> 104.19.155.92 added
update_chatgpt: api.openai.com -> 20.223.35.234 added
update_chatgpt: cdn.openai.com -> 104.17.175.85 already exists
update_chatgpt: Added CIDR -> 104.16.0.0/12
七、总结
通过本脚本,您可以:
- 自动维护 ChatGPT 的访问 IP;
- 避免 DNS 缓存过期导致访问异常;
- 轻松配合策略路由实现自动分流。
此方案非常适合需要长期稳定访问 ChatGPT / OpenAI API 的 ROS 用户,部署一次,即可长期安心使用。
作者:灵昆进源电脑店
适用平台:MikroTik RouterOS v7.20+
最后更新:2025-11-07