京东11.11大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

docker安装openwrt immortalwrt全过程

2024-11-4 04:40| 发布者: ae2942d9| 查看: 256| 评论: 0

摘要: 目录一:安装docker1.使用阿里镜像加速(从官网下载大概很慢)2.不使用阿里云加速,直接从官网下载二:配置网络1.开启网卡稠浊模式2.创建虚拟网络MACVLAN3.给openwrt配置网络(上一步是对宿主机举行的网络配置)三:
目录

openwrt因为提供的是路由器的功能,可以接受无法安装软件的switch的流量。

而且手机毗连wifi把网关改为openwrt后,科学上网时远比启动手机的软件方便

一:安装docker

1.使用阿里镜像加速(从官网下载大概很慢)

[code]curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun[/code]

下令详细表明:

​从"https://get.docker.com"下载一个脚本,通过bash下令执行该脚本,同时将docker作为参数通报给脚本,使用Aliyun作为镜像加速器​。

-fsSL:

  • [code]-f[/code]:如果服务器返回错误码,curl会立即制止利用。Fail silently。
  • [code]-s[/code]:静默模式,不表现进度条或错误信息。Silent mode.
  • [code]-S[/code]:表现错误信息。Show errors
  • [code]-L[/code]:自动重定向。Location.

使用[code]-fsSL[/code]选项可以以静默模式运行curl下令,在发生错误时制止利用,并支持自动跟随重定向。

这是一种常见的配置,用于在下载和执行脚本、获取长途文件等利用中提供更可靠和干净的执行情况

  • | bash:是用于执行脚本的下令,将curl下载的脚本通过管道通报给bash下令执行。
  • -s docker --mirror Aliyun:是bash下令的参数,这会将docker作为参数通报给脚本,同时使用Aliyun作为镜像加速器。

2.不使用阿里云加速,直接从官网下载

[code]curl -sSL https://get.daocloud.io/docker | sh[/code]

下令表明:

  • 从"https://get.daocloud.io/docker"下载一个脚本,将curl下载的脚本通过管道通报给sh下令执行。
  • bash和sh差异不大,大部分Linux体系中默认安装了bash,用sh可以保持兼容性

二:配置网络

1.开启网卡稠浊模式

(在该模式下,网卡会接收到经过它所毗连的网络上所有的数据包,而不但仅是目标MAC地点是自己的数据包,因此方便举行网络流量捕获和分析。)

输入ifconfig检察有局域网IP的是哪个网卡(如果只启用了一个网卡),然后开启稠浊模式

[code][root@192 ~]# ifconfig enp3s0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 1500 inet 192.168.50.109 netmask 255.255.255.0 broadcast 192.168.50.255 inet6 fe80::dc42:1f26:c32b:5bdf prefixlen 64 scopeid 0x20<link> ether 00:e0:4c:68:19:69 txqueuelen 1000 (Ethernet) RX packets 10019437 bytes 7646766799 (7.1 GiB) RX errors 0 dropped 10119 overruns 0 frame 0 TX packets 9294960 bytes 10802889814 (10.0 GiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 # 从上面可以看见我的网卡是enp3s0 [root@192 ~]# ip link set enp3s0 promisc on[/code]

2.创建虚拟网络MACVLAN

(macvlan是一种Linux内核网络虚拟化技能,它可以用于创建和管理虚拟网络接口。

它可以为每个虚拟机或容器创建一个与主机物理网卡绑定的虚拟网卡,并且每个虚拟机或容器都有自己的IP地点。

这使得虚拟机或容器可以或许直接和物理网络中的其他设备通讯,就像它们是直接毗连在物理网络上一样)

[code]docker network create -d macvlan --subnet=192.168.50.0/24 --gateway=192.168.50.1 -o parent=enp3s0 macnet[/code]

下令表明:

此下令使用Docker创建一个名为[code]macnet[/code]的macvlan网络。

  • [code]-d macvlan[/code]: 指定要创建的网络驱动为macvln。
  • [code]--subnet=192.168.50.0/24[/code]: 设置网络的子网,这里设置为192.168.50.0/24表现网络中的主机IP地点范围为192.168.50.1到192.168.50.254。192.168.50.0是网段,/24是指子网掩码为255.255.255.0。 我电脑的IP是192.168.50.193,所以/24前面写得是192.168.50.0
  • [code]--gateway=192.168.50.1[/code]: 设置网络的网关地点为192.168.50.1。因为我在浏览器里写192.168.50.1可以进入路由器(注意不是光猫!)的后台管理地点,所以192.168.50.1就是路由器的ip地点,设置网关为它就是说这个openwrt的网络和其他手机电脑什么的一样都是通过路由器访问互联网
  • [code]-o parent=enp3s0[/code]: 指定macvlan网络的父接口,也就是上级网络接口。在这里,[code]enp3s0[/code]是物理网卡的名称,它将成为macvlan网络的父接口。[code]-o[/code]是指定选项的标志,它表现将要通报额外的选项给[code]docker network create[/code]下令
  • [code]macnet[/code]: 设置macvlan网络的名称为[code]macnet[/code]

