- Published on
Software-Based Router
- Authors
- Name
- Sunway
- 1 Xiaomi-Router-4C OpenWRT
- 2 PW-550 ImmortalWRT
- 2.1 安装 SuLingGG X86 开源固件
- 2.2 安装官方 X86 开源固件
- 3 Pass Wall Configuration
- 4 Summary
1 Xiaomi-Router-4C OpenWRT
详情可以参考 openwrt 官网的刷机教程
步骤大概分为3步:
- 1: 跑 py 脚本,通过 telnet 进入 terminal
- 2: 通过 wget 把 固件 下载到 /tmp 目录下
- 3: 通过命令
mtd -r write /tmp/openwrt.bin OS1
写盘重装系统
我这里参考的是一位 up 的方法,通过 ftp://192.168.1.1
直接固件传输到路由器的 /tmp
目录下了,没有去跑Py脚本,这种方法只需要在联网的条件下以管理员的身份运行文件: 0.start_main.bat
来为路由器安装 ftp
即可 ,文件下载
Openwrt 系统安装完成后,进入管理界面如下图所示:
如上图所示,Xiaomi 4C
的 overlay
分区只有不到 10M,根本没有足够的存储空间安装 V2ray OpenClash
等插件,有人也遇到了同样的问题
Xiaomi 4c Router
安装完 Openwrt
后才发现它这个硬盘空间这么小,好在这个路由器是闲置的路由器 2 PW-550 ImmortalWRT
在有了安装 Xiaomi Router 4C OpenWRT
的经验后,我连夜在咸鱼上花130买了一个 PW-550 X86/64 CPU-N3060
的小主机,下单后直接去线下自提了这个软路由,原主人是在这台小主机的硬盘上安装的爱快软路由,而我想使用的是 OpenWRT
或者 ImmortalWRT
,所以我还需要换个软路由
PW-550
应该是是个套牌组装的小主机,网上能搜到的信息很少,它的官网也没有详细的介绍,尝试了很多键位才知道这个小主机的主板是按 F2
进入 BIOS
关于 PW-550
的介绍可以参考 Youtube
2.1 安装 SuLingGG X86 开源固件
安装这个开源固件的原因是因为我在 恩山论坛 上开到有很多人推荐,而且它的插件集成做的很不错,可以省很多事
步骤2: 给小主机插上 U盘,键盘,HDMI显示器后通电开机
步骤3: 在开机过程中狂按
F2
进入BIOS
,然后选择从U盘
中加载系统,而非从硬盘中加载系统步骤4: 重新开机,X86小主机的开机系统即可从
ikuai(硬盘)
切换到OpenWRT(U盘)
步骤5: 修改
/etc/config/network
把 LAN 口的网段从192.168.1.1/24
改为192.168.2.1/24
,因为我家光猫通过PPPOE
拨号获取公网IP,它的LAN口
网段就是192.168.1.1/24
,怕到时客户端通过DHCP
服务器获取IP
时产生IP冲突导致客户端断网,所以修改软路由LAN口
的网段步骤6: 修改完成后执行
/etc/inid.d/network reload
重启网络即可,然后可以在Windows CMD Terminal
通过ipconfig
看到电脑已经分配了192.168.2.0/24
网段中的一个IP
线路拓扑解析如下
- 1 运营商 -> 光猫 WAN口 (光猫PPPOE拨号获取WAN口IP,光猫LAN口网段为 192.168.1.1/24)
- 2 光猫 LAN口 -> 软路由 WAN口 (PW-550 WAN口为192.168.1.1/24,LAN口为192.168.2.1/24)
- 3 软路由 LAN口 -> Windows主机网线接口
至此,我可以在我的电脑上通过访问 192.168.1.1
访问光猫的管理控制台,可以通过 192.168.2.1
访问软路由 OpenWRT
的管理控制台
踩坑如下:
1: 按 F2
进入 PW-550
的 BIOS
,不是 Delete F11
......
WAN口
和 LAN口
是由软件定义的,如果电脑通过网线连接软路由后获得IP为 169.254.x.x/16
则说明线接错口了,可以在软路由的终端通过 ip a
命令查看软路由是否通过DHCP
从光猫获取到了WAN口 IP
,至于为什么从 dhcp
获取IP
失败后会 拿到一个 169.254.x.x/16
的 Ip
可以自行查阅 SuLinGG
开源的固件到 18.06
版本就不再更新了,官网最新的 ImortalWRT X86
固件已经升级到了 23.05
版本了,版本落后太多,而且安装到我的小主机上时出现了一些小问题,最终还是放弃了这个固件
如下图所示,系统日志发现这个开源的18.06
版本无法执行某些 cron Job
;无法打开 ttyd
终端,192.168.2.1:7681
ttyd服务启动失败;集成了太多的我不需要的插件...
功能集成如下图所示
2.2 安装官方 X86 开源固件
因为 SuLinGG开源固件 版本太老,且出现了一些未知的问题,所以我还是决定去安装 官方的开源固件
步骤3: 在开机过程中狂按
F2
进入BIOS
,然后选择从U盘
中加载系统,而非从硬盘中加载系统步骤4: 重新开机,系统即可从
ikuai(硬盘)
切换到OpenWRT(U盘)
步骤5: 修改
/etc/config/network
把 LAN 口的网段从192.168.1.1/24
改为192.168.2.1/24
,因为我家光猫通过PPPOE
拨号获取公网IP,它的LAN口
网段就是192.168.1.1/24
,怕到时客户端通过DHCP
服务器获取IP
时产生IP冲突导致客户端断网,所以修改软路由LAN口
的网段步骤6: 修改完成后执行
/etc/inid.d/network reload
重启网络即可,然后可以在Windows CMD Terminal
通过ipconfig
看到电脑已经分配了192.168.2.0/24
网段中的一个IP
刷成官方最新的 23.05
版本如下图所示
3 Pass Wall Configuration
软路由集成了很多插件如 V2ray Xray OpenClash HomeProxy PassWall ...
,这里以配置 OpenClash
为例
步骤1: 在管理界面更新
opkg
索引步骤2: 搜索
OpenClash
并安装openclash
客户端- 步骤3: 在客户端界面安装
clash
内核 - 步骤4: 导入自建的
vmess
节点 - 步骤5: 启动OpenClash,查看是否启动正常,启动成功后可通过
http://192.168.2.1:9090
访问OpenClash
的DashBoard
查看相关配置 步骤6: 由于
PW-550
没有WIFI功能
,所以将网线从PW-550 LAN 口
接到Xiaomi Router 4C WAN 口
,登录小米路由器的管理界面
或者terminal
,配置WIFI功能并将小米路由器的LAN口网段改为192.168.3.1/24
- 步骤7: 将电脑连接至小米路由器的WIFI,通过 ipconfig 查看分配的IP是否为
192.168.3.1/24
步骤8: 关闭电脑的所有代理工具,测试只通过连接小米路由器的WIFI是否能科学上网
最终网络拓扑如下
- 1 运营商 -> 光猫 WAN口 (光猫PPPOE拨号获取WAN口IP,光猫LAN口网段为 192.168.1.1/24)
- 2 光猫 LAN口 -> PW-550 软路由 WAN口 (PW-550 WAN口为192.168.1.1/24,LAN口为192.168.2.1/24)
- 3 软路由 LAN口 -> 小米Router 4C WAN 口 (Xiaomi Router WAN口为192.168.2.1/24,LAN口为192.168.3.1/24)
- 4 小米Router 4C WIFI -> 电脑等其他客户端 (电脑等其他所有连接该WIFI后通过DHCP获取的IP为192.168.3.1/24)
踩坑如下
1: OpenClash
内核安装失败,可以通过覆写设置
不断切换 Github CDN
来下载,或者手动下载再通过ftp、scp
等工具上传到软路由系统的对应目录
2: 安装 ttyd terminal
后在UI
中看不到,可以在 ssh客户端如xshell
连接上去看 ttyd
服务是否有在监听 7681
端口,可以通过 /etc/init.d/ttyd reload
重启服务,或者通过 192.168.2.1:7681
直接访问尝试
4 Summary查看最终网络拓扑可以发现客户端网络到运营商至少包括了3层NAT,甚至运营商大内网可能还有几层NAT,所以还有很多可以优化的地方,不过目前至少是把整个流程跑通了,对整个家庭网络拓扑有了清晰的概念,在此非常感谢 GFW
PS: 非常感谢不良林提供的指引