首页 程序笔记 如何在 Hetzner 根服务器上安装 Debian 12

如何在 Hetzner 根服务器上安装 Debian 12

Debian 12(Bookworm) 是 Debian 的最新稳定版本,比其前身 Bullseye 附带了更多的软件。如果您对在 Hetzner 根服务器上安装 Debian 12 感兴趣,那么本文就是为您准备的。 Hetzner Cloud 提供专用服务器产品,让您能够完全访问和控制以根据自己的喜好配置服务器。请访问 Hetzner Online GmbH,查看专用服务器硬件的服务器拍卖,每月支付的价格极具竞争力。

我们有一台具有以下硬件规格的专用服务器。

CPU: Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz (Cores 12)
Memory: 256GB RAM
Disk: 2 x 480GB SSD
Network: 1Gbit
IPV4 Addresses: 1 x IPV4 public address

您从 Hetzner 订购的每台根服务器都附带一个 IPv4 公共 IP 地址。但可按需提供额外的公共 IP 地址。

1) 订购专用服务器

访问 https://www.hetzner.com/sb 并搜索服务器。您可以按价格、位置、CPU、内存、驱动器等过滤搜索结果

2) 进入救援模式

订单完成后,登录并访问 Hetzner 根服务器控制台,然后导航至主要功能 > 服务器 > 服务器标签 > 救援部分,以救援模式启动服务器。

选择 Linux 操作系统和适合您的 CPU 的架构。选择公钥或密码身份验证方法,然后激活救援系统

在“重置”部分下重新启动服务器以使用救援系统。

3)为installimage创建安装配置

服务器重新启动后,使用 root 用户名和密码/密钥身份验证选项通过 ssh 连接到服务器。

$ ssh root@ServerIP
Linux rescue 6.5.5 #1 SMP Mon Sep 25 03:07:50 UTC 2023 x86_64

-------------------------------------------------------------------------------------------------------------------------

  Welcome to the Hetzner Rescue System.

  This Rescue System is based on Debian GNU/Linux 12 (bookworm) with a custom kernel.
  You can install software like you would in a normal system.

  To install a new operating system from one of our prebuilt images, run 'installimage' and follow the instructions.

  Important note: Any data that was not written to the disks will be lost during a reboot.

  For additional information, check the following resources:
    Rescue System:           https://docs.hetzner.com/robot/dedicated-server/troubleshooting/hetzner-rescue-system
    Installimage:            https://docs.hetzner.com/robot/dedicated-server/operating-systems/installimage
    Install custom software: https://docs.hetzner.com/robot/dedicated-server/operating-systems/installing-custom-images
    other articles:          https://docs.hetzner.com/robot

-------------------------------------------------------------------------------------------------------------------------

Rescue System up since 2023-10-09 11:21 +02:00

Hardware data:

   CPU1: Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz (Cores 12)
   Memory:  257647 MB
   Disk /dev/sda: 480 GB (=> 447 GiB) doesn't contain a valid partition table
   Disk /dev/sdb: 480 GB (=> 447 GiB) doesn't contain a valid partition table
   Total capacity 894 GiB with 2 Disks

Network data:
   eth0  LINK: yes
         MAC:  xxxxxx
         IP:   yyyyyy
         IPv6: zzzzzz
         Intel(R) Gigabit Ethernet Network Driver

从输出中我们可以确认服务器有两个磁盘@480GB

Disk /dev/sda: 480 GB (=> 447 GiB) doesn't contain a valid partition table
Disk /dev/sdb: 480 GB (=> 447 GiB) doesn't contain a valid partition table

我们将在非冗余 RAID 0 配置中配置它们。首先创建安装程序配置文件。

vim install-config.txt

修改下面提供的示例配置参数以满足您的安装要求。

# Define disks to be used
DRIVE1 /dev/sda
DRIVE2 /dev/sdb

# Enable Raid 0
SWRAID 1
SWRAIDLEVEL 0 # Use 1 for Raid 1
BOOTLOADER grub
HOSTNAME deb12.example.com # Set correct hostname
PART /boot ext4 512M
PART lvm vg0 all
LV vg0 root / ext4 50G
LV vg0 swap swap swap 8G
LV vg0 var /var  ext4  300G
# List images with ls /root/.oldroot/nfs/install/../images
IMAGE /root/images/Debian-1202-bookworm-amd64-base.tar.gz

