Logo
Overview

在物理机上配置RouterOS

September 17, 2025

折腾了两天,终于搞好了…

最开始想的是PVE来做外层,里面放个RouterOS,还有空间还能放其他的。这样确实是跑通了:pve创建了一个虚拟网卡连进了内网,也可以内网访问了。然后就想到了一个问题:万一某一天RouterOS没有启动起来,那我不是也没办法恢复了?

于是决定最外层就放RouterOS本体,里面再折腾点什么docker之类的来扩展服务。(但是为什么不在NAS上搞呢)

0x01 配置猫棒

猫棒是用来替代光猫的(?真能替代吗)大概是光模块 + 一个完整的单片机用来模拟光猫的硬件(LOID,vlan等)不同于光模块需要插到支持sfp的软路由/电脑里进行配置,猫棒可以做带接近即插即用。(当然主要是带sfp电口的软路由太贵了,又不太好改pcie加装电口,才会出现这样的东西。

💡

需要注意的是,当前比较便宜的猫棒/光模块是支持GPON而不是EPON的。

EPON:最大速率1G,GPON:最大速率2.5G,XGPON:最大速率10G。(XGPON是向下兼容GPON的,所以也可以用哦——)

当然如果家里开了万兆/两千兆宽带的富哥我们一般是不建议买猫棒这种垃圾货色的。(UniFi更适合您😭)

这玩意咸鱼太多了,随便找一个买就行,一般卖家还是不错的,不会发坏掉的给我们。(某位老师说咸鱼上买到的这种可能来自河南的移动基站,但是我收到的为啥是广东发货的)

但是由于是sfp口,电脑还是不支持的,所以我们需要找一个光转电的模块,把sfp转成rj45的。搜了下学名叫收发器,2.5G的大概70块。

另外,一般住户的入户光纤和sfp接口也不兼容,需要准备一个转接头。同样,在买猫棒的时候,店家可能会问你。

这一步是分运营商的,其他运营商我没开过T T,所以就以吉林电信来讲吧

要模拟光猫的系统工作,你需要这些内容:LOID,vlan,设备标识号。这些内容存在在光猫的后台中(需要超管?不一定)

💡

但是在社会工程学的强大力量加持下,我找宽带师傅要来了超管账号密码。(其实比较简单的做法是直接重置光猫:重置光猫不会丢掉它的pppoe登录信息,只会丢掉其他的配置)

可以看到41结尾的是Vlan ID,LOID我也是直接找师傅要到的。设备标识号在设备的反面,反过来就能看到。

另外你还需要获得pppoe的账号密码!这个密码不是app那里改的密码,还是需要登录后台去看。

信息准备好了就可以把光猫背面的光纤拔掉,通过转接口插到猫棒上,然后插到收发器上,把收发器的电源插上,再把收发器的rj45插到电脑上。(什么人体蜈蚣)

手动设置下ip,设置在192.168.1.0/24里的随便一个(别是10就行),子网掩码255.255.255.0。

然后就能访问到1.10上的openwrt了。打开GPON栏里的互操作兼容设置,输入LOID,GPON SN,

打开vlan设置,pvid填写上网vlan,我这台没开iptv,就不用填其他的了。

然后保存,之后重启。可以看到首页上有注册状态和接收光强度等级。接收光强度在-10 ~ -18 dbm算是正常的,注册状态是5说明这里配置是没问题的。

然后就是非常传统的PPPoE拨号配置了:输入账号密码,登录。如果有网就连接成功了。

💡

噔噔咚

当你做到这一步的时候你会发现,用纯硬路由器(arm/mips/riscv)来拨号,是会有性能损失的。(存疑,不确定是运营商的问题还是我硬件的问题)跑测速只有几mb这样子。(确实是性能问题———

0x02 安装 RouterOS

这是卡了我最久的一步….

RouterOS提供:netinstall,相当于pve启动,配置比较玄学;install-image(只能往所在盘安装)。这导致我的一般方法都用不了()跟着网上的说法做,被迫下了一个pe系统——这里用的是edgeless,看上去美观一些.jpg。当然其实把东西全下下来用dd也行。

下载:https://mikrotik.ltd/ 到这里去下载install-image。

通过dd或者其他的什么方式把它直接写入目标盘。重新启动到系统,就能看到安装界面了。选盘,安装,记得一定要安装option包

于是打开就有一个略微正常的系统了,因为是非常爽的4口软路由,所以我们有四个网卡设备(这不废话吗)

0x03 配置基础

这里用的‣这个教程,照着配就行了。

0x04 配置AP接入

既然已经用了ROS做主路由了那么,在里面套LAN似乎没什么必要。所以我们让wifi变成AP只做接入:分配网段等操作交给主路由。

简单的在openwrt之类的里面把DHCP关掉就好,然后把wan和lan口放到同一个bridge里,保存重启就能在ROS后台看到接入的设备了

0x05 透明代理

其实前面几个都不是这一套系统的主要作用,最后这一个才是啊😭

实现之后大概是这样:

国内请求→sing-box (dns) → 国内real-ip → 正常访问(直接走pppoe出站)

国外请求→sing-box (dns) → 国外fake-ip → 路由到sing-box(tun) → 加密混淆…. → pppoe 出站。

要做到这样的请求,我们需要用container容器,所以这里我们先把容器功能打开

/system/device-mode/update container=yes

然后直接断电再插上,不是reboot!

然后如果没有container的就安装container,有的就不管。

接下来添加一个veth网卡,有些教程是放到docker的一个bridge里,我这里就直接放主bridge了

/interface/veth add address=192.168.2.2/24 gateway=192.168.2.1 name=veth1
/interface/bridge/port add bridge=bridge1 interface=veth1

创建挂载点

/container/mounts/ add name="singbox" src=/containers/appdata/singbox dst="/root/sing-box"

用你想用的方式(sftp或者直接file上传)你的配置(见下文)

然后创建容器

/container/ add remote-image=sagernet/sing-box:latest cmd="run -D /root/sing-box -C /root/sing-box" comment=singbox interface=veth_singbox mounts=singbox_persist root-dir=/containers/singbox  start-on-boot=yes

启动完成其实就好了。

如果你按照前面那篇的配置来做的话,需要把defconf: drop invalid connection的防火墙里排除掉
198.18.0.0/15 这个网段,然后添加fake-ip静态路由


/ip/route add comment=fakeip disabled=no distance=1 dst-address=198.18.0.0/15 gateway=192.168.2.2 pref-src=0.0.0.0 routing-table=main suppress-hw-offload=yes

配置文件修改的地方如下:

inbound中这样写:

{
      "type": "tun",
      "sniff": true,
      "auto_route": true,
      "auto_redirect": false,
      "strict_route": false,
      "address": ["172.18.0.1/30"],
      "route_address": ["0.0.0.0/1", "128.0.0.0/1"],
      "route_exclude_address_set": ["geoip-cn"],
      "route_exclude_address": ["172.18.0.1/16", "192.168.0.0/16"],
      "mtu": 9000
    },
    {
      "type": "direct",
      "tag": "dns-in",
      "network": "udp",
      "listen": "0.0.0.0",
      "listen_port": 53
    }

DNS里:

{
    "servers": [
      {
        "tag": "cloudflare",
        "address": "tls://1.0.0.1",
        "detour": "direct"
      },
      {
        "tag": "local",
        "address": "119.29.29.29",
        "detour": "direct"
      },
      {
        "tag": "gladns",
        "detour": "proxy", # 这里填你的proxy
        "address": "https://1.0.0.1/dns-query"
      },
      {
        "tag": "block",
        "address": "rcode://success"
      },
      {
        "type": "fakeip",
        "tag": "fakeip",
        "inet4_range": "198.18.0.0/15",
        "inet6_range": "fc00::/18"
      }
    ],
    "final": "gladns",
    "rules": [
      {
        "outbound": "any",
        "rewrite_ttl": 300,
        "server": "local"
      },
      {
        "rule_set": "geoip-cn",
        "server": "local"
      },
      {
        "rule_set": "geoip-cn",
        "invert": true,
        "rewrite_ttl": 900,
        "server": "fakeip"
      }
    ],
    "strategy": "ipv4_only"
  }

0x06 PXE

然后又多了一个nas,但是没带U盘。那顺便搞一下这个吧:netboot.xyz是比较好用的一个网络安装工具。

下载好了传到根目录

  1. 在ip dhcp server里添加boot file = netboot.xyz.efi,next server = 192.168.2.1
  2. 在ip tftp里添加 一个filename = netboot.xyz.efi, local-file= netboot.xyz.efi的文件。

启动你的设备,在BIOS里设置(Network Stack Configuration或者类似的设置里开启ipv4 pxe),这个时候就能自动启动到netboot了。

comment

留言 / 评论

如果暂时没有看到评论,请点击下方按钮重新加载。