kob / N1

13 stars 3 forks source link

N1-基于docker运行lede做旁路由(自编译镜像) #3

Open kob opened 5 years ago

kob commented 5 years ago

1、编译固件 具体方法不需多说,注意以下两点 Target System (QEMU ARM Virtual Machine) , Subtarget (ARMv8 multiplatform) image Target Images 勾选tar.gz image

编译完成之后,取用openwrt-armvirt-64-default-rootfs.tar.gz这个文件

这里有我自己编译的镜像 (https://github.com/kob/N1/releases/download/openwrt/openwrt-armvirt-64-default-rootfs.tar.gz)

2、ssh登陆N1,打开网卡的混杂模式 ip link set eth0 promisc on 创建一个虚拟接口macnet

docker network create -d macvlan \
    --subnet=172.16.16.0/24 --gateway=172.16.16.1 \
    --ipv6 --subnet=fe82::/16 --gateway=fe82::1 \
    -o parent=eth0 \
    -o macvlan_mode=bridge \
    dMACvLAN

3、导入dockerr镜像 先将前面编译的openwrt-armvirt-64-default-rootfs.tar.gz文件上传到N1的某个目录,如tmp docker import /tmp/openwrt-armvirt-64-default-rootfs.tar.gz openwrt-armvirt-64 (导入本地镜像并命名为openwrt-armvirt-64) 4、生成容器运行

docker run -d \
    --restart unless-stopped \
    --network dMACvLAN \
    --privileged \
    --name openwrt \
    openwrt-armvirt-64 \
    /sbin/init

5、进入容器openwrt docker exec -it openwrt /bin/sh 6、修改网络配置 vi /etc/config/network 修改lan接口的ip地址,因为是旁路模式,自己将192.168.1.1修改为局域网内一ip地址即可 重启网络 /etc/init.d/network restart 7、打开openwrt 的web配置界面(http://刚才配置的IP) 8.将echo "$(sed 's/127.0.0.11/127.0.0.1/g' /etc/resolv.conf)" > /etc/resolv.conf加入开机启动 9、电脑使用N1的openwrt网关 将电脑的ip地址的网关改为前面配置的IP地址 10.宿主机跟旁路不通的问题 解决方案是修改/etc/network/interfaces文件:(谨慎操作,可能导致armbian永远无网络)

auto eth0
iface eth0 inet manual
up ip link set eth0 promisc on
auto macvlan
iface macvlan inet static
   address 192.168.12.104→修改成你需要的
   netmask 255.255.255.0
   gateway 192.168.12.1→需改成你的主路由ip或192.168.12.5(旁路由的ip)
   dns-nameservers 192.168.12.1→需改成你的主路由ip或12.5或再加1个公共dns比如114
   pre-up ip link add macvlan link eth0 type macvlan mode bridge
   post-down ip link del macvlan link eth0 type macvlan mode bridge

改完后重启网络systemctl restart networking或者重启系统查看效果

Mircc commented 4 years ago

1、编译固件 具体方法不需多说,注意以下两点 Target System (QEMU ARM Virtual Machine) , Subtarget (ARMv8 multiplatform) image Target Images 勾选tar.gz image

编译完成之后,取用openwrt-armvirt-64-default-rootfs.tar.gz这个文件

这里有我自己编译的镜像 (https://github.com/kob/N1/releases/download/openwrt/openwrt-armvirt-64-default-rootfs.tar.gz)

2、ssh登陆N1,打开网卡的混杂模式 ip link set eth0 promisc on 创建一个虚拟接口macnet

docker network create -d macvlan \
    --subnet=172.16.16.0/24 --gateway=172.16.16.1 \
    --ipv6 --subnet=fe82::/16 --gateway=fe82::1 \
    -o parent=eth0 \
    -o macvlan_mode=bridge \
    dMACvLAN

3、导入dockerr镜像 先将前面编译的openwrt-armvirt-64-default-rootfs.tar.gz文件上传到N1的某个目录,如tmp docker import /tmp/openwrt-armvirt-64-default-rootfs.tar.gz openwrt-armvirt-64 (导入本地镜像并命名为openwrt-armvirt-64) 4、生成容器运行

docker run -d \
    --restart unless-stopped \
    --network dMACvLAN \
    --privileged \
    --name openwrt \
    openwrt-armvirt-64 \
    /sbin/init

5、进入容器openwrt docker exec -it openwrt /bin/sh 6、修改网络配置 vi /etc/config/network 修改lan接口的ip地址,因为是旁路模式,自己将192.168.1.1修改为局域网内一ip地址即可 重启网络 /etc/init.d/network restart 7、打开openwrt 的web配置界面(http://刚才配置的IP) 8.将echo "$(sed 's/127.0.0.11/127.0.0.1/g' /etc/resolv.conf)" > /etc/resolv.conf加入开机启动 9、电脑使用N1的openwrt网关 将电脑的ip地址的网关改为前面配置的IP地址 10.宿主机跟旁路不通的问题 解决方案是修改/etc/network/interfaces文件:(谨慎操作,可能导致armbian永远无网络)

auto eth0
iface eth0 inet manual
up ip link set eth0 promisc on
auto macvlan
iface macvlan inet static
   address 192.168.12.104→修改成你需要的
   netmask 255.255.255.0
   gateway 192.168.12.1→需改成你的主路由ip或192.168.12.5(旁路由的ip)
   dns-nameservers 192.168.12.1→需改成你的主路由ip或12.5或再加1个公共dns比如114
   pre-up ip link add macvlan link eth0 type macvlan mode bridge
   post-down ip link del macvlan link eth0 type macvlan mode bridge

改完后重启网络systemctl restart networking或者重启系统查看效果

我试试 你的方法,感谢图文分享