共计 1364 个字符,预计需要花费 4 分钟才能阅读完成。
一直想玩软路由来着,由于暂时没有硬件可以刷 openwrt,所以想着 docker 搭建一个来玩玩。
安装
1 运行 ifconfig 命令查看网卡信息,例如 网络接口逻辑名称是 enp3s0
开启此网卡混杂模式。
混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包。默认情况下网卡只把发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。简单的讲,混杂模式就是指网卡能接受所有通过它的数据流,不管是什么格式,什么地址的。当网卡处于这种”混杂”方式时,该网卡具备”广播地址”,它对所有遇到的每一个数据帧都 产生一个硬件中断以便提醒操作系统处理流经该物理媒体上的每一个报文包。
ip link set enp3s0 promisc on
2 配置MACVLAN
docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1 -o parent=enp3s0 macnet
注: 192.168.0.0/24
和 192.168.0.1
自行调整。
3 查看docker网络
docker network ls
可以看见 macnet 网络。
4 创建网络配置文件
mkdir -p /home/docker/openwrt
vim /home/docker/openwrt/network
network 配置文件如下:
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option packet_steering '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.0.3'
option gateway '192.168.0.1'
option dns '192.168.0.1'
config interface 'vpn0'
option ifname 'tun0'
option proto 'none'
修改 ipaddr,gateway,dns 为需要的地址。
5 拉取镜像并初始化
docker run --restart always --name openwrt -d --network macnet --privileged --ip 192.168.0.3 -v /home/docker/openwrt/network:/etc/config/network nonnichen/nonniwrt /sbin/init
注: 替换 192.168.0.3
为 openwrt 的 IP。
如果提示 WARNING: IPv4 forwarding is disabled. Networking will not work
,需要进行开启 ipv4 转发。
vim /etc/sysctl.conf
#添加 net.ipv4.ip_forward = 1
sysctl -p /etc/sysctl.conf
浏览器登录已经配置的 IP 并完成配置,账号密码 root/password。
效果
提醒:本文发布于795天前,文中所关联的信息可能已发生改变,请知悉!
AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完