PVE安装与配置

PVE安装与配置

PVE常用使用问题

系统安装

使用镜像引导启动,选择Install Proxmox VE,开始运行安装程序。

进入用户许可页面。选择同意EULA许可。下一个页面是磁盘选择页面。选择系统安装的目标磁盘。然后使用Options选项修改具体分配。

pve安装界面
pve安装界面

  • hdsize 定义目标硬盘的容量大小,通过设置这个参数,你可以配置硬盘预留部分空间给他用。建议不要预留空间,完整使用目标硬盘空间。

  • swapsize 定义swap逻辑卷的容量大小,默认和服务器物理内存容量大小一致,最小值为4GB,最大值为8GB,最大值不能大过hdsize/8。注意,如设置为0,将不会创建swap逻辑卷。

  • maxroot 定义root逻辑卷的容量大小,最大值限制为hdsize/4。root逻辑卷主要用于保存ISO操作系统镜像。

  • minfree 定义pve卷组容量中除了swap、root以及data逻辑卷容量之外剩余的可用容量大小,也就是说minfree大小可以按照下面方式来计算 minfree = pve - swapsize - rootsize - datasize

  • maxvz 定义data逻辑卷的容量大小,data逻辑卷主要用于保存虚拟机文件,虚拟机文件容量大小不能超过maxvz。

maxvz实际大小可以这样计算:datasize = hdsize - rootsize - swapsize - minfree

下一步输入正确的主机名,密码等信息就可以开始安装系统了。安装完成后系统会自动重启。pve安装过程中需要注意的信息不多。主要是磁盘分配和主机名比较重要。因为磁盘分配后期不能修改。主机名后期修改起来非常麻烦

基础网络配置

Bash
vi /etc/network/interfaces

网络取决于具体配置,应该根据具体实际情况配置。

Carbon
iface eno1 inet manual

auto vmbr0
iface vmbr0 inet static
    address 10.0.0.23/24
    gateway 10.0.0.1
    bridge-ports eno1
    bridge-stp off
    bridge-fd 0

auto vmbr1
iface vmbr1 inet static
    address 10.0.0.24/24
    bridge-ports none
    bridge-stp off
    bridge-fd 0

系统配置

以下是常见的配置,需要按需添加。

Bash
cat << EOF >> /etc/sysctl.conf
net.ipv4.tcp_syncookies = 1
net.core.default_qdisc=fq
net.ipv4.ip_forward = 1
net.ipv4.tcp_congestion_control=bbr
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.default.proxy_arp = 0
kernel.sysrq = 1
EOF
sysctl -p

隐藏PVE登录弹窗

社区版PVE登陆以后会有一个弹窗。执行以下代码可以去除那个弹窗。

注意:pveproxy更新以后还是需要重新执行以下代码。

Bash
cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js  /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak 
sed -i 's/res === null || res === undefined || !res ||/false \&\&/' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
sed -i "s/vm.set('subscriptionActive', subscription);/vm.set('subscriptionActive', true);/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
systemctl restart pveproxy

配置软件源

社区版PVE需要去除企业源,如果不去除这些企业源,apt会运行失败。

Bash
echo "deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription" >> /etc/apt/sources.list
rm /etc/apt/sources.list.d/pve-install-repo.list
rm /etc/apt/sources.list.d/pve-enterprise.list
apt update

官方说明链接

安装常用程序

按需安装,保持系统精简很重要。

Bash
apt install -y -qq apt-transport-https ca-certificates curl tmux tar chrony git rsync telnet tree net-tools python3-pip python3-dev unzip lrzsz sudo cpufrequtils vim zsh isc-dhcp-server 

配置ACME证书

PVE无论从公网访问还是内网访问,内置的自签名SSL证书不能抵御中间人攻击。可以使用acme自动申请证书,或者配置一个反向代理。通过反向代理上的SSL访问 web 界面。下文介绍了ACME申请SSL证书并配置到Web界面的流程。

