独立服务器安装ProxmoxVE并配置NAT网络转发

最近买了一台美国独服,只有一个IPv4,这里记录一下ProxmoxVE安装以及网络配置

1.安装Debian12

这里使用服务商提供的IPMI面板

登陆 ipmi,获取 jnlp 文件

img

根据上图,点击监视窗口下载 jnlp。第一步完成

安装 jdk 环境,用来打开 jnlp 文件

这里推荐 jdk 版本 1.7 版本。这里也贴心的准备两个直连下载地址

  1. win 32 位: http://iso.nomao.top/iso/jdk1.732.exe
  2. win 64 位:http://iso.nomao.top/iso/jdk1.7.exe

image-20250301075419142

双击打开 jnlp 文件,挂载 iso,进行安装

ipmi 白名单

ipmi 为了安全,都会启用白名单 ip 访问,因此 java ikvm 也需要使用此白名单 ip 访问。
但是国外的服务器,使用国内的 ip 访问 java ikvm 会很缓慢,连接失败都问题。
因此:解决方案有两个
①使用真全局代理(我使用的是这个)

image-20250301074925018②使用国外 win 机器,连接 java ikvm

成功连接 java ikvm 后,你会看到以下画面,请看图!

img

  1. 选择 virtual storage
  2. 选择 cdrom&iso
  3. 选择 iso 文件
  4. 打开文件夹选择 iso 文件
  5. 插入

这里为了方便,使用Netboot安装镜像(在线安装)

https://netboot.xyz/downloads/

image-20250301075155342

重启服务器,狂按 F11,进入 启动项菜单

怕有人不会,上一张图

img

img

根据你选择挂载,我刚刚挂载是 cdrom,因此选择是 cdrom 这个启动项。

进入后填写你的公网IP、子网掩码、网关、DNS安装即可,具体步骤略

netboot.xyz menu

2.安装Proxmox VE

1.配置hosts文件

1
2
3
4
5
6
7
8
9
nano /etc/hosts
修改为下面格式,prox4m1为你的主机名,可以自定义。192.168.15.77为公网IP
127.0.0.1 localhost
192.168.15.77 prox4m1.proxmox.com prox4m1

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

2.安装Proxmox VE

添加 Proxmox VE 仓库

1
echo "deb [arch=amd64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list

添加仓库 key

1
2
3
4
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg 
# verify
sha512sum /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
7da6fe34168adc6e479327ba517796d4702fa2f8b4f0a9833f5ea6e6b48f6507a6da403a274fe201595edc86a84463d50383d07f64bdde2e3658108db7d6dc87 /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg

更新软件源和系统:

1
apt update && apt full-upgrade

安装 Proxmox VE 内核

1
2
3
apt install proxmox-default-kernel

systemctl reboot

安装 Proxmox VE 软件包

1
apt install proxmox-ve postfix open-iscsi chrony

移除Debian内核

1
apt remove linux-image-amd64 'linux-image-6.1*'

更新grub配置

1
update-grub

移除os-prober包

1
apt remove os-prober

Proxmox VE 网页访问