根据存储硬件和可用空间配置您自己的分区方案。

4) 在 Hetzner 根服务器上安装 Debian 12 (Bookworm)

创建自定义配置后,适用于安装 Debian 12 Linux 系统。

# installimage -a -c install-config.txt

应立即开始安装。

Found AUTOSETUP file '/autosetup'
Running unattended installimage installation ...

DRIVE1 /dev/sda
DRIVE2 /dev/sdb
SWRAID 1
SWRAIDLEVEL 0 # Use 1 for Raid 1
BOOTLOADER grub
HOSTNAME myrootserver.computingforgeeks.com
PART /boot ext3 512M
PART lvm vg0 all
LV vg0 root / ext4 50G
LV vg0 swap swap swap 8G
LV vg0 var /var  ext4  300G
IMAGE /root/.oldroot/nfs/install/../images/Debian-1201-bookworm-amd64-base.tar.gz

WARNING:
  Starting installation in 20 seconds ...
  Press X to continue immediately ...
  Installation will DELETE ALL DATA ON DISK(s)!
  Press CTRL-C to abort now!

安装完全自动化,生成配置后无需用户输入。

Hetzner Online GmbH - installimage

  Your server will be installed now, this will take some minutes
             You can abort at any time with CTRL+C ...

         :  Reading configuration                           done
         :  Loading image file variables                    done
         :  Loading debian specific functions               done
   1/17  :  Deleting partitions                             done
   2/17  :  Test partition size                             done
   3/17  :  Creating partitions and /etc/fstab              done
   4/17  :  Creating software RAID level 0                  done
   5/17  :  Creating LVM volumes                            done
   6/17  :  Formatting partitions
         :    formatting /dev/md/0 with ext4                done
         :    formatting /dev/vg0/root with ext4            done
         :    formatting /dev/vg0/swap with swap            done
         :    formatting /dev/vg0/var with ext4             done
   7/17  :  Mounting partitions                             done
   8/17  :  Sync time via ntp                               done
         :  Importing public key for image validation       done
   9/17  :  Validating image before starting extraction     done
  10/17  :  Extracting image (local)                        done
  11/17  :  Setting up network config                       done
  12/17  :  Executing additional commands
         :    Setting hostname                              done
         :    Generating new SSH keys                       done
         :    Generating mdadm config                       done
         :    Generating ramdisk                            done
         :    Generating ntp config                         done
  13/17  :  Setting up miscellaneous files                  done
  14/17  :  Configuring authentication
         :    Fetching SSH keys                             done
         :    Disabling root password                       done
         :    Disabling SSH root login without password     done
         :    Copying SSH keys                              done
  15/17  :  Installing bootloader grub                      done
  16/17  :  Running some debian specific functions          done
  17/17  :  Clearing log files                              done

                  INSTALLATION COMPLETE
   You can now reboot and log in to your new system with the
 same credentials that you used to log into the rescue system.

安装 Debian 12 后,请重新启动服务器以开始使用它。

# shutdown -r now

使用为服务器配置的公共 IP 地址可以通过 SSH 进行远程访问。

$ ssh root@serverip
Enter passphrase for key '/Users/jmutai/.ssh/id_rsa':
Linux pve01 6.2.16-15-pve #1 SMP PREEMPT_DYNAMIC PMX 6.2.16-15 (2023-09-28T13:53Z) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

可以使用下面共享的命令检查磁盘分区方案和 LVM 分区。

# lsblk
NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda              8:0    0 447.1G  0 disk
├─sda1           8:1    0   512M  0 part
│ └─md0          9:0    0   511M  0 raid1 /boot
└─sda2           8:2    0 446.6G  0 part
  └─md1          9:1    0   893G  0 raid0
    ├─vg0-root 253:0    0    50G  0 lvm   /
    ├─vg0-swap 253:1    0     8G  0 lvm   [SWAP]
    └─vg0-var  253:2    0   300G  0 lvm   /var
sdb              8:16   0 447.1G  0 disk
├─sdb1           8:17   0   512M  0 part
│ └─md0          9:0    0   511M  0 raid1 /boot
└─sdb2           8:18   0 446.6G  0 part
  └─md1          9:1    0   893G  0 raid0
    ├─vg0-root 253:0    0    50G  0 lvm   /
    ├─vg0-swap 253:1    0     8G  0 lvm   [SWAP]
    └─vg0-var  253:2    0   300G  0 lvm   /var

