找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 16469|回复: 104

回馈论坛!整理发布docker openwrt ipv6/ipv4,自由DIY任意镜像-多次测试成功

 火.. [复制链接]
本帖最后由 谢春林 于 2021-1-25 21:07 编辑

缘起:本人设备为贝壳云P1,刷了小钢炮,稳定运行。最近开始接触旁路由,小白一枚,从论坛搜索各种docker和固件相关的帖子进行实验。
遇到的问题:
1.固件新老不一;
2.教程很多,但在如何实现v4 v6双栈这个问题上,总是失败;
3.启发来自:thread-4050223-1-1.html,感谢这位大大!

目前从各个教程来整,终于成功。不甚明白原理,但还是能成功!现在整理出来给大家共享!

一:宿主机篇(也就是小钢炮本身的修改):

1.创建macnet
我的路由是192.168.2.1,请根据自己的情况修改,IPv6默认是内网地址,不用动;
命令行创建macvlan
docker network create -d macvlan --subnet=192.168.2.0/24 --gateway=192.168.2.1 --subnet=fe80::/16 --gateway=fe80::1 -o parent=eth0 macnet


2. 修改/etc/network/interfaces,主要是添加标红部分,命令是:vi /etc/network/interfaces,按i,用键盘箭头移动光标进行修改,然后esc,输入:wq,保存和退出


# interface file auto-generated by buildroot
#iface eth0 inet dhcp
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto macvlan
iface macvlan inet static
  address 192.168.2.2
  netmask 255.255.255.0
  gateway 192.168.2.120
  dns-nameservers 192.168.2.1
  pre-up ip link add macvlan link eth0 type macvlan mode bridge
  post-down ip link del macvlan link eth0 type macvlan mode bridge


3.编辑/etc/rc.local
命令行:vi /etc/rc.local
i,用键盘箭头移动光标进行修改,然后esc,输入:wq,保存和退出
在exit 0 前面,加入下面的代码:

modprobe
modprobe pppoe
modprobe udp_tunnel
modprobe ip6_udp_tunnel
modprobe ip6table_nat
modprobe tun



重启一下,宿主机修改完成。

二、openwrt篇

1.拉取镜像和创建container

(1)建议的镜像:hub里的,buddyfly/openwrt-aarch64,fbrav/openwrt-aarch64,hibuddies/openwrt-aarch64744287383/linux-arm64-ttnode,等,或者在论坛自己找吧,感谢各位大佬的无私分享。
命令行举例:docker pull buddyfly/openwrt-aarch64:latest



(2)对于精简原版的,建议用这位大佬的/thread-4050116-1-1.html,但很多服务插件得自己装,优点是,自己想怎么来怎么来!
应用举例:首先下在tar.gz包,放在root目录下,不用解包,但包内也不能是img文件(如果是这个,得先解压提取,然后压缩成tar)
docker import openwrt-armvirt-64-default-rootfs.tar.gz openwrt-armvirt-64,后面的是import后的image名称

(3)创建container (可先用docker images,查看确认具体的image名称)
命令行:docker run --name openwrt --restart always -d --network macnet --privileged openwrt-armvirt-64 /sbin/init

2.修改docker里的openwrt这部分设置了回复可见,主要是op里面的一些设置。
(1)命令行进入到container里,docker exec -it openwrt /bin/sh

(2)修改IP、dns、gateway等信息;
命令行: vi /etc/config/network  i,用键盘箭头移动光标进行修改,然后esc,输入:wq,保存和退出

修改:
config interface 'lan'
        option type 'bridge'
        option ifname 'eth0'
        option proto 'static'
        option ipaddr '192.168.2.120'
        option gateway '192.168.2.1'
        option dns '192.168.2.1'
        option netmask '255.255.255.0'
        option ip6assign '60'

添加:(这部分是用docker拨号的,如果不增加,应该也问题不大)
config interface 'wan'
        option proto 'pppoe'
        option username '123456'
        option password '123456'
        option keepalive '0'
        option ifname 'wan_mac0'
        option ipv6 'auto'


