学习笔记:为Debian10的docker配置 macvlan网络并安装openwrt作为旁路由
1.通过ssh连接我们的服务器这里默认你的系统已经安装好了docker,如果没有安装请搜索其他教程先安装好2.查看网卡名称使用 nmcli命令查看你的网卡名称root@debian:~# nmclienp2s0: connected to Wired connection 2...inet4 192.168.1.6/24route4 192.168.1.0/24...我这里的网卡名是 enp2s0
1.通过ssh连接我们的服务器
这里默认你的系统已经安装好了docker,如果没有安装请搜索其他教程先安装好
2.查看网卡名称
使用 nmcli
命令查看你的网卡名称
root@debian:~# nmcli
enp2s0: connected to Wired connection 2
...
inet4 192.168.1.6/24
route4 192.168.1.0/24
...
我这里的网卡名是 enp2s0
,IP地址是192.168.1.6
,每个人的不一样,这里记住了后面会用到
3.开启网卡混杂模式
sudo ip link set eth0 promisc on
4.设置macvlan网络
注意这一步一定要根据自己的实际情况来,否则会设置失败
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=enp2s0 macnet
命令中的子网掩码 192.168.1.0/24
、网关 192.168.1.1
、网卡名称 enp2s0
要根据第一步中你的实际情况更改,其中gateway
的值是你路由器的IP,一般情况下为你主机所在网段的第一个也就是192.168.XXX.1
比如你第一步中查到的是192.168.22.3/24
跟eth0
这里就要设置成下面这样的代码
docker network create -d macvlan --subnet=192.168.22.0/24 --gateway=192.168.22.1 -o parent=eth0 macnet
设置完成后可以使用 docker network ls
命令查看,这里可以看到网络macnet
已建立成功
root@debian:~# docker network ls
NETWORK ID NAME DRIVER SCOPE
de29daef40a1 bridge bridge local
f961f2a52dd9 host host local
2cfd9f6843a7 macnet macvlan local
a8a1bb1e628d none null local
5.拉取openwrt镜像
这里使用的是Dock镜像仓库中的OpenWrt-Rpi-Docker这个镜像,大家有其他习惯的版本可以自行选择
由于我的是x86平台,所以我使用以下命令,每个人根据实际情况自行选择
docker pull sulinggg/openwrt:x86_64
镜像拉取成功后,我们可以执行docker images
命令查看现存镜像
root@debian:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
sulinggg/openwrt x86_64 5ce79834d1ba 2 days ago 460MB
6.创建并启动容器
docker run -d --restart always --name openwrt --network macnet --privileged sulinggg/openwrt:x86_64 /sbin/init
--restart always
参数表示容器退出时始终重启,使服务尽量保持始终可用
--name openwrt
参数定义了容器的名称
-d
参数定义使容器运行在 Daemon 模式
--network macnet
参数定义将容器加入 maxnet网络
--privileged
参数定义容器运行在特权模式下
sulinggg/openwrt:x86_64
为 Docker 镜像名
/sbin/init
定义容器启动后执行的命令
安装成功后使用命令查看安装情况
root@debian:~# docker run -d --restart always --name openwrt --network macnet --privileged sulinggg/openwrt:x86_64 /sbin/init
7be08241566d293f7ab8fd81e7ee4a2e47efdb77bd2288d3aa7e292f6941bd15
root@debian:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7be08241566d sulinggg/openwrt:x86_64 "/sbin/init" 32 seconds ago Up 31 seconds openwrt
status
显示UP
就表示安装并启动成功了
7.进行网络配置
须结合实际网络情况,不能照抄配置,否则前面的努力都白费了
使用命令进入docker 的bash模式
docker exec -it openwrt bash
其中:
openwrt
为容器名称;
bash
为进入容器后执行的命令
执行此命令后我们便进入 OpenWrt 的命令行界面
root@debian:~# docker exec -it openwrt bash
bash-5.1#
首先,我们需要编辑 OpenWrt 的网络配置文件
vim /etc/config/network
我们需要更改 Lan 口设置:
config interface 'lan'
option type 'bridge'
option ifname 'eth0'
option proto 'static'
option ipaddr '192.168.123.100'
option netmask '255.255.255.0'
option ip6assign '60'
option gateway '192.168.123.1'
option broadcast '192.168.123.255'
其中:
所有的 192.168.123.x
需要根据第一步中IP所处网段修改,option gateway
填写路由器的 IP,若第一步中获得的 IP 为 192.168.1.6
,路由器 IP 为192.168.1.1
,则需要这样修改:
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.8'
option gateway '192.168.1.1'
option dns '192.168.123.1'
注意这里的option proto
名字保持默认就行,不需要修改,我安装时因为改动了这里,重复了好几次才发现问题
8.重启网络更新配置
/etc/init.d/network restart
9.重置openwrt管理密码
passwd
根据提示输入两次密码即可
bash-5.1# passwd
Changing password for root
New password:
Retype password:
passwd: password for root changed by root
10.进入控制面板配置软路
在浏览器中输入第 7 步option ipaddr
项目中的 IP 进入控制面板,若option ipaddr
的参数为 192.168.1.8,则可以在浏览器输入 http://192.168.1.8进入控制面板。
好了,openwrt的安装就完成了,具体的关于作为旁路由要怎样配置,我会在后面的文章中详细介绍一下
参考资料
更多推荐
所有评论(0)