首页 > 其他分享 >openwrt的docker镜像助自由上网

openwrt的docker镜像助自由上网

时间:2022-12-28 15:47:29浏览次数:57  
标签:option -- ip 192.168 镜像 docker openwrt

你是否听说过openwrt实现自由上网后又方便又灵活?但是为此通常需要准备专门的软路由需要改造家里的网络,非常麻烦。今天给大家提供一种只需要一台服务器就可以实现的方法。该方案基于docker镜像,因此也不会对已有的服务器环境造成破坏,部署灵活,使用方便。下面给了个最终实现的例子

安装docker

使用官方脚本安装 Docker

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

安装完成后执行 docker 命令是需要加 sudo 权限的,这样操作会比较麻烦, 我们可以做如下操作

sudo groupadd docker ## 如果没有 docker 组的话,添加一个 docker 组
sudo gpasswd -a ${USER} docker ## 把当前登陆的用户添加到 docker 组
sudo service docker restart ## 重启 docker 服务
newgrp - docker ## 切换到新的回话

设置网络

docker的实力默认网络端口不对外暴露。为了让我们的docker完全对外暴露,就好像vmware虚拟的桥接模式那样,需要进行一些设置。

1. 把网卡混杂模式打开

运行如下命令找到服务器对外连接网络的网卡名

ip addr show
  打开对于网卡得到混杂模式,需要注意,哪个网卡连接了网络就设置哪个,名字不一定是enp2s0
sudo ip link set enp2s0 promisc on

 2. 创建 docker 网卡

参考如下命令创建一个docker网络,下面的ip等参数供参考,请勿无脑抄

docker network create -d macvlan --subnet=192.168.1.50/24 --gateway=192.168.1.1 -o parent=enp2s0 openwrt-net

macvlan 模式会为每个容器创建一个独立的 ip 每个容器可以通过独立的 ip 进行访问

下载 openwrt 镜像并启动容器

Github地址 这里包含了很全的镜像文件包含了 arm  x86  x64 的 docker 镜像文件。我是x86_64的系统,所以就选择了x86_64,但对于其它系统的,各位自行选择

docker run --restart always --name openwrt -d --network openwrt-net --privileged sulinggg/openwrt:x86_64 /sbin/init

启动后输入docker ps可以查看状态。

设置容器 ip

运行如下命令接入docker

docker exec -it openwrt bash

下面开始设置容器的 ip 以便我们能通过 ip 地址访问容器, 通过命令:vim /etc/config/netwrok 来设置 ip。 按住 i 键开始输入。

其中 option ipaddr 是你的 openwrt 的地址,注意不要与局域网其它设备冲突 . option gateway 与 option dns 设置你路由器的地址

设置完成依次按:Esc -> : -> wq -> 回车保存。

下方为参考配置,各位请勿无脑抄,应结合实际ip输入。

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.50'
        option gateway '192.168.1.1'
        option dns '192.168.1.1'

 保存完成后通过命令 /etc/init.d/network restart 重启网络, 重启完成后便可以通过浏览器访问了 http://192.168.1.50 默认密码是 password

路由器配置

关于具体如何配置自由上网,这里就不多说了,相信各位简答点点鼠标就知道了

客户端配置

客户端只需要将网关修改为openwrt的ip即可。

标签:option,--,ip,192.168,镜像,docker,openwrt
From: https://www.cnblogs.com/zornlink/p/17010275.html

相关文章

  • 什么是Docker?为什么使用docker?
    Docker是基于Go语言进行开发实现,一个开源的应用容器引擎。采用Linux内核的cgroup,namespace,以及AUFS类的UnionFS等技术,对进程进行封装隔离,也可以实现虚拟化。隔......
  • Dockerfile的使用
    什么是Dockerfile?Dockerfile是一个用来构建镜像的文本文件,文本内容包含一条条构建镜像所需的指令和说明 使用Dockerfile定制镜像FROM和RUN指令的作用From:定制的镜......
  • Docker开发环境部署
    ​​ ......
  • Docker的资源管理控制
    一、CPU控制cgroups,是一个非常强大的linux内核工具,他不仅可以限制被namespace隔离起来的资源,还可以为资源设置权重、计算使用量、操控进程启停等等。所以cgroups(Contr......
  • Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docke
    [root@localhostdocker]#[root@localhostdocker]#docker--versionDockerversion1.13.1,build7d71120/1.13.1[root@localhostdocker]#[root@localhostdocker]#......
  • 解读“K8S不支持Docker”
    容器不只是Docker,但不可否认Docker是容器的代名词、容器时代的引领者。实际上K8S出现并得以快速发展,也是由于Docker的强大优势和快速发展,2014 年 Google 推出Kubernetes......
  • Docker 中的挂载卷
    我们现在有这样一个需求。我们有一个Spring的项目是部署在容器中的,如果不进行任何配置的话,这个项目运行的所有日子都会在容器中。当容器重启说着终止后,上面的日志比较难进......
  • Docker网络中篇-docker网络的四种类型
    通过上一篇学习,我们对docker网络有了初步的了解。本篇,咱们就来实战docker网络。docker网络实战实战docker网络,我们将从以下几个案例来讲解1:birdge是什么?2:host3:none4......
  • docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES
    一、前言在数据量大的企业级实践中,Elasticsearch显得非常常见,特别是数据表超过千万级后,无论怎么优化,还是有点力不从心!使用中,最首先的问题就是怎么把千万级数据同步到Elast......
  • docker部署lnmp
    一、构建自定义docker网络12345systemctlstopfirewalldsystemctldisablefirewalldsetenforce0 dockernetworkcreate--subnet=172.18.0.0/16......