QEMU:將 Tails-VM 連接到主機上的 Samba 網路共享時出現問題
我在 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)
虛擬機管理器:
Gnome 網路管理器:
通過文件瀏覽器連接到 Samba 共享 IP 時出現 Tails 錯誤:
Tails(成功?)向 Samba-Server-IP 發送 ping:
因此,這兩個 IP 似乎都可以正常工作:
192.168.122.1
以及192.168.178.31
(從重新啟動 samba 伺服器之前的先前嘗試)。更新: Samba-exchange 仍然無法正常工作。
也許很有趣:我對這個 Samba 問題感到非常沮喪,我多次重新安裝了我的 Debian 9 主機,因為我認為我無論如何都做錯了。在此我想記住以下事實:我第一次安裝 Debian 並想啟動 Virtual Machine Managers
default
網橋時virbr0
,我收到一個錯誤,即沒有檢測到防火牆。因此Virtual Machine Manager
不想啟動這座橋。我以前從未收到過這樣的警告,所以我刪除了default
網橋並重新創建了一個具有相同設置和相同名稱的新網橋。但是,手動啟動這個新橋很容易,沒有任何問題。儘管仍然沒有安裝防火牆,但 Virtual Machine Manager 毫無怨言地接受了新網橋。我想記住這次我讓 Samba-exchange 工作了。但是,我重新安裝了主機系統,因為其他一些東西不起作用,同時我也玩了很多包。據此,我發現此錯誤消息“未檢測到防火牆”是由於缺少軟體包
firewalld
和dnsmasq
. 我安裝了這些軟體包,卻再也沒有讓 Samba 交換工作。不幸的是,我不太喜歡 Linux 來自己找出錯誤。也許這只是防火牆的IP設置或類似的東西很容易……
Samba 的另一個愚蠢行為是,直接在通過命令重新啟動 Samba 伺服器後
/etc/init.d/samba restart
,smbtree
-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 不會使此更改持續存在。