契机是想开个Minecraft服务器和朋友一起玩。先是尝试了手机的Linux Deploy应用,原理是在安卓上运行Linux容器。但发现MC服务端进程总会莫名其妙地在小核上运行,再加上内存不太够,游戏体验不太好。不但做不到24小时无人看管运行,手机散热也支撑不住。
因此打算装一台正经的x86服务器,以后功能扩展也没什么限制,同时接触学习一下Linux。
这篇文章仅记录一下从硬件到系统安装、网络配置和终端访问的部分。
一、硬件配置服务器放在家里,为了兼顾低功耗、低预算和一定的性能,最后选择了1155的E3平台(捡垃圾)。
表内价格是2021年6月的,加上一些杂项,合计不到1000块。
- 一代E3是钎焊,二代虽然不是,但性能和功耗表现更好。不过L后缀发热小,区别不大。TDP20W,最大睿频3.4GHz,2C4T够用。
E3-1265L V1/V2,带核显,4C8T,性能更强。
E3-1220L V3@1.1GHz,极低功耗极低性能。
新平台Athlon没了解,听说也不错。
- 主板是服务器级的,支持ECC,有双千兆网卡和集显,存储扩展性好。
- 如果有视频点播等读取密集型的用途时一定要多加内存,可以减少读取保护硬盘。
- 系统盘捡的拆机MLC SSD,装Linux不需要多大空间。只要主控不坏就是稳的。
- 电源虽然最贵,但7x24小时运行需要很高的稳定性,不能马虎。
- 无线网卡就是图个方便,后来还是接了网线。
- 其他部件很随意。如果装HDD要注意下机箱共振。没有显示器和键盘,借用了下舍友的,配置完SSH就不需要了。
最后测试整机空载功耗20多瓦,几乎无噪音。若是加了HDD可能功耗要高些。
二、系统安装和访问 系统安装服务器系统选择了Ubuntu Server 20.04 LTS。官网下载镜像,用U盘安装。
安装教程网上一搜一大把,找个靠谱的照着装就行了,不赘述。
需要注意的有几点:
- 网络配置,如果还连着显示器键盘可以先不管。
- 换国内镜像软件源,中科大、清华的都可以。
- 磁盘分区设置时,如果打算装多块HDD,去掉“Set up this disk as an LVM group”的勾选。
- 勾选安装OpenSSH。
安装完成后重启,输入用户名密码登录。
此时可以更新一下软件包:
sudo apt update
sudo apt upgrade
网络配置
一台服务器必须要做的就是联网。输入ip a
命令查看网络设备,en开头为以太网卡,wl开头为无线网卡。
配置网络,需要修改netplan配置文件:
sudo nano /etc/netplan/*.yaml
如果没有默认配置文件,先生成一个:
sudo netplan generate
这里配置了有线网enp4s0和无线网wlp5s0,参考如下,注意缩进都是空格而不是tab:
# This is the network config written by 'subiquity'
network:
version: 2
# Ubuntu Server使用networkd
renderer: networkd
# 有线网卡配置
ethernets:
enp4s0:
optional: true
# 服务器固定地址,关闭DHCP
dhcp4: false
# 静态IP地址
addresses: [192.168.1.123/24]
# 网关地址,比如宽带光猫的地址
gateway4: 192.168.1.1
# DNS服务器地址
nameservers:
addresses: [114.114.114.114, 8.8.8.8]
# 无线网卡配置
wifis:
wlp5s0:
optional: true
# 接入点列表
access-points:
"接入点名称":
password: "接入点密码"
修改后Ctrl+S
Ctrl+X
保存退出,并应用该配置,如果没有错误就会生效:
sudo netplan try
此时输入ip a
查看对应的网络接口是否已经获得了地址。
也可以测试网络的连通性:
ping baidu.com -c 3
更多配置请参考:netplan网络配置 - Cloud Atlas
SSH和UFW防火墙在拔掉所有外设,使用远程终端前,不要忘记先配置一下ssh。
安装系统时如果没勾选OpenSSH,则手动安装:
sudo apt install openssh-server
修改ssh配置:
sudo nano /etc/ssh/sshd_config
首先是修改默认端口,可以选择任意不常用端口:
Port 62222
禁止root用户密码登录:
PermitRootLogin prohibit-password
ssh配置项很多,比较在意安全的同学可以在搜索引擎输入“SSH安全”,包括登录用户限制、密钥登录等。
Ubuntu Server自带UFW防火墙,查看UFW状态:
sudo ufw status verbose
如果输出为Status: inactive
,则需要启动UFW:
sudo ufw enable
UFW默认配置为允许一切出站连接,拒绝一切入站连接,因此需要手动开放端口以便使用SSH。此处开放的端口号应与ssh设置的一致:
sudo ufw allow 62222
如果有其他服务需要,也应当在UFW开放端口以正常使用。
服务器现在可以拔掉外设丢在角落里吃灰了,打开Windows PowerShell,在服务器同一局域网环境下输入(假设用户名为akarin):
ssh akarin@192.168.1.123 -p 62222
输入yes接受指纹,并输入密码,就能进到终端界面了。
退出终端只需输入logout
;重启服务器则输入sudo reboot
。
目前局域网范围内的服务器就算搭建完成了,虽然还没有任何对外服务,但已经具备了基本的扩展条件。
不过人不能一辈子待在家里用局域网,下一篇文章会讲一下互联网环境下服务器的远程访问。