# pvs
  PV         VG  Fmt  Attr PSize   PFree
  /dev/md1   vg0 lvm2 a--  893.00g 535.00g

# vgs
  VG  #PV #LV #SN Attr   VSize   VFree
  vg0   1   3   0 wz--n- 893.00g 535.00g

# lvs
  LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root vg0 -wi-ao----  50.00g
  swap vg0 -wi-ao----   8.00g
  var  vg0 -wi-ao---- 300.00g

从卷组中的可用空间扩展 LVM 很容易。在此示例中,我们将额外的 50GB 添加到 /dev/vg0/var 逻辑卷。

# lvextend -r -L +50G /dev/vg0/vg0

通过查询操作系统版本信息确认 Debian 安装成功:

root@proxmox ~ # cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

阻止默认启用的 rpcbind 端口 111

iptables -A INPUT -p tcp -m tcp --dport 111 -j DROP
iptables -A INPUT -p udp -m udp --dport 111 -j DROP
sudo /sbin/iptables-save

您可以选择完全禁用该服务。

sudo systemctl disable --now rpcbind rpcbind.socket

升级您的系统并更新所有已安装的软件包。

apt update && apt -y full-upgrade
apt install wget vim sudo bash-completion
[ -f /var/run/reboot-required ] && reboot -f

如果您需要安装 Proxmox VE,请查看以下文章。

  • 如何在 Debian 12 上安装 Proxmox VE 8 (Bookworm)

2

站心网

Debian 12(Bookworm) 是 Debian 的最新稳定版本,比其前身 Bullseye 附带了更多的软件。如果您对在 Hetzner..

为您推荐

卸载阿里云、腾讯云服务器监控系统教程

所周知,阿里云、腾讯云的服务器都自带监控(AliYunDun/阿里云盾/安骑士),大家都不想自己的所作所为都被监控着,比如我在上面安装XX服务,一旦云监控查到,会被警告,很麻烦,我们总想着自己买的东西能够完全自己..

服务器安装数据库MySQL8.0版本,打包导入到MySQL5.6失败的结局方式

最近数据库升级为mysql8.0,在使用过程中发现一些问题,首先mysql8.0有很多新特性,对服务器配置要求较高,所有就考虑把数据库版本切换到MySQL5.6,经过多出测试处理发现在8.0数据库打包的数据导入到5.6总是报错,或..

ASP.NET如何将Views文件夹从项目分离

将 Views 文件夹从 ASP.NET 项目中分离是一个常见需求,比如为了实现模块化或分层架构。以下是实现此功能的完整步骤,从项目中分离 Views 文件夹,将其移到另一个独立的文件夹或项目中,并确保视图渲染仍然正常。1. ..

如何让AI写出Google认可的文章?

让 AI 写出 Google 认可的文章,核心在于满足 Google 的搜索排名算法要求。这些要求通常围绕以下几个关键点展开:内容质量、用户体验 和 SEO 优化。以下是详细指导:一、内容质量确保文章原创且有价值避免抄袭:Goog..

最新CentOS7安装搭建shadowsocks服务端+客户端使用图文教程

使用的CentOS版本是7.9,其他版本也可以。超级推荐的是搭建shadowsocks服务端,安装配置都很简单,几分钟就搞定,客户端支持PC移动端,下面是安装shadowsocks的过程,只要复制粘贴命令就行了,文件夹路径都不需要改..

如何从.NET Framework迁移到.NET Core或.NET 6/7?

从 .NET Framework 迁移到 .NET Core 或 .NET 6/7 是一个提升性能和跨平台能力的关键过程。以下是迁移的主要步骤和注意事项:迁移步骤1. 评估当前项目依赖项检查:确保所有第三方库和NuGet包都有与 .NET Core/.NET 6..

如何优化ASP.NET Core应用的性能?

优化ASP.NET Core应用性能需要从代码、数据库、配置、服务器和部署等多个层面进行综合考虑。以下是一些优化ASP.NET Core应用性能的关键方法和技巧:1. 代码级优化使用异步编程:避免阻塞线程,通过async和await处理I..

sourcetree安装跳过注册方法

