MikroTik 代理设置全攻略:RouterOS、mangle 与策略路由新手指南
引言:你将获得什么
本文是一篇 MikroTik 代理配置的实战分步指南。我们只针对 RouterOS——MikroTik 路由器的官方操作系统进行操作。关于 Keenetic、OpenWrt 等其他平台,博客中有单独的文章,这里不涉及。
读完本教程后,你将拥有一套可用的方案:路由器自行决定办公室或家中哪些设备直接上网,哪些通过移动代理上网。你将配置 RouterOS 的内置 Web Proxy 并指定上游代理,学会在 mangle 中标记流量,并搭建策略路由——即按规则而非仅按目标地址进行路由。
具体来说,你将获得:
- 一份走代理的设备清单,其余设备照常工作;
- MikroTik 上配置好的 Web Proxy,将客户端请求转发到外部移动代理;
- mangle 规则,为所需连接和路由打上标记;
- 一条独立的策略路由表,让带标记的流量走指定接口,例如第二 WAN 或 LTE 模块;
- 用防火墙保护方案,防止外部人员盗用你的代理;
- 一套验证方法及常见错误解析。
适合谁阅读
本指南面向营销人员、广告投放者、开发者以及小型团队负责人——他们使用移动代理,并希望把部分配置从每台电脑转移到路由器层面。如果你有 5 到 15 个工作站,运行着指纹浏览器、采集工具和广告账户,与其每次换新笔记本都手动填代理参数,不如一次性在 MikroTik 上配置好代理。
难度为入门级。我们不假设你之前配置过 RouterOS。每个步骤都同时提供 WinBox 图形界面操作和终端命令两种方式。文末还有进阶内容:容器、自动下发代理配置、切换脚本等。
预备知识
掌握基础知识即可:什么是 IP 地址、端口、局域网和网关。你需要会登录路由器网页界面,或用 WinBox 软件连接。其余内容我们会在过程中讲解。
需要多少时间
纯配置大约 40-60 分钟。算上阅读、备份、固件更新和测试,请预留 1.5-2 小时。如果你有两条网络线路并要配置策略路由,再加 30 分钟做验证。
前期准备
在改动路由器之前,先把所需材料备齐。这能节省时间,避免配置到一半发现缺少权限的尴尬。
所需工具和权限
- MikroTik 路由器,运行 RouterOS 7.x。常见型号均可:hAP ac2、hAP ac3、hAP ax2、hAP ax3、RB4011、RB5009,以及任意 CCR。带 USB 口或内置 LTE 模块的型号能提供更多可能性,但并非必需。
- WinBox 软件最新版(2026 年是 WinBox 4,有 Windows、macOS 和 Linux 版本)。替代方案是浏览器中访问路由器 WebFig 界面,菜单相同。
- 管理员权限:拥有完整权限的用户名和密码。
- 移动代理信息:服务器地址(IP 或域名)、HTTP 代理端口以及鉴权方式。对于 MikroTik Web Proxy 方案,需要 IP 白名单鉴权,因为 RouterOS 的内置代理无法向上游代理传递用户名和密码。几乎所有移动代理服务商都支持在后台开启 IP 鉴权。
- 路由器的外部 IP 地址。需要将它加入代理服务商的白名单。如何查看会在第一步说明。
- 局域网内的一台电脑,用于测试结果。
系统要求
Web Proxy 加 mangle 方案在任何运行 RouterOS 7 的设备上都能工作。128 MB 内存足以支撑十几个活跃客户端(前提是关闭缓存)。进阶的容器部分需要 ARM、ARM64 或 x86 架构的型号,至少 256 MB 内存,最好 1 GB 并配外置存储。
检查 RouterOS 版本:在 WinBox 中打开 System,然后 Resources。Version 字段应显示 7.x。如果是 6.x,部分路由命令会有差异,最好先升级。
需要提前准备什么
- 安装 WinBox,确认它能在 Neighbors 标签页中看到路由器。
- 登录移动代理服务商后台,找到连接参数部分。记下地址、HTTP 端口,并开启 IP 鉴权模式。
- 列出需要走代理的设备,记录其名称和 MAC 地址或当前 IP。
- 决定是否使用第二条网络线路。如果路由器有 LTE 模块或连接了带 SIM 卡的 USB 猫,记下接口名,通常是 lte1。
备份
备份是必须做的。这是教程的第一个实操步骤,我们会详细讲解。先记住一条规则:没有最新备份,绝不改动防火墙和路由。NAT 规则或路由出错可能让你失去对路由器的访问,到时只能恢复出厂设置。
基础概念:用大白话讲代理、mangle 和路由
这些术语看起来复杂。我们不讲多余的理论,只解释步骤中会用到的部分。
代理和移动代理
代理服务器是中介。浏览器不直接向网站发请求,而是发给代理服务器,代理以自己的名义访问网站并返回响应。网站看到的是代理地址,而不是你的。移动代理是经由蜂窝运营商网络上网的代理,因此网站看到的是普通移动用户地址。这类地址常用于广告账户运营、多账号管理和数据采集,因为 IP 信誉很重要。
路由器和代理是两回事
必须理解:路由器本身无法把全部流量塞进 HTTP 或 SOCKS 代理。路由器工作在 IP 包层面,而代理工作在应用层。数据包可以被导向某个接口,但要让应用通过代理通信,得有程序按代理协议与代理服务器建立连接。RouterOS 为此内置了 Web Proxy——路由器内的完整 HTTP 代理,它能将请求转发给上游的所谓父代理(parent proxy)。正是它将成为你局域网和移动代理之间的桥梁。
地址列表
RouterOS 中的 Address list 是命名的 IP 地址或子网列表。不必为五台电脑写五条规则,而是把它们放进 proxy-clients 列表,在一条规则中引用。新增第六台电脑时,规则自动对其生效。
防火墙:filter、NAT 和 mangle
RouterOS 防火墙由多个表组成。Filter 决定放行还是丢弃数据包。NAT 替换地址和端口,例如把 80 端口的连接转到本地代理端口 8080。Mangle 既不阻止也不替换,它给数据包或连接打上标记。标记只存在于路由器内部,供其他子系统(主要是路由)使用。
mangle 中有两个我们关心的标记。Connection mark 打在整条连接上:标记第一个包,该连接后续所有包自动视为已标记。Routing mark 告诉路由器:对这个包使用指定表,而不是主路由表。
路由表和策略路由
普通路由器只看目标地址决定数据包去向,这就是 main 表。策略路由(PBR)增加了第二个判断维度:包来自哪里、什么类型、带什么标记。例如:将 proxy-clients 列表中电脑的数据包经 LTE 模块发送,其余走有线运营商。RouterOS 7 中需创建独立的 routing table,在其中添加默认路由,mangle 再给对应流量打上该表名的 routing mark。
prerouting、output 和 forward 链
防火墙规则绑定到链上。Prerouting 处理刚进入路由器的包(在路由决策之前),适合在此标记来自局域网客户端的流量。Output 处理路由器自身产生的包,例如其 Web Proxy 访问父移动代理。Forward 处理从局域网到互联网的转发包。理解这些差异能避免 MikroTik 代理配置中一半的错误。
整体组合起来
我们将搭建的方案如下:proxy-clients 列表中的电脑访问路由器 Web Proxy 的 8080 端口。Web Proxy 将请求转发给服务商的移动代理,后者凭路由器外部 IP 鉴权。路由器访问移动代理的连接在 mangle 中被打标,并经指定 WAN 接口发出。其他设备照常工作,毫无察觉。
第一步:备份并准备 RouterOS
本阶段目标:保存当前配置副本、获取最新 RouterOS 版本,并查明路由器外部 IP 以便加入代理服务商白名单。
创建备份
- 打开 WinBox。在 Neighbors 列表中选择你的路由器,输入用户名和密码,点击 Connect。
- 左侧菜单点击 Files,出现路由器文件列表。
- 点击窗口顶部的 Backup 按钮。在弹出对话框中,Name 字段输入易记的名称,如 before-proxy。Password 可设可不设。如果要加密就去掉 Don't Encrypt 的勾,家庭使用不加也无所谓。
- 点击 Backup。列表中会出现 before-proxy.backup 文件。
- 将该文件从 Files 窗口拖到电脑桌面。文件会下载到你的 PC。只存在路由器上不保险,万一需要重置就白搭,所以要自己留一份。
- 再做个文本导出。打开左侧菜单的 New Terminal,输入命令:
/export file=before-proxyFiles 中会出现 before-proxy.rsc。这是包含全部配置命令的纯文本,方便用记事本打开对比改动。也下载下来。
更新 RouterOS
- 左侧菜单打开 System,然后 Packages。
- 点击 Check For Updates。Channel 字段选 stable。
- 若有新版本,点击 Download&Install。路由器会下载并重启,耗时 2-5 分钟,WinBox 连接会断开——这很正常。
- 重启后重新连接,打开 System,然后 RouterBOARD,点击 Upgrade 更新引导程序。再通过 System、Reboot 重启路由器。
注意:如果没有物理访问权限或备用管理通道,不要远程更新路由器。更新失败可能导致失去设备连接。
查看路由器外部 IP
- 打开 New Terminal。
- 输入命令:
/tool fetch url=https://ifconfig.me/ip mode=https output=user响应中 data 行就是你的外部 IPv4 地址。另一个办法是打开 IP,然后 Cloud,勾选 DDNS Enabled:Public Address 字段会显示当前地址。记下来。
- 登录移动代理服务商后台,找到所选代理的鉴权设置,将此地址加入白名单。通常一分钟内生效。
提示:如果你的运营商外部 IP 是动态的,找代理供应商确认是否支持多地址鉴权或绑定 DDNS 域名。否则 IP 一变方案就失效,得重更新白名单。
验证:电脑上已有 before-proxy.backup 和 before-proxy.rsc 文件,System、Resources 显示最新 RouterOS 7 版本,代理服务商后台已添加路由器外部 IP。
可能遇到的问题
- fetch 命令报错。检查路由器能否上网且配置了 DNS:IP、DNS 的 Servers 字段不为空,Allow Remote Requests 已勾选。
- WinBox 看不到路由器。用网线直连 ether2 端口再试 Neighbors 标签,或手动输入地址,默认 192.168.88.1。
第二步:确定哪些流量走代理
本阶段目标:创建 proxy-clients 地址列表,并为所需设备绑定固定 IP,避免重连后规则失效。
为设备绑定 IP 地址
默认情况下路由器 DHCP 服务器明天可能给电脑分配别的地址。为确保规则稳定,把地址绑定到 MAC。
- 打开 IP,然后 DHCP Server,Leases 标签。你会看到当前租约列表:IP 地址、MAC 地址、主机名。
- 按主机名或 MAC 找到目标电脑,双击该行。
- 在弹出窗口点击 Make Static。租约状态从 D(dynamic)变为空,地址即固定。
- 可顺便把 Address 字段改成更好记的,如 192.168.88.101,点击 OK。设备重连网络后会获得新地址。
- 对所有需要走代理的设备重复此操作。
如果已知 MAC,终端命令如下:
/ip dhcp-server lease add address=192.168.88.101 mac-address=AA:BB:CC:DD:EE:01 server=defconf comment="PC-marketing-1"defconf 是默认 DHCP 服务器名,在同一窗口的 DHCP 标签查看。
创建地址列表
- 打开 IP、Firewall、Address Lists 标签。
- 点击蓝色加号。
- Name 字段输入 proxy-clients。Address 字段输入 192.168.88.101。点击 OK。
- 为每个地址重复,每次从下拉列表选同一个 proxy-clients 名称。
终端命令:
/ip firewall address-list add list=proxy-clients address=192.168.88.101 comment="PC-marketing-1"
/ip firewall address-list add list=proxy-clients address=192.168.88.102 comment="PC-marketing-2"如果整个子网都要走代理,用一条记录添加,例如 192.168.88.128/25。
提示:同时建一个名为 direct-clients 的第二列表,放任何情况下都不该走代理的设备:监控服务器、打印机、智能家居。即便暂时用不到,调试和扩展方案时也能派上用场。
验证:Address Lists 标签中有 proxy-clients 记录,DHCP Leases 中这些设备无 D 标志。在电脑上运行 Windows 的 ipconfig 或 Linux 的 ip addr,确认地址与绑定一致。
可能遇到的问题
- Make Static 后电脑保留旧地址。拔插网线或重连 Wi-Fi,或执行 ipconfig /release 和 ipconfig /renew。
- Leases 里没有该设备。说明它是手动配置的静态地址,直接把这个地址加进 address list 即可。
第三步:配置 Web Proxy 和父级移动代理
本阶段目标:启用 RouterOS 内置 HTTP 代理,将移动代理指定为父代理,并限制仅局域网可访问。
启用 Web Proxy
- 打开 IP,然后 Web Proxy。出现 Web Proxy Settings 窗口。
- 勾选 Enabled。
- Src. Address 字段留 0.0.0.0,或填路由器局域网地址如 192.168.88.1。后者更稳妥:代理只在本地接口监听。
- Port 字段填 8080。这是客户端将访问的端口。
- Parent Proxy 字段填入服务商后台的移动代理 IP。如果服务商给的是域名,先用终端命令 :put [:resolve 域名] 查明其 IP,再填入。此字段只接受 IP。
- Parent Proxy Port 字段填 HTTP 代理端口,如 8000 或后台标明的端口。
- Cache Administrator 字段可填邮箱或留着不动。
- 取消勾选 Cache On Disk。我们不需要缓存,它只消耗资源还可能返回过时页面。
- Max. Cache Size 选 none。Max. Cache Object Size 保持默认即可,缓存关闭时它不起作用。
- 勾选 Anonymous。这样代理不会添加含局域网地址的 Via 和 X-Forwarded-For 头。处理广告账户时这点很重要。
- 点击 Apply,然后 OK。
终端中一条命令即可完成:
/ip proxy set enabled=yes src-address=192.168.88.1 port=8080 parent-proxy=203.0.113.10 parent-proxy-port=8000 cache-on-disk=no max-cache-size=none anonymous=yes将 203.0.113.10 和 8000 替换为你的移动代理实际数据。
限制代理访问
开放代理是给攻击者的礼物:很快就会有人蹭你的流量,移动代理额度几小时就烧光。所以立即配置访问列表。
- 在 Web Proxy Settings 窗口点击 Access 按钮,打开 Web Proxy Access 规则列表。
- 点击加号。Src. Address 字段输入 192.168.88.0/24——你的局域网段。在 IP、Addresses 确认。Action 选 allow。点击 OK。
- 再点加号。所有字段留空,Action 选 deny。点击 OK。此规则拒绝上方未放行的一切。
- 确认 allow 规则在 deny 之上。可拖动调整顺序。
终端命令:
/ip proxy access add src-address=192.168.88.0/24 action=allow comment="LAN allow"
/ip proxy access add action=deny comment="deny all others"如果只想允许 proxy-clients 列表内的设备而非整个网段,则不用第一条规则,而是为每个地址单独添加行:Web Proxy Access 的 Src. Address 字段不支持直接引用 address list。更灵活的限流我们会在第七步用防火墙实现。
注意:切勿让 Web Proxy 没有访问规则,也不要在 WAN 侧不封锁 8080 端口。开放的 MikroTik 代理一天内就会被扫描器发现。
终端初步验证
不碰电脑也能验证与父代理的连接。在路由器终端输入:
/tool fetch url=http://ifconfig.me/ip http-method=get output=user此命令直接出去,显示普通外部 IP。现在在 proxy-clients 列表中的电脑上打开浏览器,在网络设置里填代理 192.168.88.1 端口 8080(Windows:设置、网络和 Internet、代理、手动设置代理),访问任意查 IP 网站。你应看到移动运营商地址,而非你的运营商。
验证:IP、Web Proxy 中 Status 显示 Running,客户端打开网站时连接计数增长,查 IP 网站显示移动代理地址。
可能遇到的问题
- 网站打不开,浏览器报代理错误。左侧菜单打开 Log:web-proxy 主题的行会提示情况。对父代理报 connection refused 或 timeout,说明路由器 IP 未加入白名单或端口不对。
- 能打开但 IP 未变。多半是 Parent Proxy 字段为空或 Enabled 未保存。重新打开设置确认。
- HTTPS 网站打不开,HTTP 正常。检查浏览器代理设置里 HTTPS 也填了代理,而不仅是 HTTP。RouterOS Web Proxy 会处理 CONNECT 方法并转发给父代理。
第四步:将客户端流量导入代理
本阶段目标:让 proxy-clients 列表中的客户端进入 Web Proxy,其余不进。我们讲两种方式:NAT 透明重定向和客户端显式配置。
方式 A:通过 dst-nat 透明重定向 HTTP
透明模式意味着客户端无需配置:路由器自动截获 80 端口连接并送入自己的代理。此方式有一个根本局限:只对未加密的 HTTP 有效。HTTPS 流量(如今几乎整个互联网)无法透明经过 Web Proxy,因为路由器无法解密连接判断去向。因此方式 A 作为辅助,方式 B 才是主力。
- 打开 IP、Firewall、NAT 标签,点击加号。
- General 标签:Chain 选 dstnat,Protocol 选 6 (tcp),Dst. Port 填 80。
- Advanced 标签:Src. Address List 选 proxy-clients。这是关键条件:规则只对列表内设备生效。
- Action 标签:Action 选 redirect,To Ports 填 8080。
- General 标签 Comment 填 Redirect HTTP to proxy。点击 OK。
- 将规则拖到 masquerade 规则之上(若在下方)。NAT 规则自上而下执行,顺序很重要。
终端命令:
/ip firewall nat add chain=dstnat protocol=tcp dst-port=80 src-address-list=proxy-clients action=redirect to-ports=8080 comment="Redirect HTTP to proxy" place-before=0参数 place-before=0 将规则置于列表首位。
方式 B:在客户端显式配置代理
这是 HTTPS 的主力方案。客户端知道代理的存在,自行发送请求,包括为加密网站发 CONNECT。好处是每个浏览器或指纹浏览器配置文件都能单独设置。
- Windows 电脑打开设置、网络和 Internet、代理。在手动设置代理中打开使用代理服务器开关。
- 地址字段填 192.168.88.1,端口填 8080。
- 例外字段加上 192.168.*.*,避免本地资源走代理。点击保存。
- macOS:系统设置、网络,选中连接,点详细信息,代理部分,勾选网页代理 (HTTP) 和安全网页代理 (HTTPS),填相同地址和端口。
- 在指纹浏览器中创建配置文件时,代理类型选 HTTP,地址 192.168.88.1,端口 8080,用户名密码留空:鉴权由路由器按 IP 完成。
提示:不想逐台配置,可通过 DHCP 自动下发代理参数。进阶部分有介绍,也讲了 WPAD 文件。
为什么两种方式都需要
NAT 透明规则能兜底:proxy-clients 里的电脑若有人忘了填代理设置,至少 HTTP 流量会走移动代理而非直连。显式配置确保 HTTPS 正常。严格场景下,第七步我们还会用防火墙切断 proxy-clients 的直连出口,让绕过代理的流量无法走通。
验证:列表内电脑用配置好的代理通过 HTTPS 打开查 IP 网站——显示移动运营商地址。打开 IP、Firewall、NAT:访问 HTTP 网站时 Redirect HTTP to proxy 规则的 Packets 计数增长。不在列表中的电脑 IP 保持原样。
可能遇到的问题
- NAT 规则不生效,计数为零。确认电脑地址确实在 proxy-clients 列表中,且规则在 masquerade 之上。
- 开启重定向后路由器网页界面打不开。在规则的 Advanced 标签加上 Dst. Address Type - !local 条件,避免访问路由器自身的连接被截获。
第五步:Mangle——为策略路由标记流量
本阶段目标:标记连接,让路由器明白哪些流量应走备用接口。这是 MikroTik 策略路由的核心。
何时需要这一步
若只有一条线路,只想让部分设备走外部移动代理,第三、四步可能就够了。但 mangle 和 PBR 能解决几个重要问题:
- 你有两条线路,例如有线运营商和带 SIM 卡的 LTE 模块,想将对代理服务商的访问或特定设备流量严格走其中一条;
- 你想让 proxy-clients 列表中的设备经 LTE 接口直接上网,直接获得移动 IP,无需外部代理——这也是移动地址的使用场景;
- 你需要严格分流,避免偶发绕过代理的连接走主线路。
接下来假设主线路是接运营商的 ether1 接口,备线是 lte1。若你没有第二条线路,也请读这一节:其中的 mangle 规则在调试和进阶场景中有用。
提前创建路由表
RouterOS 7 中表不存在时无法分配路由标记。所以先建表,再写 mangle 规则。
- 打开 Routing,然后 Tables,点击加号。
- Name 字段输入 via-lte,勾选 FIB。点击 OK。
/routing table add name=via-lte fib规则 1:标记客户端连接
- 打开 IP、Firewall、Mangle 标签,点击加号。
- General 标签:Chain 选 prerouting。In. Interface 选 bridge(你的本地接口,默认配置中名为 bridge)。Connection Mark 选 no-mark,避免重复标记已标记的连接。
- Advanced 标签:Src. Address List 选 proxy-clients。Dst. Address Type 选 !local。感叹号表示否定:规则不应作用于访问路由器自身的流量,否则客户端会失去网页界面和 DNS 访问。
- Action 标签:Action 选 mark connection。New Connection Mark 输入 conn-lte。Passthrough 保持勾选:包继续走后续规则并获得 routing mark。
- Comment:Mark connections from proxy clients。点击 OK。
规则 2:按连接标记打路由标记
- 再点加号。Chain 选 prerouting。In. Interface 选 bridge。Connection Mark 选 conn-lte。
- Action 标签:Action 选 mark routing。New Routing Mark 从列表选 via-lte。Passthrough 取消勾选:路由已指定,无需继续处理。
- Comment:Route marked connections via LTE。点击 OK。
两条终端命令:
/ip firewall mangle add chain=prerouting in-interface=bridge src-address-list=proxy-clients dst-address-type=!local connection-mark=no-mark action=mark-connection new-connection-mark=conn-lte passthrough=yes comment="Mark connections from proxy clients"
/ip firewall mangle add chain=prerouting in-interface=bridge connection-mark=conn-lte action=mark-routing new-routing-mark=via-lte passthrough=no comment="Route marked connections via LTE"规则 3:路由器自身访问移动代理
Web Proxy 在路由器内部运行,因此其与父代理的连接诞生于 output 链而非 prerouting。若想让路由器经特定通道访问代理服务商,需单独加规则。
- 加号。Chain 选 output。Protocol 选 tcp。Dst. Address 填移动代理 IP,如 203.0.113.10。Dst. Port 填代理端口,如 8000。
- Action 选 mark routing。New Routing Mark 选 via-lte 或该流量应走的其他表。Passthrough 取消。
- Comment:Router to parent proxy。点击 OK。
/ip firewall mangle add chain=output protocol=tcp dst-address=203.0.113.10 dst-port=8000 action=mark-routing new-routing-mark=via-lte passthrough=no comment="Router to parent proxy"注意:mangle 规则顺序很重要。mark-connection 规则必须在 mark-routing 之上。按顺序用终端添加顺序正确。用 WinBox 添加后请检查 Mangle 标签,必要时拖动调整。
提示:mangle 有无风险的调试模式。创建一条 Action 为 passthrough、带所需条件但不打标记的规则。它的计数会显示有多少包命中条件,你就能判断过滤条件是否正确,而不会弄坏任何东西。
验证:客户端打开网站时,Mangle 标签中两条规则的 Packets 计数增长。打开 IP、Firewall、Connections:proxy-clients 地址的连接在 Connection Mark 列显示 conn-lte。若看不到该列,右键点击表格标题启用它。
可能遇到的问题
- New Routing Mark 列表中没有 via-lte。你没建路由表或没勾 FIB。回到 Routing、Tables。
- 客户端失去对路由器和 DNS 的访问。你忘了 Dst. Address Type - !local 条件。加进第一条规则。
- 计数为零。检查本地接口名:在 Interfaces 中可能叫 bridge1 或 bridgeLocal 而非 bridge。
第六步:路由表和带标记流量的路由
本阶段目标:告诉路由器带 via-lte 标记的包该往哪走,并为备用接口配置 NAT,让流量真正出去上网。
在 via-lte 表中添加默认路由
- 打开 IP,然后 Routes,点击加号。
- Dst. Address 字段填 0.0.0.0/0——表示任意目标。
- Gateway 字段填接口名 lte1。对 LTE 接口,RouterOS 接受接口名而非 IP 网关。若第二条线路是有线,填第二运营商网关 IP,如 10.20.0.1。
- Routing Table 字段选 via-lte。
- Check Gateway 选 ping。路由器会检测网关可达性,网关挂掉时路由变为非活跃。
- Distance 保持 1。Comment:Default via LTE for marked traffic。点击 OK。
/ip route add dst-address=0.0.0.0/0 gateway=lte1 routing-table=via-lte check-gateway=ping distance=1 comment="Default via LTE for marked traffic"若使用带网关的有线第二运营商,输入网关 IP 时 RouterOS 可能要求用百分号指定接口:10.20.0.1%ether2。当多个接口有相同子网时需要这样写。
为第二接口配置 NAT
客户端包会带私有地址 192.168.88.x 进入 lte1,运营商会丢弃。需要把源地址替换为接口地址,即 masquerade。
- 打开 IP、Firewall、NAT。查看是否有 Out. Interface 为 lte1 或 Out. Interface List 为 WAN(含 lte1)的 masquerade 规则。
- 若默认规则用 Out. Interface List - WAN,将 lte1 加入列表:Interfaces,Interface List 标签,加号,List 选 WAN,Interface 选 lte1。
- 若规则绑定具体接口 ether1,则新建一条:加号,Chain 选 srcnat,Out. Interface 选 lte1,Action 选 masquerade。
/interface list member add list=WAN interface=lte1
/ip firewall nat add chain=srcnat out-interface=lte1 action=masquerade comment="NAT for LTE"LTE 不可用时的备用路径
若 lte1 掉线且 via-lte 表中路由变为非活跃,带标记的包会失去路径,客户端流量中断。你需要决定:要么让它中断(严格模式,不允许流量绕开移动通道),要么让它走主线路(宽松模式)。宽松模式在同一表加一条 distance 更大的第二路由:
/ip route add dst-address=0.0.0.0/0 gateway=ether1 routing-table=via-lte distance=10 comment="Fallback via main WAN"若接口不支持以名称作网关,把 ether1 换成主运营商网关 IP。严格模式则不加备用路由。
提示:运营广告账户时严格模式是最佳选择。宁可页面打不开,也别让账户看到你的家庭 IP。宽松模式下务必用 Tools、Netwatch 配置 LTE 掉线通知,及时停止工作。
验证:在 IP、Routes 中 via-lte 表路由活跃,无 X 标志或非活跃的蓝色。终端执行:
/ip route print where routing-table=via-lte
/tool traceroute 8.8.8.8 routing-table=via-lte跟踪应经 LTE 运营商网关,前几跳与不带 routing-table 参数的跟踪不同。proxy-clients 列表中的客户端在未配置代理时打开查 IP 网站,应显示 SIM 卡蜂窝运营商地址。
可能遇到的问题
- 路由非活跃。lte1 接口未启动或未获得地址。检查 Interfaces、LTE 状态和 APN 设置。
- 路由活跃但网站打不开。lte1 没有 masquerade。检查 NAT。
- 能打开但显示主运营商 IP。mangle 规则未生效——回第五步检查计数。
- 客户端 DNS 不工作。客户端用路由器作 DNS,而访问路由器的流量被 !local 排除了,所以正常。若客户端用外部 DNS,路由器会经 LTE 发 DNS 请求,也可接受。
第七步:用防火墙保护配置并堵住漏洞
本阶段目标:确保代理从互联网无法访问,且 proxy-clients 列表中的设备不会意外绕过代理上网。
从 WAN 侧封锁代理端口
- 打开 IP、Firewall、Filter Rules 标签。
- 找到默认规则。标准配置中有 Chain 为 input、In. Interface List 为 !LAN、Action 为 drop 的规则。它已封锁所有外部入站,包括 8080 端口。若存在且启用,足够。
- 若无默认规则或你改过,显式加一条:加号,Chain 选 input,Protocol 选 tcp,Dst. Port 填 8080,In. Interface List 选 WAN,Action 选 drop。将其放在 input 的任何 accept 规则之上。
/ip firewall filter add chain=input protocol=tcp dst-port=8080 in-interface-list=WAN action=drop comment="Block proxy from WAN" place-before=0只允许列表内客户端使用代理
进一步限制局域网内对 8080 端口的访问:只有 proxy-clients 中的设备能连代理。
/ip firewall filter add chain=input protocol=tcp dst-port=8080 in-interface=bridge src-address-list=!proxy-clients action=drop comment="Proxy only for listed clients"WinBox 操作:加号,Chain 选 input,Protocol 选 tcp,Dst. Port 填 8080,In. Interface 选 bridge,Advanced 标签:Src. Address List 选 proxy-clients 并启用否定(点击字段左侧小方块出现感叹号),Action 选 drop。
禁止 proxy-clients 直连出口
此步骤适合严格模式:列表内设备只能经路由器 Web Proxy 上网,别无他途。这样即使应用未配置代理也无法暴露真实地址。
- 加号。Chain 选 forward。Advanced 标签:Src. Address List 选 proxy-clients。General 标签:Out. Interface List 选 WAN。
- Action 选 reject,Reject With 选 icmp network unreachable。reject 优于 drop:应用立刻收到错误,而非一直等待。
- Comment:Block direct internet for proxy clients。OK。
/ip firewall filter add chain=forward src-address-list=proxy-clients out-interface-list=WAN action=reject reject-with=icmp-network-unreachable comment="Block direct internet for proxy clients"注意:若使用第五、六步的 LTE 方案,客户端经 lte1 直接上网不走 Web Proxy,此规则需放宽:Out. Interface 改为 ether1 而非 WAN 列表,只封锁主线路。
注意:确认代理工作正常后再加 forward 封锁规则。否则会把自己的工作电脑网也断了,还以为是代理坏了,其实是操作顺序问题。
DNS 怎么办
显式配置 HTTP 代理时,浏览器不自行解析域名:它把网站名发给代理,由移动代理在其侧解析。这很好,无 DNS 泄漏。但电脑上其他应用仍向路由器查 DNS,路由器经主线路访问其 DNS 服务器。对广告场景不关键,因为网站只看到代理地址。若想让列表内设备的 DNS 请求也走 LTE,客户端用外部 DNS 服务器时它们已落入第五步的 mangle 规则。
验证:用手机蜂窝网络尝试打开 http://你的外部IP:8080——应无法建立连接。不在 proxy-clients 的电脑尝试填代理 192.168.88.1:8080 应报错。开启严格模式后,列表内电脑上任何未配代理的程序都不应能上网。
如何回滚改动
出问题时最快的办法是禁用规则而非删除。在任意防火墙标签选中规则点红色叉号 Disable。这样恢复访问又保留设置便于排查。完全回滚:Files,选中 before-proxy.backup,点 Restore,确认重启。两分钟后路由器恢复教程开始前状态。
结果验证:检查清单和测试
逐项过一遍清单。每项都是单独验证,完成的勾上。
检查清单
- Files 中有已复制到电脑的备份。
- IP、Web Proxy 状态为 Running,已填 Parent Proxy 和 Parent Proxy Port,缓存已关。
- Web Proxy Access 中有局域网段的 allow 规则和收尾的 deny 规则。
- Address Lists 中有 proxy-clients 列表含所需设备地址,地址已在 DHCP 中固定。
- NAT 中有 proxy-clients 的 80 端口到 8080 的 redirect 规则,且在 masquerade 之上。
- Mangle 中有顺序正确的 mark-connection 和 mark-routing 规则,计数增长。
- Routing、Tables 中有带 FIB 的 via-lte 表,IP、Routes 中该表有活跃的 0.0.0.0/0 路由。
- NAT 中第二接口有 masquerade。
- Filter Rules 中 8080 端口从 WAN 侧封闭。
如何测试
- proxy-clients 列表内电脑配好代理后,用 HTTPS 打开两三个不同的查 IP 网站。都应显示同一移动运营商地址及其运营商名称。
- 同台电脑用 HTTP 打开任意网站(未配代理)。应经 redirect 打开,IP、Web Proxy、Connections 中出现你的源地址记录。
- 非列表内电脑打开查 IP 网站。应显示你普通运营商的地址。
- WinBox 打开 Tools、Torch,选 lte1 或 ether1 接口点 Start。能看到实时流量:来自什么地址、到哪个端口。能直观看到每个客户端流量走哪个接口。
- 打开 Log 按 web-proxy 主题过滤。不应有 parent proxy connection failed 之类错误。
- 在客户端下载 100-200 MB 文件看速度。受限于移动代理速度而非你的带宽——这正常。
成功标志
- 查 IP 网站稳定显示列表内设备的移动运营商地址。
- 其他设备行为不变。
- 路由器对外不响应 8080 端口。
- 代理工作时路由器 CPU 负载不超过 30-50%(System、Resources 的 CPU Load 字段)。
- 断掉第二接口时带标记流量按第六步的决定表现:停止或切到备用路径。
常见错误与解决
MikroTik 代理已启用但客户端连接报错
原因:路由器连不上父代理。最常见是路由器外部 IP 未加入服务商白名单,或重连后变了。解决:执行 /tool fetch url=https://ifconfig.me/ip mode=https output=user,与服务商后台的地址对比,更新白名单。检查 Parent Proxy Port 以及服务商给的是 HTTP 端口而非 SOCKS。
HTTP 网站正常,HTTPS 打不开
原因:客户端代理只配了 HTTP,或你想依赖 443 端口的透明重定向。解决:在系统或浏览器设置中为 HTTPS 也启用代理。443 无法透明经过 Web Proxy,别尝试给 443 加 redirect——会弄坏所有加密网站。
添加 mangle 规则后客户端失去路由器访问
原因:缺 Dst. Address Type - !local 条件,访问路由器网页界面、DNS 和 DHCP 的流量也被打标进了别的表。解决:在 mark-connection 规则加该条件。已标记的连接清掉:IP、Firewall、Connections,选中客户端行,点 Remove。
Routing mark 下拉列表中没有
原因:RouterOS 7 中路由表需先在 Routing、Tables 创建。解决:创建带 FIB 勾选的表,再回到 mangle 规则。
流量已标记、路由活跃,但上不了网
原因:带标记流量所经接口缺 masquerade。解决:把 lte1 加入 Interface List WAN,或创建单独的 srcnat 规则 Out. Interface 为 lte1。
网站看到移动代理地址,但偶尔跳出家庭 IP
原因:电脑上部分应用或某浏览器没用代理,且未开防火墙严格模式。解决:启用第七步 forward 中针对 proxy-clients 的 reject 规则,检查指纹浏览器配置用的是 192.168.88.1:8080 而非系统设置。
路由器卡顿,CPU 100%
原因:开了磁盘缓存或弱型号上客户端太多。解决:关闭 Cache On Disk,Max. Cache Size 设 none。若为调试开了 Web Proxy Access 日志,关掉。几十个并发用户请考虑 ARM64 处理器型号,如 hAP ax3 或 RB5009。
NAT 规则顺序错误
原因:redirect 规则在 masquerade 之下,或在另一个更早截获流量的 dstnat 之下。解决:把 redirect 拖到列表最前。记住 srcnat 和 dstnat 链分开处理,但 dstnat 内部顺序关键。
重启后全坏了
原因:mangle 中填了移动代理 IP,而代理服务商换了地址,或 lte1 接口拉起比 check-gateway 触发慢。解决:在服务商后台核对地址,更新 Parent Proxy 和 output 规则。对 LTE,在 System、Scheduler 加开机任务,60 秒后用命令 /interface lte set lte1 disabled=yes; :delay 5; /interface lte set lte1 disabled=no 重启 lte1 接口。
进阶玩法
通过 DHCP 和 WPAD 自动下发代理设置
不想逐台配置,可发布自动配置文件 wpad.dat。这是一小段 JavaScript,告诉浏览器:这些地址用代理,其余直连。文件可放局域网内任意 Web 服务器,或放路由器 Files 中由 RouterOS 自带 www 服务分发。然后在 IP、DHCP Server、Options 创建代码 252 的选项,值为文件地址,绑定到 DHCP 网络。Windows 和多数浏览器开启自动检测代理后会自动获取。好处:新笔记本首次连 Wi-Fi 就拿到设置。
容器:SOCKS5 和用户名密码鉴权
内置 Web Proxy 只懂 HTTP 父代理,不传用户名密码。若你的移动代理只支持 SOCKS5 或仅支持用户名鉴权,RouterOS 7 的 Container 包能帮忙。ARM、ARM64 和 x86 型号上可运行 redsocks 或 gost 等轻量容器,接收透明重定向流量并封装为带鉴权的 SOCKS5。方案:容器在独立 veth 网络获地址,dstnat 规则把 proxy-clients 的 TCP 流量重定向到容器端口,容器再与移动代理通信。配置需通过终端并物理按下设备按钮启用容器模式,且注意内存,适合已熟练使用 RouterOS 的人。
为不同设备组使用多个代理
RouterOS 的 Web Proxy 只有一个,父代理也只有一个。若不同工位需要不同移动代理,可组合使用:部分客户端走路由器 Web Proxy,其他组建独立 address list 和独立路由表,经不同接口路由——第二个 LTE 模块、第二运营商。mangle 中每组有各自的 connection mark 和 routing mark。这样一台路由器可分出三四个独立出口。
定时切换父代理脚本
若服务商给多个地址且需定期更换,在 System、Scripts 写个短脚本用命令 /ip proxy set parent-proxy=新地址 修改参数,挂到 System、Scheduler 按需间隔执行。注意每个新代理地址都要在服务商后台按你的 IP 鉴权,output 的 mangle 规则要涵盖所有可能地址——更方便的是把其中 Dst. Address 换成含代理地址的 address list。
监控和通知
在 Tools、Netwatch 添加对移动代理地址 TCP 端口的可达性检测,间隔 30 秒。Down Script 填通过 /tool e-mail send 发消息或写带严重级别标记的日志。这样你会在广告账户发现之前先知道问题。
限速和优先级
移动代理通常比有线慢。为防止一个客户端吃满资源,在 Queues 为 proxy-clients 子网建 Simple Queue 限速,如整个列表 20 Mbps,或每地址单独队列。这样一台电脑上的采集工具不会让隔壁同事断网。
审计日志
Web Proxy Access 中可为 allow 规则启用 Log 字段。配置 web-proxy 主题后,System、Logging 会记录客户端地址和请求资源地址。长期存储可将日志经 System、Logging、Actions 发到远程 syslog 服务器。注意负载:弱型号上记录每个请求明显吃 CPU。
FAQ:配置常见问题
能否不配置电脑就让其全部流量走移动代理?
HTTP 可以,通过 NAT 的 redirect。HTTPS 用 RouterOS 自带功能不行,因为 Web Proxy 无法透明处理加密流量。完全透明方案需容器加 SOCKS5 转换器,进阶部分有讲。多数情况下,在客户端填一次代理 192.168.88.1:8080 或通过 WPAD 下发更简单。
为什么 Web Proxy 不接受父代理的用户名密码?
RouterOS 根本没这个字段。所以本方案的必要条件是代理服务商侧 IP 鉴权。若你的套餐不支持,联系服务商或使用容器。
只有一条线路,mangle 和路由表必须配吗?
不必。单线路第三、四、七步足够。mangle 和 PBR 在需要第二接口或严格分流时用。但学一学有好处:这是 RouterOS 的通用工具,别的场景也用得上。
如何知道客户端流量实际走哪个接口?
打开 Tools、Torch,选要检查的 WAN 接口,按源地址过滤。客户端流量在 lte1 可见而在 ether1 不可见,说明策略路由工作正常。第二种方法:IP、Firewall、Connections,相应连接的标记应为 conn-lte。
路由器外部 IP 变了会怎样?
父代理不再放行,客户端报错。在服务商后台更新白名单。要自动化可开启 IP、Cloud,并在代理服务商处配置按 DDNS 域名鉴权(若支持)。
能用 IP、SOCKS 菜单里的 SOCKS 服务器吗?
那是 SOCKS 服务器而非客户端。它允许其他设备以 SOCKS 代理连接路由器,但不能把流量转发到外部 SOCKS 代理。本教程场景不适用,最好保持关闭。
如何新增一台电脑?
在 DHCP Leases 用 Make Static 固定其地址,将地址加入 proxy-clients 列表,电脑上填代理 192.168.88.1:8080。其他都不用改——所有规则都引用列表。
能否为列表内客户端排除某些网站?
客户端显式配置时,在系统或浏览器代理例外字段加域名。路由器侧对透明 HTTP,可在 Web Proxy Access 加 Dst. Host 且 Action 为 deny 的规则,但那是屏蔽网站而非放行直连。PBR 路由时,把网站地址加到独立 address list,在主规则之上加 Action 为 accept 的 mangle 规则,这些流量就不会被打标。
如何彻底撤掉代理恢复原状?
快捷法:用 Disable 禁用 redirect、mangle 和 reject 规则,取消 Web Proxy 的 Enabled 勾选。彻底法:通过 Files、Restore 恢复 before-proxy 备份。
这合法安全吗?
用代理管理自有广告账户、测试和分流是常规技术实践。你须遵守所用平台的规则和与代理服务商的合同。安全方面主要是别把代理开放到互联网,别把无密码备份存放在公开位置。
结语
你走完了全程:做备份、升级 RouterOS、固定设备地址、启用内置 Web Proxy 并关联服务商的移动代理。然后你把客户端流量经 NAT 和显式配置导入代理,学会在 mangle 标记连接,创建独立路由表并配置经第二接口的策略路由。最后用防火墙保护方案,并按清单确认一切正常。
现在 MikroTik 上的代理活在网络层面,而非每台单独电脑上。新员工连 Wi-Fi、进列表、拿到设置——无需多余解释就能用上所需 IP。同时网络其余部分毫无察觉。
后续可以做什么
- 通过 DHCP 选项 252 配置代理参数自动下发,让新设备无需手动设置即可接入。
- 用 Netwatch 加监控代理可达性和通知。
- 把设备分成几个组,用不同 address list 并为每组搭建独立路由表。
- 若需要 SOCKS5 或用户名鉴权,研究 Container 包,在测试路由器上试试转换器方案。
进一步学习方向
RouterOS 是套很深的系统,mangle 加策略路由只是其中一部分。本教程之后顺理成章可以学:队列和流量优先级、脚本与计划任务自动化、通道自动切换的冗余,以及一机多 LTE 模块。每项都依托你已掌握的概念:地址列表、标记、路由表。把本文当手册反复查阅,在测试配置上多做实验,每次重大改动前别忘了备份。