一、介绍OpenWrt
OpenWrt 是一个 Linux 操作系统,主要用于嵌入式设备如路由器、交换机等网络设备上。通过 OpenWrt,您可以将路由器升级为更强大、更灵活的设备,并添加额外的功能。
下面是一些关于 OpenWrt 路由器的常见问题和回答:
二、旁路网关
旁路网关通常是指在企业或组织内部网络中,为了实现网络流量监测、控制和管理等需要而引入的一种特殊网络部署模式。
在旁路网关模式下,部署了一个额外的设备(旁路网关)来截取网络流量,把流量经过预先配置的过滤和处理操作后再转发到内部网络,从而达到监测流量、防止网络攻击、优化网络性能等目的。
旁路网关通常被应用于以下场景:
旁路网关通常具有高可用性和高性能的特点,采用冗余和负载均衡技术来保证网络连续性和可靠性。但是,与传统网关相比,旁路网关需要更多的配置和维护工作,对网络管理员的技术水平要求较高。
总之,旁路网关是一种特殊的网络部署模式,提供了一系列网络管理、监测和控制功能,可以帮助组织实现更高的网络安全性、性能和合规性。
三、具体步骤
这是一个创建 Docker 网络的命令,使用了 macvlan 驱动程序来实现将容器连接到宿主机网络的效果。该命令的具体含义如下:
- docker network create:创建 Docker 网络。
- -d macvlan:指定使用 macvlan 驱动程序,可以让容器拥有和宿主机相同的 MAC 地址。
- –subnet=192.168.0.123/24:指定子网地址,该命令将创建一个名为“mymacnet”的网络,其 IP 地址范围为 192.168.0.123/24。
- –gateway=192.168.0.1:设置网关地址,该命令将设置网络的默认网关为 192.168.0.1。
- -o parent=eth0:指定宿主机上的物理接口(即 parent 接口),该命令将使用名为 eth0 的接口连接到宿主机网络中。
- mymacnet:指定要创建的网络的名称。
总之,上述命令创建了一个名为“mymacnet”的 Docker 网络,使得该网络内的容器可以通过指定的网关访问宿主机网络,并且可以使用与宿主机相同的 MAC 地址,从而更方便地进行网络通信和管理。需要注意的是,使用 macvlan 驱动程序时,容器和宿主机之间需要处于同一子网内。
查看docker 网络 docker network ls
pi@raspberrypi:~ $ docker network ls NETWORK ID NAME DRIVER SCOPE bab99c0c4c2d aliyun-driver_default bridge local 6cf1b9e9542c bitwarden_default bridge local 66ebb324836a bridge bridge local dbacc8ad17fe host host local 8546bc867a7c mymacvlan macvlan local f6a4c2fd3b97 none null local 876a79d48a92 vaultwarden_default bridge local 4abf0b6b2cf9 webdav_default bridge local
docker images
查看本地镜像
pi@raspberrypi:~ $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE unifreq/openwrt-aarch64 latest c4d047e9d49a 15 months ago 301MB
这段命令使用 Docker 运行一个名为 “openwrt” 的容器,具体内容如下:
--restart always
:指定 Docker 在自动重启容器时使用 “always” 参数,即容器退出时总是重新启动。--name openwrt
:为容器指定名称 “openwrt”,以便于管理和操作。-d
:在后台运行容器。-v /home/pi/soft/openwrt/network:/etc/config/network
:将宿主机上的 /home/pi/soft/openwrt/network 目录挂载到容器中的 /etc/config/network 目录,用于配置 OpenWrt 网络参数。--cap-add NET_ADMIN
:授予容器管理员网络监控和控制权限。--device /dev/net/tun
:授权容器使用 /dev/net/tun 设备,用于支持虚拟私有网络 (VPN)。-p 192.168.0.6:80:80/tcp -p 192.168.0.6:443:443/tcp -p 192.168.0.6:22:22/tcp
:将容器中的端口映射到宿主机上,使得从外部可以访问这些端口。例如,将容器中的 80 端口映射到宿主机的 192.168.0.6:80 端口。-e TZ=Asia/Shanghai
:设置容器时区为 “Asia/Shanghai”。--network mymacvlan
:将容器连接到一个自定义的 MACVLAN 网络,以实现容器和宿主机之间的通信。unifreq/openwrt-aarch64:latest
:使用指定的Docker镜像创建容器。/sbin/init
:用于启动容器。
这个命令的作用是在 Docker 中运行一个 OpenWrt 容器,并对容器进行配置和设置,使其支持网络、VPN、Web 服务和 SSH 连接等功能。
network 配置
进行编写OpenWrt 的网络配置文件:vim /etc/config/network
更改 Lan 口设置
- 改三处:option ipaddr、option netmask、option dns,填写**路由器**的IP地址
浏览器中输入http://192.168.0.6
,此IP是在容器内设置的,即option ipaddr ‘192.168.0.6’,就可以看到Openwrt的管理界面。
- 用户名: root
- 密码: password
SSH 连接openwrt容器
- IP: 192.168.0.6
- 端口:22
- 用户名: root
- 密码: password
连接后显示
如果想要局域网内所有的设备走树莓派这个网关,那么在路由器内设置:DHCP中的网关和DNS->刚刚容器内的IP地址。
不想路由器下所有设备走openwrt,就不设置。那就单个设备指定网关
1)Windows平台:
设置→网络和Internet→状态→更改适配器选项→”选择网络适配器WLAN”→属性→Internet协议 TCP/IPv4(设置手动IP地址、DNS服务器地址)
2)安卓
WLAN→IP设置(DHCP) 改 ”静态“ →DNS1、DNS2 改 容器内设置的IP
四、科学上网
从机场获取订阅链接扔到Openwrt中的插件shadowsocksR-plus中
五、停电后docker容器异常
前提:容器正常启动,无法访问openwrt Web端,同时无法进入SSH
使用命令
docker ps -a
查询openwrt容器ID305a3e652e6701b41
查看容器日志
根据 Docker 容器的日志信息,当前容器似乎出现了一些异常情况,导致在启动时出现了与输入设备相关的问题,并且需要通过按下“f”键和“1-4”键进行故障排除操作。
针对这种情况,建议您按照以下几个步骤进行操作:
注:出现 Press the [f] key and hit [enter] to enter failsafe mode 的提示,可能是由于 Docker 容器镜像不完善或者配置文件不正确等原因导致容器启动异常。如果该容器有其他日志信息,可以根据日志信息定位到具体原因并尝试解决。
通过
sudo systemctl status docker
查看openwrt容器状态
这是 Docker 容器的一段日志信息,提供了以下几个关键信息:
根据这些信息推测出可能的原因是 Docker 容器无法正常退出。可以尝试通过以下操作来解决问题:
其中关于网卡**macvlan**日志
根据 Docker 守护进程(dockerd)的日志信息,当前系统运行的 Docker 使用了 macvlan 网络驱动并且出现了警告信息,提示该网络驱动不支持端口映射和端口暴露等功能。
macvlan 是一种网络虚拟化技术,可以让容器直接使用物理网络接口(NIC),因此具有很好的性能和可靠性。然而,由于这种技术的局限性,macvlan 不支持与主机或其他容器之间的端口映射和暴露等通信方式,这就是上述日志中出现的警告信息原因。
如果您需要在 Docker 中使用端口映射和暴露等通信方式,建议使用其他的网络驱动,例如 bridge 驱动或者 overlay 驱动等。
您可以通过以下命令查看当前 Docker 网络驱动的类型:
复制代码
$ docker network ls
若您正在使用的是 macvlan 网络驱动,可以通过以下命令来切换到其他网络驱动:
复制代码
$ docker network create --driver <network-driver> <network-name>
其中,”network-driver“ 可以设置为 bridge、overlay 或者其他支持端口映射和暴露的网络驱动名称,”network-name“ 为自定义的网络名称。切换网络驱动后,您需要重新启动相关的容器才能生效。
注:更改 Docker 网络驱动可能会影响容器的网络访问和通信,并且会涉及到网络配置和路由等方面的问题,请谨慎操作。
最后解决办法:重新构建openwrt容器,警告:在容器内部配置的信息全部消失!
创建日期: April 8, 2023 18:17:29
最后更新: April 11, 2023 21:02:47
原文链接:https://121rh.com/pc/raspberry/openwrt/