V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
dewreg
V2EX  ›  Linux

求大佬帮忙分析下 NAS 的诡异网络问题

  •  
  •   dewreg · 1 天前 · 884 次点击
    看看有没有大佬专家有兴致帮忙分析一些诡异的家庭 NAS 的网络问题,诡异在于:

    现状:
    1. 一个 x86 Ubuntu (作 Linux NAS ),一个 Mac Mini M4 (作桌面端)
    2. Ubuntu 上的服务:
    - 照片服务
    - QB 下载
    - 透明代理( mihomo/clas ,虚拟机或者 Docker 方式)
    - Nginx 反代( ipv6 ddns ,反代照片服务到公网,虚拟机或者 Docker macvlan )


    理想目标:
    - 不想用 VirtualBox 虚拟机,Docker 更轻量简单
    - Ng 通过 Docker macvlan 反代,隔离机器和服务
    - 透明代理也能通过 Docker 方式,给家里其他设备做透明代理网关使用
    - 其他服务正常


    问题:
    - 使用 Docker macvlan ,宿主机和容器不能通信,有自己搞桥接口的 trick 方法,为什么用 macvlan ,主要用 bridge 的方式搞不定容器独立的 ipv6 ( host 模式就没安全意义了),用 bridge 的话有没有办法搞定?
    - 透明代理 Mihomo/Clash ,虚拟机方式部署一切正常,「同样的配置 config.yaml 」 在宿主机上直接程序跑和使用 Docker 的方式,UI 管理界面中所有代理节点全都出不来,但体验上,宿主机裸跑和 Docker 都比虚拟机方式体感流畅非常多(虚拟机配置是够的,符合普通代理体感),这是为什么呢?
    - Mac 也可以直接使用 Clash Verge 做透明代理,与 Linux 下裸跑和 Docker 方式一样,都无法在本地访问 Ng 反代的服务(ipv6),怀疑是 ipv6 解析的问题,但是虚拟机里面的透明代理又正常,这个是最疑惑的点!
    - QB 下载,用 macvlan 之后,网络就不太正常,用普通模式,速度又不行( ipv6 ?)又为什么呢?
    - 以及有没有其他更优解?
    第 1 条附言  ·  22 小时 29 分钟前
    换了 PVE 了,目前整体网络很简单,Clash 性能也符合预期,

    1. 估计还是 Ubuntu 下面的 Vbox 虚拟机性能折损比较大
    2. Tailscale 真的太强了,尤其是 Subnet 和 Exit Node 能力!!!
    16 条回复    2025-04-28 08:06:22 +08:00
    trio
        1
    trio  
       1 天前
    这是我的 macvlan+bridge 的初始化脚本,宿主机可以和容器通信。
    #!/bin/bash

    # 检查网络是否存在
    NETWORK_COUNT=$(docker network ls | grep -c zte_macvlan)
    if [[ "$NETWORK_COUNT" -gt 0 ]]; then
    echo "zte_macvlan network already exists"
    else
    echo "Creating zte_macvlan network"
    docker network create --driver=macvlan \
    --subnet=192.168.6.0/22 \
    --gateway=192.168.5.1 \
    -o parent=ovs_eth0 zte_macvlan
    fi

    # 创建 macvlan_host 并配置 IP
    ip link add macvlan_host link ovs_eth0 type macvlan mode bridge
    ip addr add 192.168.6.2/22 dev macvlan_host

    # IPv4 路由
    for i in $(seq 100 140); do
    ip route add 192.168.6.$i dev macvlan_host
    done

    # 启用 macvlan_host
    ip link set macvlan_host up
    dewreg
        2
    dewreg  
    OP
       1 天前
    @trio 感谢,通过桥接确实可以解决通信问题,在我的场景下也可以忽略,只是好奇,Docker bridge 方式是不是没法有公网 ipv6 了 ?
    dewreg
        3
    dewreg  
    OP
       1 天前
    @trio 以及 docker inspect 看到的 macvlan 分配的 ipv6 ,和 DDNS 解析的 ipv6 也不一样,也着实不解,但是 DDNS 的确实能通
    pagxir
        4
    pagxir  
       1 天前 via Android
    建 Mac vlan 的时候不要选 private mode 即可。
    wheat0r
        5
    wheat0r  
       1 天前
    bridge 就是 nat ,IPv4 和 IPv6 都是。
    macvlan 网络的 IPv6 一般是配置一个 ULA ,实际上容器会同时得到 macvlan 这边来的 ULA 和路由器来的公网地址。
    dewreg
        6
    dewreg  
    OP
       1 天前
    @wheat0r 感觉 bridge 的 ipv6 (公网),就没法配成功过,这个是符合预期的不,如果 bridge 的 ipv6 能公网,也感觉不要 macvlan 了
    wheat0r
        7
    wheat0r  
       1 天前
    @dewreg 正常来说 bridge 就没有公网,不存在怎么配置。
    dewreg
        8
    dewreg  
    OP
       1 天前
    @wheat0r 那确实不符合使用场景的预期
    dewreg
        9
    dewreg  
    OP
       1 天前
    @pagxir 默认是 vepa 模式?和宿主也不能通信,需要 macvlan 的 bridge 模式?
    greenskinmonster
        10
    greenskinmonster  
       1 天前   ❤️ 1
    不考虑主系统迁移到 proxmox 吗? lxc+docker 也很轻量化,网络结构规划和业务分离更加容易。
    dewreg
        11
    dewreg  
    OP
       1 天前
    @greenskinmonster 之前用了下 PVE ,然后莫名奇妙死机一次,也不知道是啥原因造成的,加上硬件直通也搞不明白,为了简单就直接 ubuntu 了,再回去可能也是一种选择 。。。
    Jisxu
        12
    Jisxu  
       1 天前
    @dewreg #11 pve 底层是 debian ,跟 ubuntu 是一个家族的,命令差不多
    MacsedProtoss
        13
    MacsedProtoss  
       1 天前 via iPhone
    pve 才是正解 docker 跑这么多这么重的东西不太合理啊
    我的 pve 持续跑一年不重启都没有问题 至于直通啥的得具体问题具体分析 我也有直通显卡和 nvme 的
    YsHaNg
        14
    YsHaNg  
       1 天前 via iPhone
    @MacsedProtoss 这才几个东西 docker 真不至于这么不堪 你这说法把跑 compose 甚至 k8s 的往哪放 至于容器都不需要直通 比如多个应用分享 gpu 非常轻松
    trio
        15
    trio  
       1 天前
    @dewreg 这需要在创建 docker network 的时候,补充--ipv6 相关的前缀/子网;可以生效,每个容器都有独立的公网可以访问的 IPV6 ;但是当 ISP 变更 IPV6 前缀,你的配置又得重新刷一遍,因此这方法不稳定。
    leo7476040305
        16
    leo7476040305  
       1 天前 via iPhone
    @dewreg PVE + 1, 透明代理可以采用 Surge On Macmini 或者 PVE 开 VM 装 OpenWRT 。Docker 的网络配置远比 PVE 的复杂。
    访问照片服务可以用 Surge Ponte 或者 WireGuard / Tailscale 。
    至于莫名其妙死机你可以待其恢复后查看 syslog ,并根据具体设备分析。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5634 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:51 · PVG 09:51 · LAX 18:51 · JFK 21:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.