<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Container Manager on KnightLi的博客</title>
        <link>https://knightli.com/tags/container-manager/</link>
        <description>Recent content in Container Manager on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Fri, 05 Jun 2026 15:58:26 +0800</lastBuildDate><atom:link href="https://knightli.com/tags/container-manager/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>群晖 DSM 7.3 Container Manager 多网卡与 Macvlan 配置</title>
        <link>https://knightli.com/2026/06/05/synology-dsm-container-manager-multi-nic-macvlan/</link>
        <pubDate>Fri, 05 Jun 2026 15:58:26 +0800</pubDate>
        
        <guid>https://knightli.com/2026/06/05/synology-dsm-container-manager-multi-nic-macvlan/</guid>
        <description>&lt;p&gt;群晖 DSM 7.3 和 DSM 7.2 自带的 Container Manager，图形界面默认主要支持基础的 &lt;code&gt;bridge&lt;/code&gt; 和 &lt;code&gt;host&lt;/code&gt; 网络。如果 NAS 有多块网卡，例如 LAN1 接内网、LAN2 接独立软路由或另一个网段，而你希望某些容器固定走 LAN2，或者直接在 LAN2 网段拿到一个独立 IP，就需要借助 Docker 的 &lt;code&gt;macvlan&lt;/code&gt; 网络。&lt;/p&gt;
