Samba
Samba 沒有在指定的wireguard / vpn 介面上監聽
我已經在三台電腦之間設置了一個wireguard vpn 網路。
- A) 我的家用 PC 正在執行一個wireguard 客戶端,並想在我的辦公室伺服器上連接到我的 sambashare C)。
- B)我的家庭伺服器充當我的線衛伺服器/端點。A) 和 C) 連接到這個。
- C) 我的 Office-Server 具有我想通過 wireguard 訪問的 samba 共享。
轉發似乎工作正常,因為:
- 我可以從 A) ping 到 C) 和從 C) 到 A)。使用C)的wireguard介面ip時。
- 我也可以從 A) SSH 到 C)。使用C)的wireguard介面ip時。
我認為問題在於我的 smb.conf 或 smbd.service 如何綁定到我在 smb.conf 中指定的介面,因為:
- 使用wireguard ip 地址時,我無法在C) 訪問我的Samba-Share。
- 指定 eth0 ip 地址時,我可以在 C) 訪問我的 Samba-Share。
這就是我的 smb.conf 文件的樣子:
#### 聯網 #### # 要綁定的特定介面/網路集 # 這可以是介面名稱或 IP 地址/網路遮罩; # 介面名稱通常是首選 ; 介面 = 127.0.0.0/8 eth0 介面 = lo eth0 wg - buero - 隧道 # 只綁定到指定的介面和/或網路;你必須使用 # 上面的“interfaces”選項來使用它。 # 如果您的 Samba 機器是 # 不受防火牆保護或本身就是防火牆。然而,這 # 選項無法正確處理動態或非廣播介面。 ; 僅綁定介面 = 是 僅綁定介面 = 是
這是輸出
netstat -tulpen | grep smbd
tcp 0 0 127.0.0.1:139 0.0.0.0:* 聽 0 17353 1023/smbd tcp 0 0 192.168.124.177:139 0.0.0.0:* LISTEN 0 17349 1023/smbd tcp 0 0 127.0.0.1:445 0.0.0.0:* LISTEN 0 17352 1023/smbd tcp 0 0 192.168.124.177:445 0.0.0.0:* LISTEN 0 17348 1023/smbd
這裡的 IP 應該與我在 smb.conf 中指定的設備相對應,但仍然缺少一個 IP/設備。
它127.0.0.1
eth0 192.168.124.177
wg-buero-tunnel完全失去了wireguard ip
我真的沒有想法了。
如果未明確指定介面地址/遮罩,但如果介面受
interfaces = ...
和限制,Samba 將不會偵聽 Wireguard 介面bind interfaces only = yes
。解決方案是為 Wireguard 介面指定 IP 地址/遮罩。例如
interfaces = lo eth0 10.8.0.0/24
這在 Samba 文件smb.conf中也很清楚 :介面
… 預設情況下,Samba 將向核心查詢所有活動介面的列表,並使用除 127.0.0.1 之外的任何可廣播的介面。…
… “遮罩”參數可以是位長(例如 C 類網路為 24)或點分十進制形式的完整網路遮罩。
眾所周知,Wireguard 不支持廣播,為什麼不支持。這些是 Samba 的後果:不可能使用其他三種替代方法來指定其中描述的介面,例如 2) 介面名稱或 3) 僅 IP 地址或 4) 廣播地址/遮罩,因為 Wireguard 不支持廣播。
ip link
您也可以通過命令驗證它:eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> ... link/ether ... wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> ... # without "BROADCAST" link/none