找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 686|回复: 6

求助,如何解决docker使用macvlan部署openwrt后无法访问其他容器的问题

[复制链接]
发表于 2023-4-13 09:10 | 显示全部楼层 |阅读模式
本帖最后由 工口的Elina 于 2023-4-13 10:10 编辑

在docker中部署了openwrt和wireguard,因为openwrt使用了macvlan的原因,导致使用wireguard无法访问到openwrt的后台,也没办法让wireguard的流量经过openwrt;

目前尝试过在宿主机上再建立一个 macvlan,然后修改路由,使数据由这个 macvlan 传输到容器内的 macvlan,这样可以让wireguard成功访问到openwrt,但是好像并不能被openwrt里的“师夷长技以制夷”代理到;
想问下还有没有其他什么办法可以比较好的解决这个问题


另外,只作为旁路由的话是不是可以不使用macvlan?
发表于 2023-4-13 12:24 | 显示全部楼层
为啥要macVLAN,直接host不香嘛
回复 支持 反对

使用道具 举报

发表于 2023-4-13 12:51 | 显示全部楼层
host是直接使用主机的全部端口,要看你的需要了
如果主机是网关还是不建议,内核级别的docker容器,譬如openwrt一旦崩溃,有很大几率导致宿主机一起崩溃
还有一个需要考虑的是安全问题
如果这两者都不符合,那就host模式,比较简单,作为旁路由也不容易出稀奇古怪的问题

点评

我只是用来做旁路由,主要的网关是家里的小米路由器(192.168.0.1),只有个别的设备需要经过openwrt;如果使用host模式,局域网的其他设备想要走openwrt,网关和dns填docker宿主机的ip(192.168.0.2)吗?  详情 回复 发表于 2023-4-13 14:29
回复 支持 反对

使用道具 举报

发表于 2023-4-13 13:29 来自手机 | 显示全部楼层
我的理解是,你的 op 应该是作为旁路由使用的?其它设备要是不能访问 op ,就是设置有问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-13 14:29 | 显示全部楼层
本帖最后由 工口的Elina 于 2023-4-13 15:18 编辑
avin4 发表于 2023-4-13 12:51
host是直接使用主机的全部端口,要看你的需要了
如果主机是网关还是不建议,内核级别的docker容器,譬如op ...

我只是用来做旁路由,主要的网关是家里的小米路由器(192.168.0.1),只有个别的设备需要经过openwrt,这样的话应该没关系的吧?

回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-13 15:21 | 显示全部楼层
本帖最后由 工口的Elina 于 2023-4-14 01:07 编辑

试了一下,用host模式部署openwrt容器,已经可以满足需求了

更新:后又发现了问题,如下描述
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-14 01:05 | 显示全部楼层
本帖最后由 工口的Elina 于 2023-4-14 02:51 编辑

使用了一下发现了一个新问题:我是最后一个部署openwrt的,在此之前wireguard和其他容器都可以正常工作和访问,当部署好openwrt后(好像操作过openwrt的网络设置),wireguard无法从客户端连接到docker容器的服务端,且其他容器的服务都无法在内网其他设备上访问;当停止并移除openwrt容器,重启宿主机后一切又都恢复正常。

有没有大佬可以帮我看下应该怎么解决

部署方式:
wireguard使用了以下dockercompose文件启动:
version: "2.1"
services:
  wireguard:
    image: linuxserver/wireguard:latest
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
      - SERVERURL=test.test.test #optional
      - SERVERPORT=1234 #optional
      - PEERS=1 #optional
      - PEERDNS=auto #optional
      - INTERNAL_SUBNET=10.13.13.0 #optional
      - ALLOWEDIPS=0.0.0.0/0,::0/0 #optional
      - PERSISTENTKEEPALIVE_PEERS= #optional
      - LOG_CONFS=true #optional
    volumes:
      - /wireguard/config:/config
      - /lib/modules:/lib/modules #optional
    ports:
      - 51820:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: always

openwrt通过命令启动:
docker run -d --restart always --name openwrt --net=host --privileged openwrtimg /sbin/init






回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-6-6 07:00

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表