&lt;p&gt;常见需求可以分成两类：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;让容器绑定某块物理网卡，并获得该网段的独立 IP；&lt;/li&gt;
&lt;li&gt;让容器同时接入默认 &lt;code&gt;bridge&lt;/code&gt; 网络和指定网卡的 &lt;code&gt;macvlan&lt;/code&gt; 网络。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;下面以第二块网卡 &lt;code&gt;ovs_eth1&lt;/code&gt;、LAN2 网段 &lt;code&gt;192.168.2.0/24&lt;/code&gt; 为例说明。实际使用时，请按自己的网段、网关和网卡名称修改命令。&lt;/p&gt;
&lt;h2 id=&#34;先确认物理网卡名称&#34;&gt;先确认物理网卡名称
&lt;/h2&gt;&lt;p&gt;先在 DSM 中开启 SSH，然后登录群晖执行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ifconfig
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果群晖已经开启 Open vSwitch，网卡名称通常会变成 &lt;code&gt;ovs_eth0&lt;/code&gt;、&lt;code&gt;ovs_eth1&lt;/code&gt; 这类形式。安装过 Virtual Machine Manager 的机器，多数会自动启用 Open vSwitch。&lt;/p&gt;
&lt;p&gt;如果没有开启 Open vSwitch，网卡名称通常是 &lt;code&gt;eth0&lt;/code&gt;、&lt;code&gt;eth1&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;假设要让容器走第二块网卡，后面示例统一使用 &lt;code&gt;ovs_eth1&lt;/code&gt;。如果你的机器没有启用 Open vSwitch，就把命令里的 &lt;code&gt;ovs_eth1&lt;/code&gt; 改成实际看到的 &lt;code&gt;eth1&lt;/code&gt; 或其他名称。&lt;/p&gt;
&lt;h2 id=&#34;场景一容器使用指定网卡的独立-ip&#34;&gt;场景一：容器使用指定网卡的独立 IP
&lt;/h2&gt;&lt;p&gt;这是最常见的用法，适合 Pi-hole、AdGuard Home、下载器、网关类服务等场景。目标是让容器直接出现在 LAN2 网段里，拥有一个类似物理设备的 IP，而不是只藏在群晖默认 Docker 网段后面。&lt;/p&gt;
&lt;p&gt;Container Manager 图形界面不能直接创建 &lt;code&gt;macvlan&lt;/code&gt; 网络，需要先通过 SSH 创建一次：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo docker network create -d macvlan &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --subnet&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;192.168.2.0/24 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --gateway&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;192.168.2.1 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --ip-range&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;192.168.2.200/29 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -o &lt;span class=&#34;nv&#34;&gt;parent&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;ovs_eth1 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  custom_lan2_net
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;参数含义如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-d macvlan&lt;/code&gt;：使用 &lt;code&gt;macvlan&lt;/code&gt; 驱动；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--subnet=192.168.2.0/24&lt;/code&gt;：LAN2 所在的完整网段；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--gateway=192.168.2.1&lt;/code&gt;：LAN2 网段的网关，一般是路由器 IP；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--ip-range=192.168.2.200/29&lt;/code&gt;：限制 Docker 可分配的 IP 范围，避免和手机、电脑、电视等设备冲突；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-o parent=ovs_eth1&lt;/code&gt;：指定绑定哪块物理网卡；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;custom_lan2_net&lt;/code&gt;：给这个 Docker 网络起的名字。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;创建完成后，打开 DSM 的 Container Manager，进入左侧“网络”页面，就能看到 &lt;code&gt;custom_lan2_net&lt;/code&gt;。后续可以在图形界面里把已有容器加入这个网络，也可以在新建容器时选择它，并给容器指定该网段内的固定 IP。&lt;/p&gt;
&lt;h2 id=&#34;场景二容器同时连接多个网络&#34;&gt;场景二：容器同时连接多个网络
&lt;/h2&gt;&lt;p&gt;有些容器需要同时出现在多个网络里。例如它既要能被群晖宿主机通过默认 &lt;code&gt;bridge&lt;/code&gt; 网段访问，又要在 LAN2 中拥有独立物理网段 IP。此时可以让容器同时拥有两块虚拟网卡。&lt;/p&gt;
&lt;h3 id=&#34;方法-a在图形界面追加网络&#34;&gt;方法 A：在图形界面追加网络
&lt;/h3&gt;&lt;p&gt;先按普通方式创建容器，并选择一个主网络，例如默认的 &lt;code&gt;bridge&lt;/code&gt;。容器创建完成后先不要启动；如果已经启动，先停止容器。&lt;/p&gt;
&lt;p&gt;然后进入 Container Manager 的“网络”页面，选中刚创建的 &lt;code&gt;custom_lan2_net&lt;/code&gt;，点击“管理”，在列表中勾选目标容器并保存。这样容器启动后，内部通常会同时出现 &lt;code&gt;eth0&lt;/code&gt; 和 &lt;code&gt;eth1&lt;/code&gt; 两块虚拟网卡。&lt;/p&gt;
&lt;p&gt;这个方法最适合偶尔配置一两个容器，操作简单，也不需要改 Compose 文件。&lt;/p&gt;
&lt;h3 id=&#34;方法-b用项目功能编写-docker-compose&#34;&gt;方法 B：用项目功能编写 Docker Compose
&lt;/h3&gt;&lt;p&gt;如果你习惯使用 Container Manager 的“项目”功能，也可以直接在 &lt;code&gt;docker-compose.yml&lt;/code&gt; 中声明多个网络：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;version&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;3.8&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;services&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;my_node&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;nginx:latest&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;container_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;multi_nic_container&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;networks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;default_bridge&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ipv4_address&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;172.20.0.10&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;lan2_macvlan&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ipv4_address&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;192.168.2.205&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;networks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;default_bridge&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;external&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;bridge&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;lan2_macvlan&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;external&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;custom_lan2_net&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这里的 &lt;code&gt;custom_lan2_net&lt;/code&gt; 是前面通过 SSH 创建好的 &lt;code&gt;macvlan&lt;/code&gt; 网络。&lt;code&gt;bridge&lt;/code&gt; 则引用群晖自带的 Docker 默认网络。&lt;/p&gt;
&lt;p&gt;需要注意的是，示例中的 &lt;code&gt;172.20.0.10&lt;/code&gt; 只有在你的默认桥接网络确实使用这个网段时才适用。普通群晖 Docker 默认 &lt;code&gt;bridge&lt;/code&gt; 更常见的是 &lt;code&gt;172.17.0.0/16&lt;/code&gt;，实际地址应以 &lt;code&gt;docker network inspect bridge&lt;/code&gt; 的结果为准。&lt;/p&gt;
&lt;h2 id=&#34;macvlan-的宿主机互通问题&#34;&gt;Macvlan 的宿主机互通问题
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;macvlan&lt;/code&gt; 有一个很容易踩坑的限制：Linux 内核默认不允许宿主机通过同一个 &lt;code&gt;macvlan&lt;/code&gt; 接口直接访问容器。&lt;/p&gt;
&lt;p&gt;也就是说，如果容器只加入 &lt;code&gt;custom_lan2_net&lt;/code&gt;，群晖 DSM 本身可能无法通过 LAN2 的物理网段 IP 访问这个容器，容器也无法通过这个接口直接访问宿主机。&lt;/p&gt;
&lt;p&gt;常见解决方式有两种：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;让容器同时加入默认 &lt;code&gt;bridge&lt;/code&gt; 网络，群晖通过 &lt;code&gt;bridge&lt;/code&gt; 分配的 Docker 内网地址访问它；&lt;/li&gt;
&lt;li&gt;在群晖上额外创建一个宿主机侧的 &lt;code&gt;macvlan&lt;/code&gt; 子接口，让宿主机也进入同一个 &lt;code&gt;macvlan&lt;/code&gt; 通信域。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;第二种方式更接近网络工程配置，维护成本也更高。大多数家庭或小型办公场景，用“&lt;code&gt;bridge&lt;/code&gt; + &lt;code&gt;macvlan&lt;/code&gt; 双网络”会更省心。&lt;/p&gt;
&lt;h2 id=&#34;ip-冲突要提前规避&#34;&gt;IP 冲突要提前规避
&lt;/h2&gt;&lt;p&gt;使用 &lt;code&gt;macvlan&lt;/code&gt; 时，容器 IP 会直接出现在物理局域网里，所以一定要避免和 DHCP 自动分配的地址池冲突。&lt;/p&gt;
&lt;p&gt;建议在主路由里把 Docker 专用地址段排除出去。例如你计划把 &lt;code&gt;192.168.2.200/29&lt;/code&gt; 分给 Docker，就不要让路由器再把 &lt;code&gt;192.168.2.200&lt;/code&gt; 到 &lt;code&gt;192.168.2.207&lt;/code&gt; 分配给手机、电脑或其他设备。&lt;/p&gt;
&lt;p&gt;如果路由器不方便设置 DHCP 排除范围，至少也要给容器使用一段不太可能被自动分配的高位地址，并做好记录。&lt;/p&gt;
&lt;h2 id=&#34;如何开启-open-vswitch&#34;&gt;如何开启 Open vSwitch
&lt;/h2&gt;&lt;p&gt;在 DSM 7.x 中，Open vSwitch 可以通过图形界面开启，不需要手动改底层配置。最省心的方法是安装群晖官方的 Virtual Machine Manager，因为虚拟机网络桥接依赖 Open vSwitch，安装向导会自动提示启用。&lt;/p&gt;
&lt;p&gt;操作步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;打开 DSM 的“套件中心”；&lt;/li&gt;
&lt;li&gt;搜索并安装 &lt;code&gt;Virtual Machine Manager&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;打开套件，按向导提示启用 Open vSwitch；&lt;/li&gt;
&lt;li&gt;等待网络服务重启。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果不想安装 VMM，也可以在控制面板里手动开启：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;打开“控制面板”；&lt;/li&gt;
&lt;li&gt;进入“网络”；&lt;/li&gt;
&lt;li&gt;切到“网络界面”标签页；&lt;/li&gt;
&lt;li&gt;点击“管理”，选择“Open vSwitch 设置”；&lt;/li&gt;
&lt;li&gt;勾选“启用 Open vSwitch”，然后应用。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;应用后，群晖网卡会重新初始化，浏览器连接通常会短暂断开几秒。不要在 NAS 正在传输大文件或执行重要写入任务时操作。&lt;/p&gt;
&lt;h2 id=&#34;验证-open-vswitch-是否生效&#34;&gt;验证 Open vSwitch 是否生效
&lt;/h2&gt;&lt;p&gt;图形界面里，可以回到“控制面板 -&amp;gt; 网络 -&amp;gt; 网络界面”查看网卡状态，管理菜单里也会显示 Open vSwitch 相关设置。&lt;/p&gt;
&lt;p&gt;命令行里，可以再次执行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ifconfig
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;或者：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ip addr
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果看到 &lt;code&gt;ovs_eth0&lt;/code&gt;、&lt;code&gt;ovs_eth1&lt;/code&gt; 这类接口，说明 Open vSwitch 已经生效。之后创建 &lt;code&gt;macvlan&lt;/code&gt; 网络时，&lt;code&gt;-o parent=&lt;/code&gt; 后面就要填写带 &lt;code&gt;ovs_&lt;/code&gt; 前缀的接口名，例如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-o &lt;span class=&#34;nv&#34;&gt;parent&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;ovs_eth1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果仍然写成 &lt;code&gt;eth1&lt;/code&gt;，Docker 容器可能无法通过预期的网卡联网。&lt;/p&gt;
&lt;h2 id=&#34;配置前的检查清单&#34;&gt;配置前的检查清单
&lt;/h2&gt;&lt;p&gt;实际动手前，建议先确认这几件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;群晖一共有几块物理网卡，哪些网口已经插线；&lt;/li&gt;
&lt;li&gt;每个网口分别接入哪个交换机、路由器或 VLAN；&lt;/li&gt;
&lt;li&gt;目标网卡在 DSM 中显示为 &lt;code&gt;ethX&lt;/code&gt; 还是 &lt;code&gt;ovs_ethX&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--subnet&lt;/code&gt; 和 &lt;code&gt;--gateway&lt;/code&gt; 是否属于目标网卡所在网段；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--ip-range&lt;/code&gt; 是否已经从 DHCP 地址池中排除；&lt;/li&gt;
&lt;li&gt;容器是否需要被群晖宿主机访问，如果需要，最好同时加入 &lt;code&gt;bridge&lt;/code&gt; 网络。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;只要网卡名称、网段和 IP 池没有写错，DSM 7.3 的 Container Manager 完全可以配合 &lt;code&gt;macvlan&lt;/code&gt; 实现多网卡容器部署。图形界面负责日常管理，SSH 只需要用来创建底层网络，后续维护成本并不高。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