这里使用cloudflare提供的DNS方式获取域名证书。

在你的浏览器打开链接 https://你的服务器IP:8006/。使用安装时的密码和root用户登陆系统。语言选择中文。

选择 数据中心ACME,选择添加账户。输入账户名和邮箱,点击注册注册账户。

image-20230509141712199.png

然后选择添加质询插件。

image-20230509142752000.png

具体参数可以参照之前的文章进行填充。

image-20230509143313178.png

image-20230509143356034.png

点击服务器节点,然后选择凭证。在右侧的ACME中选择添加。按照上图进行选择。然后选择创建。image-20230509143454382.png

选择账户后点击立即预定凭证。等待几分钟以后,如果可以用域名访问,代表证书申请成功。

下载常见镜像

image-20230509152914432.png

网桥配置

创建网桥

Carbon
auto vmbr10
iface vmbr10 inet static
        address 10.1.1.1/24
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        post-up iptables -A FORWARD -i vmbr0 -j ACCEPT
        post-up iptables -t nat -A POSTROUTING -s '10.1.1.0/24' -o vmbr0 -j MASQUERADE

        post-down iptables -D FORWARD -i vmbr0 -j ACCEPT
        post-down iptables -t nat -D POSTROUTING -s '10.1.1.0/24' -o vmbr0 -j MASQUERADE
        post-down systemctl restart isc-dhcp-server

配置DHCP

Bash
vim /etc/dhcp/dhcpd.conf

添加以下内容:

Carbon
option domain-name-servers 8.8.8.8,8.8.4.4;

subnet 10.1.1.0 netmask 255.255.255.0 {     
  range 10.1.1.100 10.1.1.200;   
  option routers 10.1.10.1;                                       
  option broadcast-address 10.1.1.255;
  default-lease-time 600;
  max-lease-time 7200;
}

host honeyjar {                                    
    hardware ethernet fc:89:1c:cc:e5:45;      # MAC地址
    fixed-address 10.1.1.2;                # IP地址
    infinite-is-reserved on;                  # 保留该地址
}
Bash
vim /etc/default/isc-dhcp-server

修改为下面所列出的配置:

INTERFACESv4="vmbr10"
Bash
# 先启用网卡
ifup vmbr10
# 再重启服务
systemctl restart isc-dhcp-server

通过/var/lib/dhcp/dhcpd.leases可以查看IP分配情况。

安全增强

配置防火墙

推荐一开始就设置默认策略为拒绝:

Bash
sudo iptables -P INPUT DROP

只开放需要用到的端口:

Bash
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT

具体的iptables配置推荐阅读iptables官方手册,详见其他文章。

修改 SSH 配置

Bash
sed -i "s/#Port 22/Port 2222/g" /etc/ssh/sshd_config
sed -i 's/#PermitEmptyPasswords no/PermitEmptyPasswords no/g' /etc/ssh/sshd_config
sed -i 's/^#\?PermitRootLogin .*/PermitRootLogin no/g' /etc/ssh/sshd_config
sed -i 's/^#\?MaxAuthTries .*/MaxAuthTries 2/g' /etc/ssh/sshd_config
sed -i 's/^#\?ClientAliveInterval .*/ClientAliveInterval 30/g' /etc/ssh/sshd_config
sed -i 's/^#\?ClientAliveCountMax .*/ClientAliveCountMax 2/g' /etc/ssh/sshd_config
systemctl restart sshd

常用软件配置

配置 CPU 频率

Bash
cpufreq-set -g performance
echo "0" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
# vim /etc/default/cpufrequtils 

安装 lmsensor

lmsensor 主要用来监视服务器的温度等数据。

Bash
apt install -y lm-sensors 
yes | sensors-detect
sensors

安装 Docker

可以参见两篇博客:

Docker

Docker 高级命令

qrcode

创建时间:2023-06-18 10:18:21

最后修改:2023-06-18 10:23:51