前言
N1的性能比较强,这里可以在N1上运行一个openwrt来方便的进行科学上网。
开始
准备
首先要在N1中运行armbian并且安装docker:
curl -fsSL https://get.docker.com | bash
关于N1的刷机可以参考:斐讯N1刷机并配置SMB
完成了docker的安装我们就可以进行下一步了。
运行openwrt
先将openwrt的docker镜像导入到本地
docker pull unifreq/openwrt-aarch64:r9.10.24
打开网卡的混杂模式
ip link set eth0 promisc on
接着给docker创建网络,这里按照的192.168.2.1是主路由的IP,根据实际情况修改
docker network create -d macvlan --subnet=192.168.2.0/24 --gateway=192.168.2.1 -o parent=eth0 macnet
运行openwrt
docker run --name op2 --restart always -d --network macnet --privileged unifreq/openwrt-aarch64:r9.10.24 /sbin/init
修改docker内网络设置
docker exec -it op2 /bin/bash
此处可能会出现错误,那么改用
docker exec -it op2 sh
要注意,执行完上面的命令后,我们这里就已经进入了docker的容器内,此时修改的是openwrt的设置了
修改网络设置vi /etc/config/network
输入i
开始编辑,编辑完成之后按ESC
退出编辑,然后输入:wq
(不要忘记冒号)回车保存。这里要确保设置的IP和主路由的IP在同一个网段内。
现在退回到bash-4.4#这个界面了,这里输入exit
退出容器回到n1的armbian终端。
重启openwrt容器使得设置生效
docker restart op2
注意:armbian存在bug(这个问题在armbian的最新版本已经修复了),docker重启时会使得N1设备也重启,想要解决这个问题请参考:https://www.right.com.cn/forum/thread-958173-1-1.html的451楼的示例代码。
重启完成之后,就可以访问docker内的openwrt了,IP为你在容器内设置的IP,例如192.168.2.2
,用户名为:root
,密码为:password
。
进入管理后台之后打开网络→接口
修改LAN接口的参数,将网关地址设置为主路由的IP。
如果你需要使用N1自动管理DHCP,则在主路由的网络-接口中关闭DHCP
重启电脑后,在电脑中运行
ipconfig
查看默认网关是否已经修改成了N1的openwrt的IP,如果是,那么就成功了。
但是这样设置下的N1如果出现了故障,那么整个局域网可能都会出现网络故障。另外一种方案则是使用主路进行DHCP管理,在需要特殊功能的设备上手动设置网关,打开主路由的DHCP设置,并且关闭N1内的DHCP。
windows打开网络和Internet设置→更改适配器选项,选择正在使用的网卡(网线一般为以太网,WiFi为WLAN)→右键属性→Internet协议版本4
防火墙设置:
在N1
的openwrt的管理后台,打开网络→防火墙→自定义规则
,添加
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
重启防火墙即可,自此n1内使用docker运行openwrt设置完成。
补充
有的时候IPV6会出现问题(科学上网的gfw模式不生效等),可以尝试将主/旁路由的IPV6都禁用来解决。
参考资料:
斐讯N1小钢炮固件docker安装最新版openwrt实现旁路由伪软路
N1刷电视盒子&主旁路由&小钢炮教程
N1及贝壳云Armbian 5.98(加强版), 内核5.3.x, 及 Docker Openwrt
请问下添加的这句防火墙的意义在哪里
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
不添加的话我也一直可以用
有的时候连接会出现断续,这个可能能解决该问题
请问如果我使用主路由管理DHCP,armbian中的openwrt开启科学上网功能,如何使得armbian也能科学上网呢?网上找了一圈也没搞定。 谢谢[undefined]
请问在使用主路由管理DHCP,armbian中openwrt开启科学上网的情况下,如何使得armbian也能科学上网?
我采用的方法是proxychains4代理。