SourceTree下载提取码: ni9m 需翻墙或者破解注册当前只有Win的版本,Mac自行百度很多人用git命令行不熟练,那么可以尝试使用sourcetree进行操作。然鹅~~sourcetree又一个比较严肃的问题就是,很多人不会跳过注册或者..

chrome 开发者工具如何查看元素:hover时的样式

在 Chrome 开发者工具中查看元素的 :hover 样式,可以通过以下步骤实现:打开开发者工具:右键点击页面中的元素,然后选择“检查(Inspect)”或按下 F12 或 Ctrl + Shift + I (Windows) / Cmd + Option +..

如何防止web应用DOS攻击?

防止web应用DOS攻击的最好的方法是什么? 如何防止web应用DOS攻击? 与所有的拒绝服务(DOS)攻击相关的一件事是他们都不可能避免。最好的方法是把重点放在减少影响DOS攻击的方法上。如果你有一个网络,黑客想要玩一玩..

数据库SQL Server2014和SQL Server2019的区别和如何选择?

SQL Server 2014和SQL Server 2019是微软公司发布的两个版本的数据库管理系统,它们在性能、安全性以及可扩展性等方面各有特点。在选择这两个数据库版本时,需要根据系统需求、预算状况以及技术团队的熟悉程度等因素..

MySQL如何建数据库

MySQL是一款非常流行的关系型数据库管理系统。无论是在企业还是个人项目中,都经常使用MySQL数据库。在使用MySQL之前,需要先创建一个数据库。本文将介绍如何建立MySQL数据库。一、安装MySQL在开始建立MySQL数据库之..

jwt是什么?.NET Core API如何使用JwtBearer验证

JWT是JSON Web Token的缩写,是一种开放标准(RFC 7519),用于在网络上以安全和可靠的方式传输信息。它是一种被广泛使用的跨域身份验证解决方案,可以将用户信息、访问权限等加密后存储在Token中,然后通过网络传输..

CentOS7部署发布.NET Core网站Ngnix安装配置图文教程

Linux服务器部署.NET Core网站运行速度更快,最近打算把原来windows server上的网站迁到linux的云服务器上。 顺便记录一下CentOS7安装.NET运行环境,安装和配置Ngnix的过程。首先安装.NET运行时sudorpm-Uvhhttps://p..

什么是微服务架构?它与单体应用程序架构有什么区别?如何在.NET中实现微服务架构?

微服务架构是一种软件架构风格,通过将应用程序拆分为一组小型、自治的服务来构建应用程序。每个服务都专注于解决特定的业务功能,并通过轻量级的通信机制进行交互。这些服务可以独立开发、部署和扩展,可以使用不同..

winform如何隐藏边框和标题栏

在WinForms中,可以通过以下步骤来隐藏窗体的边框和标题栏:打开WinForms应用程序的窗体设计器。选择窗体控件,然后在属性窗口中找到FormBorderStyle属性。将FormBorderStyle属性设置为None,以指示窗体不显示边框。..

IIS使用Certify安装Let's Encrypt免费SSL证书

域名疑似被流量劫持,不仅被腾讯网址安全中心检测成危险网站,还间歇性出现访问域名被302重定向到Localhost。于是决定响应百度站长平台的号召,进行HTTPS改造。不用担心HTTPS后的SEO问题,百度站长平台官方已经表态..

程序员如何量化炒股?原理是什么?

作为程序员,可以运用编程技能和量化分析来帮助量化炒股。量化炒股有哪些步骤和方法?收集数据:需要收集有关股票市场的数据。可以从各种来源获取这些数据,如Yahoo财经、谷歌财经、股票交易所等。可以使用Python等..

如何让Google谷歌搜索引擎找到并收录网站

Google谷歌会使用大量计算机来抓取网络上数十亿的页面, 这个名为 Googlebot 的抓取工具基本上从以前抓取生成的网页 URL 列表开始,然后使用 Google Search Console 中提供的站点地图数据扩充这些页面。 在抓取过程..

如何把网站提交到Google谷歌搜索引擎google search console收录

发布新的网站后,它并不会立即被搜索引擎收录。为了让网站出现在搜索结果中,Google 需要“抓取”您的内容并“编制索引”。 这会在数天或数周内自动发生,但如果您是网站所有者,则可以在Google search console手动..

发表回复

返回顶部