简介:这份资源是为RouterOS(ROS)用户准备的WebFig界面汉化包,面向不熟悉英文却需要日常配置路由器的中文网络管理员。它能将WebFig菜单、选项、提示信息等界面文字转换为中文,显著降低语言门槛,尤其适合企业级网络运维及入门学习者。压缩包共4个文件,以json语言配置为主,附带png、jpg预览图和txt安装说明,整体仅257KB,轻量易用。目前已有1264人学习下载。除核心汉化json外,还包含直接可用的字体与界面预览图,并通过文本说明标注适用版本与安装步骤,方便用户按图索骥。需要留意版本兼容性,安装前做好配置备份,即可在不影响原有功能的前提下获得更友好的Web管理体验。
1. 为什么我要折腾RouterOS的web界面汉化
先说结论:RouterOS的web界面汉化,本质上不是改几个翻译文件那么简单,它牵扯到RouterOS的系统架构、Winbox协议和Webfig渲染机制。
我最早接触RouterOS是帮朋友调试一台RB750Gr3,当时他问了一个很现实的问题:“这玩意儿全是英文,我看不懂,能不能弄成中文?”我当时第一反应是“应该可以吧”,结果一查资料才发现,情况比我想象中复杂得多。
RouterOS是MikroTik公司的路由系统,它的原生界面语言只有英文。官方文档里从来没有提供过官方的中文语言包。社区里流传的汉化方案,基本靠两条路:一是修改RouterOS的JavaScript渲染文件,二是用第三方的语言包注入工具。两条路都有坑,后面我会详细说。
这个需求其实很真实。国内大量使用RouterOS的用户,很多是中小企业的网管、数码爱好者、甚至是一些刚入行的运维新人,英文界面确实是他们上手的第一道坎。尤其是做基础配置——PPPoE拨号、DHCP服务器、端口转发、防火墙规则——如果全是英文,每一步都得对着翻译软件查,效率极低,还容易配错。
这篇内容,我打算按自己的实操经验,把RouterOS web界面汉化的完整思路、具体操作步骤、常见坑点和排查方法都写清楚。如果你是第一次接触RouterOS,或者已经用了一段时间但始终被英文界面困扰,这篇内容可以帮你少走不少弯路。
我一直觉得,RouterOS这套系统本身的逻辑是很清晰的——它的设计理念是“先接口后策略、先路由后防火墙”,如果界面能看懂,这套逻辑学起来其实很快。所以汉化这件事,看着是“翻译问题”,本质上其实是“降低学习门槛”的问题。
先说清楚我的实验环境:RouterOS版本是6.49.10(长期版),硬件是一台x86的软路由,Webfig端口是默认的80端口。后面所有操作都基于这个环境,版本不同可能会有些差异,但整体思路是通用的。
2. 汉化的核心原理:Webfig是怎么被渲染出来的
2.1 RouterOS的三种管理界面
在动手汉化之前,必须先把RouterOS的管理界面体系搞清楚。RouterOS一共有三种管理方式:Winbox(Windows桌面客户端)、SSH命令行、Webfig(浏览器web界面)。这三种方式共用同一个后台配置系统,但前端渲染机制完全不同。
Webfig就是我们这次要汉化的对象。它是用JavaScript写的前端,直接跑在路由器的HTTP服务里,你通过浏览器访问路由器的IP地址,看到的就是Webfig。Webfig的代码是打包在RouterOS系统里的,它依赖一些js文件来渲染菜单、表格、按钮和表单控件。
这里有个关键点:Webfig的界面文字,并不是从语言包里读取的,而是硬编码在JavaScript文件里的。这就是为什么RouterOS没法像普通软件那样出一个“中文语言包”然后一键切换。你要汉化,就得直接改这些js文件。
2.2 汉化的两种主流思路
社区里常见的汉化方法,我总结下来就是两种:
第一种:直接替换js文件。把RouterOS里负责渲染界面的js文件导出,找到里面的英文字符串,替换成中文,再导回去。这个方法的优点是彻底、干净,只要替换成功,界面就是全中文。缺点是很麻烦,而且RouterOS的文件系统限制比较多,文件大小和格式都有讲究。
第二种:用代理工具做中间层翻译。在电脑上用Fiddler或Charles这类抓包工具,拦截浏览器对RouterOS的js文件请求,在本地替换成已经汉化好的js内容。这个方法不碰路由器本身,风险低,适合尝鲜。缺点是每次换一台电脑都得重新配置代理,而且如果路由器启用了HTTPS,还得处理证书问题,比较繁琐。
我自己实际测试下来,还是推荐第一种——虽然操作步骤多,但是一劳永逸,而且能真正理解RouterOS的界面渲染机制。后面我会重点讲这个方法。
2.3 需要动刀的文件在哪
RouterOS的文件系统需要通过FTP才能访问。你可以在Winbox里打开FTP服务,然后用FileZilla这类工具连上去。关键的文件路径我记得很清楚,在根目录下有一个webfig文件夹,里面是Webfig的核心文件。最核心的是js子目录下的routeros.js,这个文件包含了Webfig大部分界面元素的定义和文字内容。
不过有个坑:RouterOS对文件系统的保护很严格。直接通过FTP上传同名文件覆盖,很多版本会提示失败,因为系统文件被标记为只读。这时候就需要用RouterOS的/file命令去处理文件属性,或者先在本地改好名字,上传之后再改回来。这部分操作细节我在后面的实操环节会详细说。
3. 实操准备:先把环境弄利索
3.1 从U盘系统开始说起
有人可能会问,汉化跟系统装在U盘上有什么关系?关系很大。因为汉化需要反复修改、上传、重启测试,如果你是在主力生产环境的RouterOS上直接操作,一旦搞挂,全网都断。所以我强烈建议,先在U盘系统或者虚拟机里做实验,确认没问题了再到真机操作。
RouterOS本身是支持安装在U盘上的。官方提供了ISO镜像,也有针对U盘部署的img镜像方案。这一步我觉得值得单独说几句,因为很多新手第一次接触RouterOS就是从一个U盘系统开始的。
最简单的做法:下载RouterOS的CHR(Cloud Hosted Router)镜像或者原版ISO,用写盘工具把镜像写入U盘,插到x86设备上启动。RouterOS对U盘的兼容性整体不错,但实话说,U盘性能不如SSD,如果跑大量NAT转发,U盘会成为瓶颈。所以我一般建议,U盘系统只用于测试、学习、汉化实验,不推荐在生产环境长期跑。
3.2 FTP和Winbox的准备工作
我们要在电脑上准备好这几样东西:
- Winbox:MikroTik官方的Windows管理工具,用于管理RouterOS。
- FileZilla或其他FTP客户端:用于连上RouterOS的文件系统,导出和导入js文件。
- Notepad++或其他支持UTF-8编码的文本编辑器:用来编辑js文件。这步很关键,后续我会专门说编码问题。
- 一个测试用的路由器或U盘系统:新手千万别在现网设备上直接搞。
Winbox连接方式很简单,直接填路由器IP和账号密码就行。连接成功后,左侧菜单栏里找到Files,点击进入后能看到路由器的文件系统,这是传统方式。但更方便的是直接用FTP连上去,因为FTP能直接映射到本地磁盘,操作起来跟本地文件夹一样。
开启FTP服务的方法是:Winbox里打开IP->Services,找到ftp服务,确认端口是21,并且勾选启用。注意,如果路由器开启了防火墙,需要放行从你电脑IP到路由器IP的21端口访问。直接在你本机的浏览器里或者FTP工具里测试一下,能连上就说明服务开好了。
3.3 备份永远是第一步
无论你打算做什么修改,第一步永远是备份。RouterOS的备份分两种:
- 配置备份:用Winbox的
Files列表,右键backup,生成一个.backup文件。这个文件包含路由器的全部配置,恢复后能回到备份时的状态。 - 文件系统备份:如果你要修改的是系统文件(比如js文件),务必先把原文件下载到本地存好。这样即使改坏了,也能通过FTP上传覆盖回去。
我见过不少人跳过备份,直接上手改文件,改坏了之后只能重装系统,配置全部丢失,非常痛苦。备份这个动作花不了两分钟,但能救命的。
4. 核心实操:web界面汉化的完整步骤
4.1 导出并定位js文件
用FileZilla连上路由器后,进入/webfig/js/目录。这里会看到很多文件,我们需要重点关注的几个是:
routeros.js:核心界面文件,包含了绝大部分的界面字符串。loader.js:负责加载webfig的js文件。base.js:基础组件库,部分按钮和通用术语在这里。
正常来说,导出一个routeros.js文件,大小可能在几十KB到几百KB不等。文件一开始是一个大数组,里面定义了Webfig所有的菜单、面板和表格布局。
用Notepad++打开这个文件,搜一下Interface、Firewall、IP Address这些词,能看到英文文本就说明没找错文件。接下来,我们就要把里面的英文字符串替换成中文。
4.2 字符串替换的正确姿势
这里必须是重点中的重点,因为很多人的汉化失败都栽在这一步。
第一,文件编码必须是UTF-8。RouterOS的Webfig加载js文件时,期望的编码格式是UTF-8。如果你用记事本或其他工具把文件保存成了ANSI编码,中文会直接乱码,甚至可能导致整个界面打不开。所以无论如何,保存的时候一定要选UTF-8无BOM格式。
第二,字符串替换要小心引号转义。js文件里有大量单引号和双引号,中文替换时如果你不小心在中文里也带了引号,会导致JavaScript语法错误,然后整个Webfig加载失败。所以替换时,尽量只替换英文字母和空格,不要引入额外的特殊字符。
第三,使用正则表达式批量替换要谨慎。我见过有人用正则一键把所有menu的标签都替换成中文,结果把js文件的逻辑代码也给误伤了。所以建议最好是逐条替换,或者至少先把文件复制一份,改完一部分就检查一次。
我实际改的时候,习惯先把routeros.js里最常用的几个词替换掉,比如Interfaces改成接口、IP改成IP地址(严格说这个不用改,因为IP本身就是通用缩写)、Firewall改成防火墙、Routing改成路由。先做一遍小范围测试,确认Webfig能正常加载后,再继续替换其他部分。
4.3 上传回路由器
修改完成后,就是最关键的上传环节。用FileZilla把改动过的routeros.js直接拖到/webfig/js/目录下。这里最常见的报错是**“上传失败”或“文件被占用”**,原因有两个:
- 路由器上Webfig服务正在运行,占用了这个文件。
- 文件属性是只读的。
解决办法:先在Winbox里,通过Files列表找到webfig/js/routeros.js,右键点击,看有没有Properties或Permissions,把只读属性去掉。如果去掉只读属性后还是不能覆盖,就先把Webfig服务停掉,等上传完再打开。
在RouterOS命令行里可以这样操作:
/ip service set www disabled=yes这个命令会停掉web服务(www就是Webfig的HTTP服务)。等文件上传完毕后,再把服务开起来:
/ip service set www disabled=no如果你配置了HTTPS访问,对应的服务名是www-ssl,要停的是这个。上传完之后,用Ctrl+F5强制刷新浏览器缓存,然后重新访问路由器的IP,就能看到中文界面了。
4.4 刷新与验证
上传成功后,首先验证的是Webfig能不能正常加载。如果页面白屏或者报JavaScript错误,说明js文件的语法有问题,或者编码不对。这时候要立刻用本地备份的原文件覆盖回去,先恢复原状。
如果页面能加载出来,但是某些菜单还是英文,说明那些文字不在routeros.js里,而在其他js文件里。这时候就得按同样的方法,检查base.js或其他模块文件。我曾经改到后面发现,有一个“Apply”按钮的文字在base.js里,不处理它的话,界面大部分是中文,几个按钮还是英文,特别丑。
5. 常见问题与排查技巧实录
5.1 改完上传后Webfig白屏
这是最高频的问题。原因通常是三种:
- js语法错误:替换时不小心引入了多余的引号、括号,或者把字符串截断了。排查方法是用浏览器开发者工具(F12),打开Console标签页,看有没有红色的JavaScript报错,报错信息里会提示是哪一行出了问题。
- 编码错误:保存的文件编码不是UTF-8,导致中文字符在js引擎里无法解析。检查方法是用Notepad++重新打开文件,看右下角显示的编码格式是不是
UTF-8。 - 文件上传不完整:FTP传输过程中断,导致文件损坏。这个最坑,有时候传输完成但文件大小对不上,界面就加载不出来。解决方法是上传后立即比对本地文件和路由器上的文件大小是否一致。
我自己有一次就是编码问题,FTP上传的时候FileZilla默认的传输模式是二进制,但我之前用记事本修改过文件,记事本默认的ANSI编码,导致所有中文字符全部变成乱码,Webfig直接打不开。从那之后,我再也不用记事本编辑js文件了。
5.2 汉化后部分文字还是英文
这个问题主要是替换范围不全造成的。我前面提到过,Webfig的界面文字分散在多个js文件里,只改一个routeros.js是不够的。
这里给你一个排查思路:用浏览器打开Webfig,按F12打开开发者工具,切到Sources标签页,能看到浏览器加载了哪些js文件。然后逐个检查这些文件里包含的英文字符串,把没替换的补上。
比较常见的“漏网之鱼”是:右下角的“Apply”按钮、“Cancel”按钮、表格里的“Edit”、“Delete”、“Add New”等操作按钮。这些按钮的文字很多在base.js或者forms.js里,需要单独处理。
5.3 汉化版导致登录页打不开
登录页的渲染和主界面的渲染是两套逻辑,登录页的文件是login.html加几个独立的js。如果登录页打不开,大概率是login.html引用的js文件名称被改了,或者文件路径错误。
所以这里要提醒一点:做汉化时,只改内容,不要改文件名,也不要移动文件路径。Webfig的加载逻辑是按固定文件名去查找的,一旦文件名变了,整个界面就崩。
5.4 浏览器缓存导致看不到变化
很多情况下,你明明改成功并上传了,但浏览器里看到的还是英文。这时候不要怀疑文件没上传成功,先试试Ctrl+F5强制刷新,或者开一个无痕窗口重新访问。浏览器缓存是Webfig汉化调试中非常常见的隐形杀手,我被坑过不止一次。
5.5 从Winbox进入命令行辅助排查
很多人会在Webfig里配完网络后,不知道怎么直接进入命令行。这个需求其实特别频繁,尤其涉及到排查问题时。
从Webfig进入命令行有两种方式:一是直接在Webfig页面右上角,有一个终端图标,点击后能进入RouterOS的CLI界面;二是在Winbox里,直接打开New Terminal窗口,这个就是命令行。
在命令行里排查汉化问题,最有用的是这几条命令:
# 查看Webfig服务是否正常运行 /ip service print # 查看文件系统中js文件的大小 /file print detail where name~"routeros.js" # 重启系统让文件重新加载 /system reboot其中重启系统这个方法,我在调试汉化时用得最多。有时候FTP上传后文件虽然写入了,但Webfig的缓存还是旧的,重启一下系统强制所有服务重新加载文件,问题就解决了。
6. 不同版本的RouterOS汉化差异
6.1 v6和v7的差异
RouterOS目前有两个大版本:v6和v7。v7是较新的大版本,核心变化是加入了更多的容器支持、新的路由引擎和更新的安全机制。这两个版本的Webfig文件结构有明显差异。
v6版本的Webfig文件比较“朴素”,js文件数量不多,结构相对简单,汉化的时候改动量不大。v7版本的Webfig做了一些重构,文件数量和结构都有变化,汉化难度比v6略高。但整体思路是一样的——找到js文件、替换字符串、上传覆盖。
我个人的建议是,如果你只是想在测试环境里玩汉化,优先用v6版本,因为社区里已有的汉化资源绝大多数是针对v6的,参考资料多,踩坑成本低。
6.2 华为AR6140的Web界面对比
说个题外话,很多人在搜RouterOS周边的时候也会搜到华为AR6140这种企业路由器的Web界面问题。华为的企业路由器和RouterOS不一样,它自带中文界面,但登录后想进入命令行,入口会比较隐蔽。
一般流程是:登录Web界面后,在左侧菜单或顶部工具栏里找“系统管理”或“系统信息”之类的选项,里面有一个“命令行”或“CLI”入口。但说实话,华为的设备我更建议直接用SSH或者Console线进命令行,因为Web界面上的CLI入口通常只是一个简易终端,功能受限。
这个跟RouterOS的关系不大,但如果你同时接触这两种设备,记住一点:不同厂商的Web界面设计哲学完全不同,RouterOS倾向于把底层细节暴露在Web里,而华为倾向于把Web做成“总览+配置向导”,命令行藏在角落里。前者汉化难度大但可玩性高,后者自带中文但路径隐蔽,各有取舍。
7. 汉化工具与资源推荐
7.1 手动汉化的必备工具
如果你决定自己手动汉化,我推荐这几款工具:
- Notepad++:免费,支持UTF-8编码转换,支持正则替换,体积小,启动快。
- VS Code:功能更强,尤其是批量查找替换和代码高亮,适合处理大型js文件。
- FileZilla:免费FTP客户端,传输稳定,支持断点续传。
- Winbox:MikroTik官方管理工具,用于开关服务、查看文件属性、备份恢复。
这些工具全部免费,而且跨平台支持良好。我自己常用的是VS Code加FileZilla的组合,因为VS Code在编辑大文件时更稳定,不会像记事本那样卡死。
7.2 社区汉化包的使用方法
说句实在话,RouterOS社区里确实流传过一些现成的汉化包,格式一般是打包好的js文件集合。这些汉化包的使用方法大同小异:把文件上传到对应目录,覆盖原文件,重启服务。但我要提醒一点:很多汉化包是针对特定版本的,跨版本使用大概率会出问题。
所以即使用现成的汉化包,也一定要先备份原文件,在测试环境里验证过再上生产环境。我在实际操作中遇到过用汉化包导致Webfig无法打开的情况,最后是通过FTP用原文件覆盖回去才恢复的。
7.3 半自动工具的思路
如果你有一定编程基础,可以写一个简单的Python脚本来自动完成字符串替换,比在文本编辑器里手动替换效率高很多。核心逻辑是读取js文件,定义一串要替换的英文关键词到中文的映射表,然后逐行扫描替换。
import re import io mapping = { "Interfaces": "接口", "Firewall": "防火墙", "Routing": "路由", "Wireless": "无线", "Bridge": "桥接", "Queue": "队列", "System": "系统", "Files": "文件", "Log": "日志", "Tools": "工具", "IP": "IP", "User": "用户" } def translate_file(input_path, output_path): with io.open(input_path, "r", encoding="utf-8") as f: content = f.read() for en, cn in mapping.items(): content = content.replace(en, cn) with io.open(output_path, "w", encoding="utf-8") as f: f.write(content) translate_file("routeros.js", "routeros_cn.js")注意,这个脚本只能处理直接完整匹配的英文词,如果你要替换的英文在文件里出现在字符串中间,可能需要调整替换逻辑。另外,这个脚本有一个风险:如果英文关键词本身是JavaScript的变量名、方法名或类名的一部分,直接替换会导致语法错误,所以脚本的映射表要谨慎设计,宁可少替换,也不要误伤。
8. 我的经验总结与建议
这些年在RouterOS上折腾汉化,我最大的感受是:汉化本身不难,难的是理解整个Webfig的渲染逻辑和文件依赖关系。很多人卡住,是因为把它当成一个“语言包安装”问题来对待,而实际上它是一个“文件系统改造”问题。
如果你只是想快速把界面变成中文,我建议按这个顺序来:
- 先在U盘系统或虚拟机里建一个测试环境。
- 备份原文件。
- 只替换最常用的那几个新增大项,比如“Interfaces”、“Firewall”、“IP”等。
- 验证无误后再逐步扩大替换范围。
- 每次改动都保留一份可回滚的备份。
如果你是想在生产环境做汉化,我建议慎重再慎重。生产环境追求的是稳定,而汉化操作必然要重启Web服务或者整个系统,这会造成短暂的中断。更稳妥的方式是,在备用设备上做好汉化,然后同配置切换到生产环境。
最后再分享一个我实际踩过的坑:在修改js文件时,尽量用英文引号和英文字符做边界,不要在中文文案里加多余的引号或注释符号。好几次我就是在中文后面随手加了个//注释,结果导致后面一长串代码全部被注释掉,整个界面直接变了形。这种问题排查起来特别费时间,所以规范操作比图省事重要得多。
汉化只是RouterOS众多可玩性中的一小块,但它能让你更快地上手这套系统,理解它的配置逻辑。等界面变成中文之后,你会发现自己能更快地找到菜单、理解选项,学起RouterOS来会顺畅很多。我个人建议,汉化完成后,重点去摸索防火墙规则、NAT规则和DHCP分配这几块,吃透了这些,RouterOS的基本功也就扎实了。
本文还有配套的精品资源,点击获取