(3)修改/etc/sysctl.conf
命令行:vi /etc/sysctl.conf i,用键盘箭头移动光标进行修改,然后esc,输入:wq,保存和退出
添加下面的内容,这里是获取ipv6的关键

# Defaults are configured in /etc/sysctl.d/* and can be customized in this file
net.ipv6.conf.all.disable_ipv6=0
net.ipv6.conf.default.disable_ipv6=0
net.ipv6.conf.default.accept_ra=2
net.ipv6.conf.all.accept_ra=2


(4)修改/etc/rc.local
命令行:vi /etc/rc.local i,用键盘箭头移动光标进行修改,然后esc,输入:wq,保存和退出
添加以下内容到 exit 0前面

ip link set eth0 promisc on
ip link add link eth0 wan_mac0 type macvlan
ip link set wan_mac0 address 02:42:00:11:7C:01
ip link set wan_mac0 up


(5)openwrt重启reboot ,在浏览器输入 192.168.2.120,就可以进到管理界面了,也可以用winscp,直接IP用户密码登录了。如果是用来做旁路由,请去lan-关闭DHCP(忽略接口),IPv6的路由也全改为禁用,其他的,自己折腾吧,说不了那么多了

(6)修改IPtable(这部分,建议先不修改,因为我的并没有影响,如果出现不能上网,在去openwrt防火墙添加规则)

iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

也可以尝试(有桥接存在的情况下)
iptables -t nat -I POSTROUTING -o  br-lan  -j MASQUERADE

如果是PPPoE拨号的
iptables -t nat -I POSTROUTING -o pppoe-wan -j MASQUERADE

如果使用usb网卡需要在防火墙里添加如果是自动获取ip的
iptables -t nat -I POSTROUTING -o eth1 -j MASQUERADE

三、主路由的修改

作为旁路由:
dhcp里的网关改为:192.168.2.120
dns服务器:改为:192.168.2.120(建议先在openwrt设置号adg或者dnsmasq之类的),其他上网啊,去广告啊,都先搞好。
电脑网卡禁用,然后重开获取dhcp。
至此,ipv6,ipv4都能获取到了,zerotier也可以有ipv6 了



作为主路由拨号:没玩过,自己尝试

稍晚点上传个镜像备份共享给大家。

这个帖子是一个小白专了好几天晚上,一点点折腾捣鼓出来的,测试了好几个固件,包括原版,包括一些原本没法获取v6的,也包括一些镜像的导入,都已经成功,应该说是ipv6的有效解决方案。
这也是整理和汇总了多个大大的经验分享,还有结合自己的一点点微弱的知识,觉得好的,赏个币吧,向大家讨个饭,小白缺币,感谢大家的支持。ps:某些看不起小白的就算了……也不求你回复……毕竟,谁都有小白的时候。我注册恩山很多年了
(原本,想设置主题售价1个币的,算了,改成求赏吧)




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 5恩山币 +5 收起 理由
爱抢沙*** + 1 修改/etc/sysctl.conf配置亲测有用,zeroti.
ljch*** + 1 强大的恩山!(以下重复1万次)
euk*** + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
xr*** + 1 恩山全体路由党向你学习!
robi*** + 1 做人要低调,拿去买糖吃吧!

查看全部评分

啥东东    还要付币的
回复

使用道具 举报

啥东东    还要付币的
回复

使用道具 举报

感谢分享!!
回复

使用道具 举报

看看效果,不知道怎么部署
回复

使用道具 举报

感谢分享!!
回复

使用道具 举报

来自手机 | 显示全部楼层
好东西啊!谢谢!
回复

使用道具 举报

感谢楼主分享
回复

使用道具 举报

谢谢分享了
回复

使用道具 举报

docker run --restart always -d --network macnet --privileged buddyfly/openwrt-aarch64:latest
回复

使用道具 举报

做人要低调,拿去买糖吃吧!
回复

使用道具 举报

不知道怎么部署
回复

使用道具 举报

感谢分享!!
回复

使用道具 举报

感谢分享!!
回复

使用道具 举报

思考一下,感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-23 23:42

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表