<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Macvlan on KnightLi的博客</title>
        <link>https://knightli.com/zh-tw/tags/macvlan/</link>
        <description>Recent content in Macvlan on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-tw</language>
        <lastBuildDate>Fri, 05 Jun 2026 15:58:26 +0800</lastBuildDate><atom:link href="https://knightli.com/zh-tw/tags/macvlan/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>群暉 DSM 7.3 Container Manager 多網卡與 Macvlan 設定</title>
        <link>https://knightli.com/zh-tw/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/zh-tw/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>
