[心得] UTM SE 使用者报告《第三章》网络设定与 iPad 档案传输

楼主: Lyeuiechang (誠誠小屁孩)   2024-07-25 00:22:19
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. This 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_005fnetwork.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 <
作者: Matil2258037 (宝杰)   2024-07-25 00:43:00
跟我想的一样
楼主: 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( ̄▽ ̄///)<
作者: gary8442 (起秋风)   2024-07-25 02:25:00
先推
作者: YU0201 (红)   2024-07-25 07:00:00
请大大收下我的膝盖
作者: MOONY135 (谈无欲)   2024-07-25 09:43:00
愿意浪费生命研究这个 值得尊敬
作者: yohobiology (微积好危机)   2024-07-25 10:09:00
太强了
作者: Melmetal (台钕旧式剑)   2024-07-25 11:52:00
先推
作者: berserkman (to be brave)   2024-07-25 11:54:00
苹果为了把ipad和mac分开真的不遗余力
作者: Luciferspear   2024-07-25 12:23:00
作者: desanz (Jmi)   2024-07-25 14:56:00
你真的超强
作者: ianferrari (吴麻糬)   2024-07-25 16:45:00
太厉害了 推
作者: cc5566cc   2024-07-25 20:49:00
跟我想的差不多 英雄所见略同 给推
作者: guanting886 (Guanting)   2024-07-25 21:29:00
在iPadOS模拟20年前的XP看起来蛮折腾自己的
作者: COLINLIU (Colin)   2024-07-25 21:52:00
作者: ho83leo (LWHo)   2024-07-26 00:05:00
有料喔!
作者: JoseMiguel (米格尔)   2024-07-26 14:50:00
FTP方式最稳,怕资安可以参考SFTP的连线方式port会在22
作者: wtsph (Plz don't say u r 雷姬)   2024-07-26 15:05:00
iOS12以前的版本有解方吗
作者: echelon1279   2024-07-27 23:03:00
强者推
作者: xzero0911 (Jh豆腐)   2024-07-28 16:00:00
UTM SE居然有人研究使用给推 垃圾苹果死不开放UTM HV
作者: stu85010 (黑白夜冲爽哥)   2024-07-31 09:43:00
求第六节分享方式总结⊙o⊙
作者: waakye (明天的太阳)   2024-07-31 11:38:00
现在能玩比较好的方式是收一台16.3之前的M1 M2

Links booklink

Contact Us: admin [ a t ] ucptt.com