Debian

QEMU:將 Tails-VM 連接到主機上的 Samba 網路共享時出現問題

  • May 19, 2019

我在 Debian 9 主機上的虛擬機中執行 Tails。為了通過 Tails 訪問主機上的共享文件夾,我嘗試設置 Samba-exchange。

雖然這種方法在 Debian 8 中執行良好,但在 Debian 9 中不再適用。嘗試連接到 Samba 共享時,我總是收到以下錯誤:

無法訪問位置。無法​​從伺服器檢索共享列表:連接超時。 "


QEMU-settings 中,我將網路源(虛擬網路介面)指定為帶有 name 的網橋virbr0,設備型號為virtio. 執行機器時,橋接器被啟動,物理網路介面也被啟動,來賓(= Tails)接收網際網路訪問沒有任何問題。只有Samba-share 不起作用。

我的/etc/samba/smb.conf樣子是這樣的:

[global]
workgroup = WORKGROUP
netbios name = MYCOMPUTER
name resolve order = bcast
dns proxy = no
log file = /var/log/samba/log./%m
max log size = 50
panic action = /usr/share/samba/panic-action %d
server role = standalone server
map to guest = bad user
usershare allow guests = yes
security = user
server string = %h server (Samba, Ubuntu)
bind interfaces only = yes
interfaces = enp0s25 virbr* lo

[Windows-SMB]
comment = Shared Samba Network Drive for Windows
path = /home/user/Public/Windows-Exchange
public = no
guest ok = no
browseable = yes
writeable = yes

[Tails-SMB]
comment = Shared Samba Network Drive for Tails
path = /home/user/Public/Tails-Exchange
public = no
guest ok = no
browseable = yes
writeable = yes

我嘗試了所有可能的解決方案:

  • 安裝包gvfs-bin

編輯/etc/samba/smb.conf

  • 添加netbios name = NAME-OF-PC
  • 添加name resolve order = bcast host

然而,他們都沒有工作。


我試圖縮小錯誤的來源:

testparm未檢測到任何錯誤,smbtree正確顯示所有共享。如果我從中獲取顯示的 IP 地址nmblookup <hostname>並將其插入到 Tails 中,我會再次收到上述錯誤。

但是,從訪客 ping Samba-share-IP 可以正常工作。我只是無法使用 Tails 文件瀏覽器訪問共享。

我可以看看其他一些想法?

該命令smbclient -L host給我帶來了“與主機的連接失敗(錯誤 NT_STATUS_UNSUCCESSFUL) ”。但是,如果我鍵入,smbclient -L 192.168.178.31我會成功獲得包含共享的表格。


以下是目前情況的一些截圖:

通過 CLI 進行配置檢查:

user@hostname: ~$ smbtree
WORKGROUP
  \\HOSTNAME                  HOSTNAME server (Samba, Ubuntu)
       \\HOSTNAME\IPC$             IPC Service (HOSTNAME server (Samba, Ubuntu))
       \\HOSTNAME\Tails-SMB        Shared Samba Network Drive for Tails
       \\HOSTNAME\Windows-SMB      Shared Samba Network Drive for Windows

user@hostname: ~$ nmblookup
192.168.122.1 HOSTNAME<00>

(This seems to be fine)

虛擬機管理器

QEMU 虛擬管理器中的物理網路介面:enp0s25

QEMU 虛擬管理器中的物理網路介面:lo

Tails 應該使用的虛擬網橋“virbr0”

Gnome 網路管理器:

Gnome 網路管理器:

通過文件瀏覽器連接到 Samba 共享 IP 時出現 Tails 錯誤:

通過文件瀏覽器連接到 samba 共享時出現 Tails 錯誤

Tails(成功?)向 Samba-Server-IP 發送 ping:

因此,這兩個 IP 似乎都可以正常工作:192.168.122.1以及192.168.178.31(從重新啟動 samba 伺服器之前的先前嘗試)。

在 Tails 中 Ping 到 Samba 伺服器


更新: Samba-exchange 仍然無法正常工作。

也許很有趣:我對這個 Samba 問題感到非常沮喪,我多次重新安裝了我的 Debian 9 主機,因為我認為我無論如何都做錯了。在此我想記住以下事實:我第一次安裝 Debian 並想啟動 Virtual Machine Managersdefault網橋時virbr0,我收到一個錯誤,即沒有檢測到防火牆。因此Virtual Machine Manager不想啟動這座橋。我以前從未收到過這樣的警告,所以我刪除了default網橋並重新創建了一個具有相同設置和相同名稱的新網橋。但是,手動啟動這個新橋很容易,沒有任何問題。儘管仍然沒有安裝防火牆,但 Virtual Machine Manager 毫無怨言地接受了新網橋。我想記住這次我讓 Samba-exchange 工作了。

但是,我重新安裝了主機系統,因為其他一些東西不起作用,同時我也玩了很多包。據此,我發現此錯誤消息“未檢測到防火牆”是由於缺少軟體包firewallddnsmasq. 我安裝了這些軟體包,卻再也沒有讓 Samba 交換工作。

不幸的是,我不太喜歡 Linux 來自己找出錯誤。也許這只是防火牆的IP設置或類似的東西很容易……

Samba 的另一個愚蠢行為是,直接在通過命令重新啟動 Samba 伺服器後/etc/init.d/samba restartsmbtree-command 不能直接工作。有時我必須等待幾秒鐘,直到我不再收到空行並顯示樹。

此外,該smbtree命令有時只顯示一個帶有主機名的輸出行,但沒有命名創建的 Samba 共享。這種行為似乎受smb.conf. 上面顯示的smb.conf邀請smbtree-command 也在其輸出中正確顯示共享。但是,如果我做一個[global]只有兩個基本條目的非常簡單的部分,有時輸出smbtree仍然完全為空 - 我不知道為什麼。

在具有相同設置的 Debian 8 主機上,smbtree-command 輸出確實也只有一行。也許任何地方都有錯誤?通常smbtree也應該顯示主機名Samba 共享。至少 Samba 交換正在這個 Debian 8 系統上工作(這裡沒有安裝firewalld和沒有dnsmasq安裝)。

一位同事發現了問題:

預設情況下,Samba 被firewalld. 因此,必須安裝軟體包firewall-config以在防火牆中啟動 Samba。可能這在沒有 GUI 的情況下也是可能的,但firewall-config它是一個 10 秒的任務……提到在防火牆中啟動 Samba 為永久的,不僅適用於目前會話。

現在一切正常!

您正在使用廣播( bcast )來解析名稱,但您的機器位於不同的子網上。

廣播名稱解析僅適用於同一子網。

你必須在你/etc/hosts的尾部主機上添加一個條目,上面寫著:

192.168.178.31    hostnameofthesmbserver

你可以用這個命令來做到這一點:

sudo nano /etc/hosts

始終在重新啟動時檢查此文件,因為我認為 tail 不會使此更改持續存在。

引用自:https://unix.stackexchange.com/questions/441147