apt update
需要通过代理才能访问 Debian的软件源,
这是最可靠的方法,设置一次后,apt
将始终通过代理工作,无需每次都手动设置。
使用 vim
创建一个配置文件:
vim /etc/apt/apt.conf.d/99proxy
在文件中添加以下两行:
// filepath: /etc/apt/apt.conf.d/99proxy
Acquire::http::Proxy "http://192.168.0.112:7890";
Acquire::https::Proxy "http://192.168.0.112:7890";
按 Ctrl+X
,然后按 Y
,最后按 Enter
保存并退出。
现在直接运行 apt update
即可。
如果您只想临时使用,请在您当前登录的 root
终端中,重新执行 export
命令:
export HTTP_PROXY="http://192.168.0.112:7890"
export HTTPS_PROXY="http://192.168.0.112:7890"
export http_proxy="http://192.168.0.112:7890"
export https_proxy="http://192.168.0.112:7890"
设置完毕后,在同一个终端窗口中,立即运行 apt update
。
环境变量的细节注意:
http
和 https
。如果您只设置了 export http_proxy
而忘记设置 export https_proxy
,那么在访问 https
源时就会失败。http_proxy
,但有些程序也认大写的 HTTP_PROXY
。最稳妥的做法是同时设置大小写版本。
建议首先检查VM disk image是否破损
先确认磁盘里有哪些分区:
parted /dev/pve/vm-100-disk-1 print
或者:
fdisk -l /dev/pve/vm-100-disk-1
输入内容如下:
odel: Linux device-mapper (thin) (dm)
Disk /dev/dm-8: 644GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 EFI System Partition boot, esp
2 538MB 644GB 644GB ext4
kpartx
生成分区映射kpartx -av /dev/pve/vm-100-disk-1
执行后会输出类似:
add map pve-vm--100--disk--1p1 (252:12): 0 1048576 linear 252:8 2048
add map pve-vm--100--disk--1p2 (252:13): 0 1257238528 linear 252:8 1050624
对刚刚映射出来的 Linux 分区设备进行检查和修复。
fsck.ext4 -f /dev/mapper/pve-vm--100--disk--1p2
根据提示按 y
同意修复。
删除分区映射:修复完成后,清理掉临时的设备映射。
kpartx -dv /dev/pve/vm-100-disk-1
启动虚拟机:返回 PVE 的 Web 管理界面,尝试启动虚拟机。
确保 Windows 防火墙允许PVE 主机使用7890端口的代理。最简单的方法是为 Clash 应用或 7890 端口添加入站规则。
以 管理员身份 打开 PowerShell。
复制并粘贴以下命令,然后按 Enter 键执行:
New-NetFirewallRule -DisplayName "Allow Clash LAN" -Direction Inbound -Protocol TCP -LocalPort 7890 -Action Allow
这条命令会创建一个名为 "Allow Clash LAN" 的新规则,允许所有来源的入站 TCP 连接访问本地的 7890 端口。
打开高级防火墙设置
Win + R
键,输入 wf.msc
,然后按 Enter。创建新规则
规则向导
7890
。Clash Port 7890
,然后点击 “完成”。完成以上任一方法后,Windows 防火墙就会允许 PVE 主机访问您 Win10 上的 Clash 代理端口了。
设置好后,可以在PVE host终端里执行需要代理的命令来验证代理是否Okay,例如 curl google.com
或 apt install ...
因为 Windows 10 防火墙 默认禁止来自局域网的 ICMP(ping)请求,所以 PVE 主机 ping Win10时,显示无法ping通,但 Win10 可以 ping PVE 主机。
在 Win10 上允许 ICMP 请求:
命令行快速开启(管理员权限):
netsh advfirewall firewall add rule name="Allow ICMPv4-In" protocol=icmpv4:8,any dir=in action=allow