[心得] UTM SE 使用者報告《第三章》網路設定與 iPad 檔案傳輸

作者: Lyeuiechang (誠誠小屁孩)   2024-07-25 00:29:34
https://i.imgur.com/nCseBwP.jpeg
【本文目錄】
前言:檔案互通是辦公的必要條件
第一節:UTM 的共享資料夾為什麼不能用
第二節:搞懂 UTM 網路設定與技術原理(文章較長)
第三節:透過個人熱點進行檔案傳輸(適合新手)
第四節:連接埠轉送的機制與技術原理(文章較長)
第五節:透過連接埠轉送進行檔案傳輸(適合進階)
【前言:檔案互通是辦公的必要條件】
1969年的美國國防部一項名為阿帕網(ARPANET)的計畫被正式投入執行,
可以被視為是網際網路的前身,其目的就是要讓電腦之間能夠互相交換研究資料,
1974年,TCP/IP協定被開發了出來,並定義了兩台電腦之間要如何溝通並傳輸資料。
這章節將會教各位如何讓虛擬機器與 iPad 的檔案系統進行雙向交換資料。
如果你看了許多坊間關於 UTM SE 的教學,無論是文章或影片,
通常會到本系列中的第二章就差不多結束了。
有些會說無法傳輸檔案,另一些會說請做成光碟映像 ISO 檔掛載。
(順帶一提,可以用 Free ISO Creator 將資料夾製作成 ISO 光碟映像檔。)
https://www.freeisocreator.com/
但是一台機器如果只能從外界讀取資料而無法把成果攜出的話,
在上面撰寫的文檔其實是沒有太大的意義。
也因此,作為本系列中最精彩也最硬核的一篇,
我們將從為什麼正常情況下 UTM 無法實現檔案共享,
到提出各式各樣(但失敗)的嘗試可能,
以及翻閱 QEMU (UTM 的底層) 關於網路設定的官方文檔,
從計算機網路概論的角度實現雙向區域網路檔案傳輸。
如果你也準備好了,就一起往下看吧。
【第一節:UTM 的共享資料夾為什麼不能用】
如果你有稍微把玩一下 UTM 介面的話,
會發現在掛載選單裡面有一個共享資料夾的選項,
可以讓你指定要把哪個 iPad 資料夾跟虛擬機器共享,
於是你很高興了選了檔案 App 中的某一個資料夾,
然後打開電腦後發現沒辦法使用,即使已經安裝 Windows 客體系統工具也是一樣。
https://docs.getutm.app/settings-qemu/sharing/
SPICE WebDAV
This requires the SPICE guest tools to be installed on the guest. The shared
directory is exposed as a WebDAV mount on the guest’s localhost (typically
on port 9843). This option has better support for Windows but can have worse
performance than VirtFS on Linux.
所以到底出了甚麼事情?
去 UTM Github Issue 列表中一找,會發現有大量的人都遇到問題:
Shared folder not working with WinXP guest
https://github.com/utmapp/UTM/discussions/3625
原因似乎是 Spice 工具用來負責共享資料夾的 WebDAV 服務在 Windows XP 上有點問題,
導致沒有反應,服務沒有啟動或者是當掉,
有人甚至建議修改文檔說明 Windows XP 其實不支援客體工具,
但因為 Spice 工具已經早就放棄 Windows XP 的支援了,故這個問題估計無法修復。
有些人第一時間就想到說,那我們就讓電腦透過雲端硬碟共享就好了啊。
但是考慮到 UTM SE 速度實在是太慢,開個瀏覽器就會等到天荒地老,
且如果用舊版的瀏覽器根本開不了網頁,更不用提可能還要考慮資安的問題,
都這麼慢了還裝套防毒軟體那簡直是慢上加慢。
那如果我們掛載一顆空的硬碟,然後把 Windows XP 上面的檔案裝進去之後,
再開一台 Linux 機器聯網上傳出去可不可行,答案也是否定的,
經過實測,UTM 似乎只能掛接一顆磁碟機,
掛兩顆並設定讀寫的時候拿不到 write lock 開不了機,
且無法單獨建立磁碟機(檔案格式 qcow2),所以這條路也沒辦法。
因此,我們需要其他方法來實現檔案傳輸,而且最好是內網也能用。
【第二節:搞懂 UTM 網路設定與技術原理】
在上面那個 Issue 討論裡面,有人其實提到直接利用 Windows SMB 協定,
在客體虛擬機器(Guest)上面開一個伺服器,再透過主體實體機器(Host)連上即可。
https://i.imgur.com/tGlEuQQ.png
恰好 iOS 13 之後內建檔案 App 就支援 SMB 豈不是太完美了?
但當你照著步驟做就會發現:
1. 沒辦法把虛擬機器 IP 改成 Shared Network 模式 (192.168.xxx.xxx)
https://i.imgur.com/EctSVCz.png
2. 檔案 App 不確定是連不上機器還是連不上 SMB
要想講清楚原因,就得先提到 UTM 關於網路設定的部分:
https://docs.getutm.app/settings-qemu/devices/network/network/
UTM 網路模式主要分成四種:
Emulated VLAN、Shared Network、Host Only、Bridged,其中前兩個跟我們比較有關:
Emulated VLAN: Creates a new VLAN and connects this virtual machine to it. Thi
s VLAN is
created in userspace and requests from the VM will be seen by the host
operating system as originating from the UTM process. Different VMs will each
have their own VLAN.
(macOS) Shared Network: Traffic is routed directly by the host operating system
and the guest shares a VLAN with the host. Services running on the guest and
the host can see each other without additional configuration. This is
recommended for new virtual machines.
簡單來說,Emulated VLAN 模式下每個 UTM 虛擬機器會有獨立 VLAN,
而 Shared Network 則是把實體主機與客體虛擬機連到相同的 VLAN,
每個 VLAN 就可以視為是一個區域網路。
虛擬區域網路(VLAN)通常是由一個實體 LAN 進行分割,
主要的目的就是為了把不同群組的電腦進行功能劃分以方便管理。
而虛擬區域網路本身具有防火牆的效果,
也就是說不同虛擬網路間的電腦彼此之間不可以直接通訊。
虛擬區域網路(Virtual LANs)
https://www.cs.nthu.edu.tw/~nfhuang/chap16.htm
https://savicontrols.com/what-is-vlan-i-quick-bytes-with-paul-zielie/
https://i.imgur.com/aY6Hozo.png
以上圖來說,藍色網路 VLAN 1 跟綠色網路 VLAN 2 各是一個 VLAN,
透過路由器設定我們可以將 Host 1-3 互相直接通訊與 Host 4-6 互相直接通訊,
而 VLAN 1 與 VLAN 2 之間無法直接通訊,必須要透過路由器。
回到我們的 UTM 網路設定,
也就是說 iPad 所處的 VLAN 與 虛擬機所處的 VLAN 不相同,
除非透過一個個人熱點(如手機開熱點)當作一個路由器,否則是無法直接通訊的。
在 QEMU 的網路文檔中提到:
https://people.redhat.com/pbonzini/qemu-test-doc/_build/html/topics/pcsys_005f
network.html
Using the user mode network stack
By using the option -net user (default configuration if no -net option is
specified), QEMU uses a completely user mode network stack (you don’t need
root privilege to use the virtual network). The virtual network configuration
is the following:
QEMU VLAN <
作者: Lyeuiechang (誠誠小屁孩)   2024-12-04 23:42:00
[新聞]有狼師一直戳女學森(.)(.)而被家長吉上法院...
作者: Xhocer (以前也很快樂)   2024-12-04 23:44:00
) (
作者: xj654m3 (盧魚)   2024-12-04 23:46:00
( Y )
作者: Xhocer (以前也很快樂)   2024-12-04 23:48:00
\|/
作者: xj654m3 (盧魚)   2024-12-05 00:47:00
(╮⊙▽⊙)ノ|||
作者: Lyeuiechang (誠誠小屁孩)   2024-12-05 01:17:00
/|\╰╮o( ̄▽ ̄///)<

Links booklink

Contact Us: admin [ a t ] ucptt.com