2.1创建好网络后,可以通过以下指令检察设置好的网络

[code][root@192 ~] docker network ls NETWORK ID NAME DRIVER SCOPE 6e1a0e16742d bridge bridge local 136b63f0da30 host host local 3b647a96f9dc macnet macvlan local #就是这个 b0265f7d9516 none null local[/code]

3.给openwrt配置网络(上一步是对宿主机举行的网络配置)

注:如果没有安装vim,请输入 sudo yum install vim 举行安装

[code]# 创建配置文件存放的目录 mkdir -p /home/docker/openwrt # 创建网络配置文件并编辑 vim /home/docker/openwrt/network[/code]

进入编辑界面后,ctrl+shfit+v粘贴如下配置文件,然后按要求修改

其中只有config interface 'lan'中的ipaddr,gateway和dns需要修改。

gateway自然和前面一样是路由器,dns也填路由器,ipaddr则是你希望openwrt使用的ip,如我如许设置后就在浏览器输入192.168.50.254进入openwrt后台

[code]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.50.254' option gateway '192.168.50.1' option dns '192.168.50.1' config interface 'vpn0' option ifname 'tun0' option proto 'none'[/code]

注:如果粘贴后发现格式不对,按以下步调利用:

  • 1.确保按下键盘,输出的是小写字母
  • 2. 打出英文的引号":"(也就是键盘上先按住shift再按一下分号,也就是字母L的右边谁人键)
  • 3.输入set paste(结合上一步,连起来左下角表现的是“:set paste”),然后回车
  • 4.按一下“i”(乐成的标志是左下角有insert或插入的提示符,后面跟着括号,括号里是“粘贴“)
  • 5.ctrl+shfit+v

三:拉取openwrt镜像并启动

[code]docker run --restart always --name openwrt -d --network macnet --privileged --ip 192.168.50.254 -v /home/docker/openwrt/network:/etc/config/network registry.cn-shanghai.aliyuncs.com/suling/openwrt:x86_64 /sbin/init[/code]

下令表明:

此下令会使用指定的OpenWrt镜像在后台运行一个容器,容器将毗连到名为[code]macnet[/code]的macvlan网络。

容器将具有特权权限(意味着容器内的进程将具有与宿主机上的进程雷同的特权级别,可以执行一些平凡容器不允许的利用),并使用IP地点192.168.50.254。

容器内的[code]/etc/config/network[/code]目录将与宿主机的[code]/home/docker/openwrt/network[/code]目录举行挂载(可以理解为这两个network文件实在都是宿主机上的network文件)。

容器启动时将执行OpenWrt的初始化进程

  • [code]--restart always[/code]: 指定容器在退出时总是重新启动。即使Docker守护进程重启,也会重新启动容器
  • [code]-d[/code]: 以后台(daemon)模式运行容器,使容器在后台执行。
  • [code]--privileged[/code]: 赋予容器特权,允许容器内的进程使用宿主机的特权利用
  • [code]registry.cn-shanghai.aliyuncs.com/suling/openwrt:x86_64[/code]: 指定要使用的OpenWrt镜像名称和标签
  • [code]/sbin/init[/code]: /sbin/init是启动OpenWrt的初始化进程。它是整个体系的根进程,负责初始化体系并启动其他需要运行的服务和进程。通过指定[code]/sbin/init[/code]作为容器启动时要执行的下令,可以让容器启动OpenWrt并正常运行

四:一些常用指令

如果前面的步调正常执行,openwrt应该过一会就启动乐成了,可以输入设置的ip地点进入openwrt后台管理界面

1.检察正在运行的docker容器,可以检察openwrt是不是在运行:

[code]docker ps[/code]

2.进入openwrt容器内部:

[code]docker exec -it openwrt bash[/code]
  • [code]docker exec[/code]是Docker下令,用于在运行中的容器中执行下令。
  • [code]-it[/code]是两个选项的结合,[code]-i[/code]表现交互式模式,[code]-t[/code]表现分配一个伪终端。
  • [code]openwrt[/code]是要执行下令的目标容器的名称。
  • [code]bash[/code]是要在容器内执行的下令,即打开一个交互式bash shell。这允许您与容器举行交互,就像在一个独立的终端中登录到该容器一样。

注:因为openwrt有自己的ip,也可以通过ssh毗连。如果没在openwrt后台管理界面设置暗码,只需要用户名为root,不需要输入暗码就可ssh连上

3.制止openwrt

[code]docker stop openwrt[/code]

4.删除已创建的docker容器(如果被玩坏了,可以删了再从镜像创一个)

[code]docker rm openwrt[/code]

总结

以上为个人履历,希望能给大家一个参考,也希望大家多多支持脚本之家。


来源:https://www.jb51.net/server/329024b9l.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
关闭

站长推荐上一条 4/6 下一条

【腾讯云】新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得 ...
【腾讯云】新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得

查看 »

宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )

GMT+8, 2025-4-9 13:49 , Processed in 0.027575 second(s), 17 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

返回顶部