设置网卡
查看网络
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$ ifconfig
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
inet6 fe80::42:88ff:fe1a:1fbd prefixlen 64 scopeid 0x20<link>
ether 02:42:88:1a:1f:bd txqueuelen 0 (以太网)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 62 bytes 9179 (9.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eno2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.105 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::27fb:f806:4a65:563a prefixlen 64 scopeid 0x20<link>
ether 00:e0:70:ef:34:01 txqueuelen 1000 (以太网)
RX packets 80469 bytes 114226692 (114.2 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 22903 bytes 2493642 (2.4 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19 memory 0x80a00000-80a20000
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (本地环回)
RX packets 712 bytes 81234 (81.2 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 712 bytes 81234 (81.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
我的机器的网卡是eno2
开启网卡混杂模式
1
ip link set eno2 promisc on
但是重启后N1会失效,永久设置
1
2
vim /etc/rc.local
ip link set eno2 promisc on
重启查看是否生效,首行出现 PROMISC
1
2
3
4
5
6
7
8
9
eno2: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 1500
inet 192.168.1.105 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::27fb:f806:4a65:563a prefixlen 64 scopeid 0x20<link>
ether 00:e0:70:ef:34:01 txqueuelen 1000 (以太网)
RX packets 132735 bytes 188186144 (188.1 MB)
RX errors 0 dropped 17 overruns 0 frame 0
TX packets 34291 bytes 4998536 (4.9 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19 memory 0x80a00000-80a20000
创建Docker虚拟网络
1
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eno2 macnet
eno2 为自己实际的网卡名,一般是eth0
macnet 为名称,macvlan 为模式,另外请将 192.168.1.0 修改为你自己主路由网段。
查看
1
docker network ls
docker部署
拉取镜像
1
2
docker pull unifreq/openwrt-aarch64 # ARM
docker pull sulinggg/openwrt:x86_64 # x86
启动
1
docker run --restart always -d --name=byls-openwrt --network macnet --privileged sulinggg/openwrt:x86_64 /sbin/init
配置容器网络
进入容器编辑网络配置
1
2
docker exec -it byls-openwrt bash
vi /etc/config/network
修改 lan 部分的配置:ipaddr gateway dns
1
2
3
4
5
6
7
8
9
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.1.11'
option gateway '192.168.1.1'
option dns '192.168.1.1'
配置宿主机和容器通讯
1
2
3
4
5
6
7
8
9
# 宿主机创建一个macvlan
sudo ip link add host2docker(一个网络名称) link eno2(你的物理网卡) type macvlan mode bridge
# 设置macvlan ip 并启用
sudo ip addr add 192.168.1.10 dev host2docker
ip link set host2docker up #启用新建网络
# 增加路由表
ip route add 目的ip(需要建立通讯的macvlan容器 ip) dev host2docker(上面宿主机建立的macvlan)
开启samba共享
需要ssh进入openwrt
1
ssh root@192.168.1.11
进入后给要共享的用户设计共享密码,比如要给root用户共享登陆权限
1
smbpasswd -a root
如果没有用户,需要先创建用户
1
2
3
4
5
6
# 没有自带useradd命令,也可以直接编辑 /etc/passwd 替代
opkg install shadow-common shadow-useradd
# 添加用户
useradd byls
# 设置共享密码
smbpasswd -a byls
开启webdav共享
只能共享一个文件夹
参考
https://www.kejiwanjia.com/jiaocheng/57242.html
https://blog.csdn.net/zhangjingzheng/article/details/120178257
https://blog.csdn.net/weixin_44907046/article/details/123144254
https://www.bilibili.com/video/av205462504/