最近对自己的路由器进行了一波小升级,这里记录一下过程。方便以后查询。
编译固件
编译固件一般会编译L大的OpenWrt,这里是Github地址。(注:固件也可以直接去恩山上下)
由于编译时要用到Ubuntu,又不想乱动电脑上Ubuntu的环境。所以这里可以使用Github Actions来编译固件。
首先先将云编译的 项目 Fork一份到自己的仓库里。然后在线编辑
.config
文件,将所需要编译的东西给复制进去。这里配置文件生成,可以通过 这个网址 去生成,这里的WIFI驱动有开源驱动和闭源驱动两种,一般来说选开源驱动会好一点。但是我的新三d2好像用开源驱动编译会失败,所以注意至少如果是新三最好选闭源驱动。
如果需要打包一些原仓库没有的插件,如 大杯饮料,可以在
diy-part1.sh
文件中添加相应的仓库地址,如示例里的:1
2echo 'src-git helloworld https://github.com/fw876/helloworld' >>feeds.conf.default
echo 'src-git passwall https://github.com/xiaorouji/openwrt-passwall' >>feeds.conf.default然后点击
Actions
->Build OpenWrt
->Run workflow
->Run workflow
就可以编译了。编译过程大概要2个小时左右。
离线安装插件
离线安装插件可以通过内置的
opkg install *.ipk
来进行安装,这个需要登录ssh(账号和密码是路由器的登录账号和密码),命令基本类似Ubuntu的apt
命令。然后添加软件源,路径为:
/etc/opkg.conf
,一般来说有内置软件源的(注意CPU架构)。比如这个:1
2
3
4
5
6
7
8src/gz openwrt_core https://mirrors.cloud.tencent.com/lede/snapshots/targets/ramips/mt7621/packages
src/gz openwrt_base https://mirrors.cloud.tencent.com/lede/snapshots/packages/mipsel_24kc/base
src/gz openwrt_helloworld https://mirrors.cloud.tencent.com/lede/snapshots/packages/mipsel_24kc/helloworld
src/gz openwrt_luci https://mirrors.cloud.tencent.com/lede/releases/18.06.9/packages/mipsel_24kc/luci
src/gz openwrt_packages https://mirrors.cloud.tencent.com/lede/snapshots/packages/mipsel_24kc/packages
src/gz openwrt_passwall https://mirrors.cloud.tencent.com/lede/snapshots/packages/mipsel_24kc/passwall
src/gz openwrt_routing https://mirrors.cloud.tencent.com/lede/snapshots/packages/mipsel_24kc/routing
src/gz openwrt_telephony https://mirrors.cloud.tencent.com/lede/snapshots/packages/mipsel_24kc/telephony这里有个问题是,软件源里面的软件可能不全,比如 大杯饮料 的大部分插件,直接
opkg
安装都找不到。这个可以去 三方网站 去找对应架构对应的插件。如果只是需要 大杯饮料 的话,可以去直接去下载 这个博主 编译的整合包。下载过后,将这些插件上传道路由器,然后通过
opkg
命令安装即可。
配置Zerotier
- 这里我装了个
Zerotier
插件来进行内网穿透。
插件安装
安装核心插件:
1
2opkg update
opkg install zerotier安装可视化包:下载地址
1
opkg install luci-app-zerotier_*.ipk
Zerotier网页配置
进入Zerotier官网,点Create A Network,然后进去,记录下
Network ID
然后勾选下面
IPv4 Auto-Assign
中的Auto-Assign from Range
并且选择一个网段。这样每次新加入的设备都会根据你设置的网段自动分配一个虚拟IP。然后去 官网下载 APP,通过记录的
Network ID
来加入这个虚拟网络。新加入的设备会在下面显示,勾选
Auth
来授权该设备(路由器加入后也要授权)。
路由器配置
进入路由器的配置页面:
http://路由器IP/cgi-bin/luci/admin/vpn/zerotier
。输入刚才的Network ID
。并且勾选运行。点击:
网络
->接口
->添加新接口
,添加一个ZeroTier用的接口。名称随意,推荐直接使用zerotier,方便明了。然后包括以下接口勾选图中那个,名称不一样,但是都是zt开头的。并且记录下来。
创建好后,进入接口,配置防火墙:
然后点击:
网络
->防火墙
->常规设置
->添加
,还是名称随意,方便记忆使用zerotier。然后点击:
网络
->防火墙
->自定义规则
,将下面代码复制进去,记得将:ztfp6gdrla
换成自己刚才指定的那个。1
2
3iptables -I FORWARD -i ztfp6gdrla -j ACCEPT
iptables -I FORWARD -o ztfp6gdrla -j ACCEPT
iptables -t nat -I POSTROUTING -o ztfp6gdrla -j MASQUERADE
使用
进入路由器SSH,输入:
zerotier-cli listnetworks
,看到以下内容就证明可以了。1
2
3root@OpenWrt:~# zerotier-cli listnetworks
200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>
200 listnetworks NetWorkID 路由器 路由器MAC OK PRIVATE ztfp6gdrla 192.168.194.1/24使用就比较简单了,这时候路由器下的所有设备可以直接访问Zerotier同一个虚拟网段下其他注册的主机。其他主机在使用Zerotier的客户端加入虚拟网络后,也能ping通路由器的设备。
这时候可以用来搞NAS远程访问啥的。