连接到管理Web界面(https:// your-ip-address:8006)。如果尚未添加任何用户,则应选择PAM身份验证领域并使用“ root”用户帐户登录。

3.配置网络

1
2
cd /etc/network
cp interfaces interfaces.bk #备份一下

修改interfaces

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# network interface settings; autogenerated
# Please do NOT modify this file directly, unless you know what
# you're doing.
#
# If you want to manage parts of the network configuration manually,
# please utilize the 'source' or 'source-directory' directives to do
# so.
# PVE will preserve these directives, but will NOT read its network
# configuration from sourced files, so do not attempt to move any of
# the PVE managed interfaces into external files!

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto eno1
iface eno1 inet static
address 公网IP/31
gateway 公网网关
dns-nameservers 8.8.8.8
# dns-* options are implemented by the resolvconf package, if installed

iface enp0s25 inet manual

auto vmbr0
#private sub network
iface vmbr0 inet static
address 10.10.10.1/24
bridge-ports none
bridge-stp off
bridge-fd 0

post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE

重启网络

1
systemctl restart networking

配置好后是这样

1
2
3
4
5
6
执行 route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 x.x.x.x 0.0.0.0 UG 0 0 0 eno1
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 vmbr0
x.x.x.x 0.0.0.0 255.255.255.254 U 0 0 0 eno1

3.创建kvm虚拟机

不是CT,pve直接可下载CT的模版

除了下面的方法,你也可以使用iso镜像安装

1.创建一个新的虚拟机

1
qm create 103 --memory 2048 --core 2 --name ubuntu-cloud --net0 virtio,bridge=vmbr0

这里是创建 id 为 103 的虚拟机,内存大小为 2G , CPU 核心数量 2,名称是 ubuntu-cloud

并设置网卡桥接到 vmbr0

2.准备 Cloud-Init 镜像

Cloud-Init 需要特定镜像支持。推荐使用官方提供的预装 Cloud-Init 的镜像,例如:

下载镜像后,上传到 PVE 存储:

1
2
3
4
# 示例:将 镜像上传到 PVE 的 `local` 存储
qm importdisk <VMID> /path/to/xxx.img local
或者
qm importdisk <VMID> /path/to/xxx.qcow2 local --format=qcow

例如

1
qm importdisk 103 noble-server-cloudimg-amd64.img local

将新导入的磁盘以 scsi 驱动器的方式装载到新建的虚拟机的 scsi 控制器

1
2
qm set 103 --scsihw virtio-scsi-pci --scsi0 local-lvm/vm-103-disk-0
qm set 103 --scsihw virtio-scsi-pci --scsi0 local:103/vm-103-disk-0

image-20250301101749350

添加 cloud init 驱动器

1
qm set 103 --ide2 local:cloudinit

将 cloud init 驱动器设置为可启动并限制 BIOS 仅从磁盘启动

1
qm set 103 --boot c --bootdisk scsi0

添加串口控制台

1
qm set 103 --serial0 socket --vga serial0

现在先不要启动虚拟机

现在可以配置新虚拟机的硬件和 cloud init 选项,配置好之后转换成模板。磁盘大小的调整可以在转换成模板前调整,或者从模板克隆出新的虚拟机时候再调整。

  • 用户:root
  • 密码:改为你想要的root密码
  • IP配置:
    IPv4/CIDR:填你想要的静态IP,如:10.10.10.2/24
    网关:第2步你自己配置的虚拟网卡,如:10.10.10.1

创建模板(也可以在 Web UI 操作)

1
qm template 103

克隆模板(也可以在 Web UI 操作)

1
qm clone 103 135 --name huihui --full

排障

如果需要重置机器 id

1
2
sudo rm -f /etc/machine-id
sudo rm -f /var/lib/dbus/machine-id

然后关机,下次启动会生成新的机器 id,如果没有生成,可以运行以下命令:

1
sudo systemd-machine-id-setup

也可以使用我的脚本快速创建模板

https://github.com/muzihuaner/ProxmoxVE-template-maker

5.开机

点启动,开机后先用pve控制台打开登录你设置的root和密码

  • 运行ip a,看下静态IP类似10.10.10.2
  • 看下外网通吗,再运行ping 8.8.8.8

6.配置nat端口转发

https://github.com/muzihuaner/NATScript/

[!NOTE]

没网?
如果到最后一步,你发现nat机无法连接外网,可能是转发规则设置错了
在宿主机运行

1
sudo iptables -t nat -A POSTROUTING -s '你的内网网关ip/24' -o 你宿主机的网卡接口 -j MASQUERADE

例如:sudo iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE

大概就这些…有其他的我再更新…未完待续


独立服务器安装ProxmoxVE并配置NAT网络转发
https://blog.quickso.cn/2025/03/01/独立服务器安装ProxmoxVE并配置NAT网络转发/
作者
木子欢儿
发布于
2025年3月1日
许可协议