PVE在VPS上安装PVE来开NAT
cipheror
因为最近成功交易了一个域名,所以就打算买台VPS给群友开NAT,由于NodeHatch免费用户只能开10个Nat,所以就去看了一下有什么自己开NAT的方式,然后尝试了一下
域名交易:

安装PVE
参考了PVE的官方文档:文档
修改hosts
IP的获取方式: hostname -I
访问域名:任意
你的主机名:hostname
1 2 3 4 5 6 7 8 9
| nano /etc/hosts
127.0.0.1 localhost 你的主要IP 你预计的访问域名地址 你的主机名 -> 只需要修改这一行,建议看文档
::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
|
修改之后建议reboot一下
添加源
1 2 3 4 5
| echo "deb [arch=amd64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg apt update && apt full-upgrade apt install proxmox-default-kernel systemctl reboot
|
安装PVE
1
| apt install proxmox-ve postfix open-iscsi chrony
|
删除Debian内核
1 2
| apt remove linux-image-amd64 'linux-image-6.1*' update-grub
|
访问面板
访问地址:https://your-ip-address:8006
认证方式:PAM
用户名:root
密码:你的SSH密码

异常排查
如果你无法通过 https://your-ip-address:8006 的方式访问
检查状态
1
| systemctl status pveproxy.service
|
如果报错提示:
1
| /etc/pve/local/pve-ssl.key: failed to load local private key (key_file or key) at /usr/share/perl5/PVE/APIServer/AnyEvent.pm line 2088.
|
那就是修改hosts
的问题
确保以下内容正确
IP的获取方式: hostname -I
你的主机名:hostname
修改好之后执行以下命令:
1 2 3 4 5 6 7 8
| pvecm updatecerts --force
systemctl restart pveproxy.service
systemctl status pveproxy.service
|
创建NAT网络
按照解释进行更改后再执行
1 2 3
| vmbr1 -> 网桥名字 10.10.10.1 -> 私网IP网关 ens3 -> 你的网卡名字 执行ip a 查看你公网IP的网卡名字
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| nano /etc/network/interfaces
auto vmbr1 iface vmbr1 inet static address 10.10.10.1/24 bridge-ports none bridge-stp off bridge-fd 0
post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o ens3 -j MASQUERADE post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o ens3 -j MASQUERADE
|
修改后建议reboot一下
开启IP转发
1 2
| 删除这行的#号并保存<br> #net.ipv4.ip_forward=1
|
然后执行命令查看是否为1
创建虚拟机
创建虚拟机需要先下载对应的镜像,可以下载好之后上传,也可以从URL下载

下载好之后就可以右上角创建了

选择刚才下载的镜像

依次更改磁盘 CPU 内存即可

完成

选中创建的虚拟机后右上角点击启动即可进入安装程序,可以在左边的控制台查看VNC

批量创建
1 2 3 4 5 6 7 8 9 10
|
rm -f /etc/ssh/ssh_host_*
truncate -s 0 /etc/machine-id
history -c history -w
shutdown now
|
选择好需要用来做模板的虚拟机,然后添加Cloud-init

右键点击转换为模板

转换后,选择模板,右键点击克隆

选择完整克隆

克隆之后,选择克隆的虚拟机,修改Cloud-init的配置

修改完成后,右上角点击开机即可,会自动配置好用户、密码、IP等
设置端口映射
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| apt update apt install iptables-persistent
iptables -t nat -A PREROUTING -i ens3 -p tcp --dport 8080 -j DNAT --to-destination 10.10.10.101:80 iptables -A FORWARD -p tcp -d 10.10.10.101 --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A PREROUTING -i ens3 -p udp --dport 12345 -j DNAT --to-destination 10.10.10.5:12345
iptables -A FORWARD -p udp -d 10.10.10.5 --dport 12345 -j ACCEPT
iptables -t nat -L PREROUTING --line-numbers iptables -t nat -D PREROUTING 需要删除的number
iptables -L FORWARD --line-numbers iptables -D FORWARD 需要删除的number
netfilter-persistent save
|