国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

配置Docker OpenWrt與宿主機網(wǎng)絡互通且作為宿主機網(wǎng)關(guān)

這篇具有很好參考價值的文章主要介紹了配置Docker OpenWrt與宿主機網(wǎng)絡互通且作為宿主機網(wǎng)關(guān)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


背景

最近需要用Docker版的Openwrt作為旁路由(網(wǎng)關(guān)),在配置過程中遇到一些問題,通過查閱資料,最終完美解決?,F(xiàn)在將整體方案和具體操作步驟貼到這里分享給大家

環(huán)境

這里我使用的環(huán)境如下:

  • 宿主機操作系統(tǒng):Armbian
  • 宿主機ip:192.168.5.2
  • 宿主機新macvlan接口ip:192.168.5.3
  • Docker鏡像:unifreq/openwrt-aarch64
  • Docker ip(macvlan):192.168.5.10
  • 網(wǎng)段:192.168.5.0/24
  • 主路由ip:192.168.5.1

操作步驟

Docker安裝OpenWrt

這里我使用docker macvlanbridge網(wǎng)絡模式提升性能

確認宿主機網(wǎng)絡接口名

ifconfig

以我的返回為例,這里是eth0

eth0: flags=4419<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.5.2  netmask 255.255.255.0  broadcast 192.168.5.255
        inet6 xxxxxxxxxxx  prefixlen 64  scopeid 0x20<link>
        ether d2:xx:xx:xx:xx:xx  txqueuelen 1000  (Ethernet)
        RX packets 10762458  bytes 10675054731 (10.6 GB)
        RX errors 0  dropped 164956  overruns 0  frame 0
        TX packets 6366329  bytes 10052966588 (10.0 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 65  

創(chuàng)建macvlan網(wǎng)絡

開啟橋接網(wǎng)卡的混淆模式

在宿主機輸入下面命令

ip link set eth0 promisc on

再一次ifconfig接口名查看是否成功開啟。如果對應接口有PROMISC證明已成功開啟

eth0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
        inet 192.168.5.2  netmask 255.255.255.0  broadcast 192.168.5.255
        inet6 xxxxxxxxxxx  prefixlen 64  scopeid 0x20<link>
        ether d2:xx:xx:xx:xx:xx  txqueuelen 1000  (Ethernet)
        RX packets 10762458  bytes 10675054731 (10.6 GB)
        RX errors 0  dropped 164956  overruns 0  frame 0
        TX packets 6366329  bytes 10052966588 (10.0 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 65  
為docker創(chuàng)建macvlan網(wǎng)絡
docker network create -d macvlan --subnet=192.168.5.0/24 --gateway=192.168.5.1 -o parent=eth0 macnet

創(chuàng)建OpenWrt容器

在宿主機執(zhí)行

docker run --restart always --name openwrt -d --network macnet --privileged unifreq/openwrt-aarch64:latest /sbin/init
登錄容器更改ip網(wǎng)段

宿主機執(zhí)行下面命令進入容器終端

docker exec -it openwrt bash

在容器終端下,修改/etc/config/network文件,修改ipaddr為宿主機網(wǎng)段,并增加gatewaydns配置,指向主路由地址,配置如下:

config interface 'lan'
		option type 'bridge'
        option ifname 'eth0'
        option proto 'static'
        option ipaddr '192.168.5.10'
        option dns '192.168.5.1'
        option gateway '192.168.5.1'
        option netmask '255.255.255.0'
重啟network生效配置

容器下執(zhí)行,

/etc/init.d/network restart

然后ifconfig相應的接口名,看配置是否生效,并測試是否可以訪問互聯(lián)網(wǎng)

ping -c 3 baidu.com

與宿主機網(wǎng)絡互通

在用上述配置創(chuàng)建完OpenWrt docker后,雖然宿主機和容器在同一網(wǎng)段,但是因為macvlan模式的限制,宿主機與容器是無法互相通信的(但與同網(wǎng)段下的其他機器是可以相互通信的),所以需要在宿主機創(chuàng)建一個新的macvlan接口,然后增加一條宿主機macvlan訪問容器macvlan的靜態(tài)路由。

在宿主機終端執(zhí)行下面代碼,
注:macvlan-proxy這個接口名稱可以隨便起,只需要每條命令的名字保持一致即可

宿主機創(chuàng)建新的macvlan接口

ip link add macvlan-proxy link eth0 type macvlan mode bridge

為新接口分配ip并啟用

ip addr add 192.168.5.3 dev macvlan-proxy
ip link set macvlan-proxy up

添加靜態(tài)路由使宿主機與容器使用新接口通信

ip route add 192.168.5.10 dev macvlan-proxy

配置新接口的默認網(wǎng)關(guān)為容器地址

route add default gw 192.168.5.10 macvlan-proxy

測試是否能ping通

在宿主機執(zhí)行,

# 宿主機-->OpenWrt容器
ping 192.168.5.10 -c 3
# OpenWrt容器-->宿主機
docker exec -it openwrt bash -c "ping 192.168.5.3 -c 3"

如果可以相互ping通,則證明設置沒問題。

加入啟動項自啟動

上述命令會在宿主機重啟后失效,為了每次重啟宿主機均可自動運行上述命令,需要編輯/etc/rc.local文件,將上面的命令粘貼到exit 0之前

ip link set eth0 promisc on > /dev/null 2>&1
ip link add macvlan-proxy link eth0 type macvlan mode bridge
ip addr add 192.168.5.3 dev macvlan-proxy
ip link set macvlan-proxy up
ip route add 192.168.5.10 dev macvlan-proxy
route add default gw 192.168.5.10 macvlan-proxy

最后,確保為/etc/rc.local文件增加了可執(zhí)行權(quán)限且rc-local.service是自啟動的狀態(tài)

chmod a+x /etc/rc.local
systemctl enable rc-local

至此,Docker OpenWrt與宿主機網(wǎng)絡互通配置已完成,可重啟后驗證是否生效。

備注

本文只介紹了如何配置Docker OpenWrt與宿主機網(wǎng)絡互通,以及如何作為宿主機網(wǎng)關(guān),至于OpenWrt如何配置作為旁路由(網(wǎng)關(guān)),還需要其他的設置,詳見此文章。


參考資料1
參考資料2
參考資料3文章來源地址http://www.zghlxwxcb.cn/news/detail-773373.html

到了這里,關(guān)于配置Docker OpenWrt與宿主機網(wǎng)絡互通且作為宿主機網(wǎng)關(guān)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • pod,docker啟動使用宿主機網(wǎng)絡的方案

    這是一個Docker命令,用于在主機網(wǎng)絡模式下運行一個名為\\\"identity\\\"的容器,并將容器內(nèi)部的端口18092映射到主機上的端口18092。 解析該命令的各個部分: docker run :運行一個新的容器。 --net=host :使用主機網(wǎng)絡模式,這意味著容器將與主機共享網(wǎng)絡命名空間,可以直接使用主機

    2024年02月11日
    瀏覽(28)
  • Docker Compose網(wǎng)絡系列--docker-compose連接到宿主機網(wǎng)絡

    原文網(wǎng)址:Docker Compose網(wǎng)絡系列--docker-compose連接到宿主機網(wǎng)絡_IT利刃出鞘的博客-CSDN博客 說明 本文介紹如何實現(xiàn)docker-compose連接到宿主機網(wǎng)絡。 需求場景 docker-compose.yml中的services下的容器是無法與宿主機網(wǎng)絡連接的,讓多個應用進行網(wǎng)絡連接的方法:docker-compose.yml設置netwo

    2024年02月15日
    瀏覽(22)
  • 最簡單配置jenkins容器使用宿主機的docker方法

    最簡單配置jenkins容器使用宿主機的docker方法

    構(gòu)建鏡像和發(fā)布鏡像到harbor都需要使用到docker命令。而在Jenkins容器內(nèi)部安裝Docker官方推薦直接采用宿主機帶的Docker即可 設置宿主機docker.sock權(quán)限 chown root:root /var/run/docker.sock chmod o+rw /var/run/docker.sock 添加數(shù)據(jù)卷 version: \\\"3.1\\\" services: ? jenkins: ? ? image: jenkins/jenkins ? ? container_na

    2024年02月11日
    瀏覽(29)
  • docker macvlan虛擬化網(wǎng)絡與宿主機通信問題解決——筑夢之路

    默認情況下各個macvlan之間可以通訊,但是不能與宿主機進行通訊!! 主要原因:為了安全而禁止互通 如宿主機ping容器的ip,盡管他們屬于同一網(wǎng)段,但也是ping不通的,反過來也是。 這里用兩個實例來說明如何解決這個問題。 實例一 ?實例二 參考資料: 解決Docker macvlan網(wǎng)絡

    2024年02月07日
    瀏覽(25)
  • Docker Desktop使用宿主機Windows的配置文件持久化存儲數(shù)據(jù)

    Docker Desktop使用宿主機Windows的配置文件持久化存儲數(shù)據(jù)

    《微軟官網(wǎng)Windows 上的 Docker 引擎幫助文檔》 以Nginx為例 把Nginx的配置文件復制到Windows 注意:Windows的盤符是小寫的,以及目錄直接是用反斜杠的!(我掉這坑里好久?。。。?修改宿主機的nginx.conf配置文件 刪除nginx容器 重啟啟動一個新的Nginx容器 訪問localhost

    2024年02月09日
    瀏覽(23)
  • ubuntu20.04中安裝配置docker nvidia容器來實現(xiàn)宿主機GPU的調(diào)用

    在 Ubuntu 上安裝 Docker 非常直接。我們將會啟用 Docker 軟件源,導入 GPG key,并且安裝軟件包。 (這里指推薦使用官方的安裝方法,snap的方法不推薦,各種命令不是很通用) 1、首先,更新軟件包索引,并且安裝必要的依賴軟件,來添加一個新的 HTTPS 軟件源: 2、使用下面的

    2024年03月16日
    瀏覽(23)
  • 【Docker】docker容器內(nèi)獲取宿主機的信息和執(zhí)行宿主機的腳本

    【Docker】docker容器內(nèi)獲取宿主機的信息和執(zhí)行宿主機的腳本

    我們可以通過在容器內(nèi)遠程連接宿主機,然后對宿主機進行操作。 注意: 要先安裝 sshpass命令才行。 Dockerfile文件可以在你部署容器的時候自動安裝。 docker部署springboot項目

    2024年02月11日
    瀏覽(27)
  • Docker】容器里面拷文件到宿主機[或]宿主機拷文件到容器里面

    【Docker】容器里面拷文件到宿主機[或]宿主機拷文件到容器里面 - 知乎 答:在宿主機里面執(zhí)行以下命令 docker cp 容器名:要拷貝的文件在容器里面的路徑 要拷貝到宿主機的相應路徑 示例: 假設容器名為webnphp,要從容器里面拷貝的文件路為: 現(xiàn)在要將tox.ini從容器里面拷到宿主

    2024年02月06日
    瀏覽(56)
  • docker使用宿主機代理

    我是在ubuntu虛擬機里面裝的docker,嘗試過docker里面裝clash,但是失敗了。使用上面的方法,docker容器內(nèi)可以ping通github.com。ALL_PROXY里面的端口號因人而異。 docker 容器內(nèi)使用宿主機的代理配置 | Zach Ke\\\'s Notes (kebingzao.com)

    2024年02月16日
    瀏覽(31)
  • Docker:掛載宿主機的目錄

    可以在docker run時通過: -v 宿主機目錄:容器內(nèi)目錄 ,掛載宿主機的文件到容器: $ docker run -it -v /tmp/docker_share/:/tmp/share ubuntu /bin/bash 容器啟動后,可以在容器里看到目錄/tmp/share root@9d2d19b4923c:/tmp/share# touch test root@9d2d19b4923c:/tmp/share# ls test 在宿主機的/tmp/docker_share目錄下也可以

    2024年02月09日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包