本帖最后由 hujinshengys 于 2025-3-13 15:11 编辑
本人NAS系统为:飞牛fnos,其他NAS如:群晖、绿联、极空间等均可参考设置
在docker中运行openwrt作主路由(wan口pppoe拨号、动态地址获取等)
前言:
虚拟机中跑openwrt存在性能损失,docker中使用openwrt性能损失较小,由于Docker容器共享宿主机的操作系统内核,因此资源利用率相对较高,容器可以直接访问宿主机的网络接口,并且可以非常高效地进行网络通信。建议通过docker使用openwrt作为主路由,参考:
Docker与虚拟机性能比较 - v魂之挽歌 - 博客园
Docker与虚拟机:性能比较
Docker 容器与虚拟机在网络性能方面的差异_docker与虚拟机性能比较-CSDN博客
——————————————part1 在docker中运行openwrt作主路由设置——————————————
准备工作:
请开启无线路由器AP的dhcp功能,默认网关设置为docker主路由地址,dns设置为主路由地址,nas主路由lan口通过交换机接无线路由器lan口,方便docker主路由更新、维护时连接nas。
ps:若由docker主路由开启dhcp功能,一旦主路由更新、维护,会导致无法连接nas,无法设置docker
获取超级用户(SU)权限:
输入用户密码,回车
查看网口情况:
输出以下内容:
- enp2s0: flags=4419<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- inet 192.168.1.4 netmask 255.255.255.0 broadcast 192.168.1.255
- ether xx:xx:xx:xx:xx:xx txqueuelen 1000 (Ethernet)
- RX packets 835394 bytes 1122074499 (1.0 GiB)
- RX errors 0 dropped 4720 overruns 0 frame 0
- TX packets 289472 bytes 85663961 (81.6 MiB)
- TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- device memory 0x80800000-808fffff
- enp3s0: flags=4419<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- inet 192.168.6.111 netmask 255.255.255.0 broadcast 192.168.6.255
- inet6 fe80::xxxx:xxxx:xxxx:xxxx prefixlen 64 scopeid 0x20<link>
- ether xx:xx:xx:xx:xx:xx txqueuelen 1000 (Ethernet)
- RX packets 216925 bytes 79441155 (75.7 MiB)
- RX errors 0 dropped 1754 overruns 0 frame 0
- TX packets 44369 bytes 6535667 (6.2 MiB)
- TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- device memory 0x80500000-805fffff
复制代码根据实际情况指定网口与wan和lan的对应关系,我这里指定enp2s0为wan,enp3s0为lan 开始设置飞牛中的网络环境,将相关命令通过服务的方式加入开机启动
进入openwrt内部修改网口设置
- # 进入openwrt镜像内部
- docker exec -it openwrt bash
- vim /etc/config/network
复制代码
修改 lan 口ip地址(option ipaddr)
- config interface 'lan'
- option type 'bridge'
- option ifname 'eth0'
- option proto 'static'
- option netmask '255.255.255.0'
- option ip6assign '60'
- option ipaddr '192.168.6.1'
复制代码- #重启openwrt网络
- /etc/init.d/network restart
复制代码 然后浏览器输入192.168.6.1即可进入 openwrt 的后台管理页面(用户名root,密码root,不同openwrt不同,根据自己选择的openwrt进行输入,一般来说密码为password或root)
参考
——————————————part2 自编译immortalwrt docker容器更新——————————————
请勿尝试通过docker管理界面镜像管理更新容器(将造成数据丢失恢复出厂设置),请务必使用脚本更新
++++++++++++++++++++++++不建议自行逐条输入ssh命令更新,将导致连接中断无法操作++++++++++++++++++++++++
新建并编辑一个脚本
- nano update_immortalwrt.sh
复制代码
复制并粘贴以下代码
请根据实际情况设置BACKUP_DIRBACKUP_DIR将作为备份文件储存目录
设置脚本权限
- chmod +x update_immortalwrt.sh
复制代码 通过nohup执行脚本,避免网络变化导致执行中断
- nohup ./update_immortalwrt.sh &
复制代码
——————————————part3 自编译immortalwrt docker固件分享——————————————
见我的固件发布帖子:
原生immortalwrt on x86 docker-软路由,x86系统,openwrt(x86),Router OS 等-恩山无线论坛
——————————————part4 ADGuradHome+Mosdns+OpenCla$h推荐设置——————————————
推荐按照xiaomqw大神这个帖子进行设置
【分享】【教程】主路由中AdGuardHome+MosDNS+Open克拉什折腾记录-OPENWRT专版-恩山无线论坛
——————————————part5 ipv6及防火墙设置——————————————
默认关闭局域网内ipv6分发和访问,需要开启请按下面链接的方式进行设置
OpenWrt 开启 IPv6 公网访问全指南 - 晨鹤部落格
|