HomeMiniServer: 家庭小型服务器搭建——环境搭建篇

HomeMiniServer: 家庭小型服务器搭建——环境搭建篇

碍于校园网络的限制和云服务器的昂贵价格,打算在家中搭建一个小型的服务器,用于校园网内设备互联的转发节点和其他的一些基础服务。

准备

主机配置

由于需要7x24小时运行,并且只是运行一些轻量的服务,因此对性能要求并不高,功耗低即可。在某🐟上不到200淘了个工控机,N2840,2C2T,4GB内存,120GB固态,一个千兆网卡。

获取公网ip

服务器能够正常使用,最好能有公网ip。没有其实也能解决,麻烦些罢了。公网ip需要联系运营商获取。

域名(可选)

由于家庭拨号获取的公网ip会动态更改,如果需要远程连接服务器,需要绑定一个域名来动态解析。本文使用花生壳提供的DDNS服务,因此最好有一个在花生壳注册的域名。其他注册商注册的域名也可以,需要转入解析或转入域名,或者可以先白嫖花生壳的壳域名一年用着先,到期再换。

安装 PVE 8.1

考虑到后面可能需要根据需求更换系统,便于远程更换系统和方便备份系统,给主机安装Proxmox VE系统,可以通过web面板来管理系统镜像(只是想玩玩虚拟化罢了)

经过本人实际折腾后,可能由于EFI引导的问题,某些情况下,直接安装PVE系统镜像会无法引导。本人能力不足,不会修复grub引导。经过摸索后,尝试成功了两种安装方法。

(法一)直接安装PVE系统镜像

从官网下载ISO镜像:Download Proxmox software, datasheets, agreements

具体安装过程可以参考任意安装教程或官方文档,不再赘述,下面是一个参考教程。

PVE8.0-2安装使用快速指导 - 知乎 (zhihu.com)

如果顺利安装成功,那么恭喜你,可以跳到下一步了。如果在安装最后阶段“make system bootable” 出现报错“bootloader error”,那么你可能遇到和我一样的问题了。有可能是之前安装过其他系统造成的引导错误,可以换一种方法尝试安装PVE。

(法二)从Debian上安装PVE

参考官方文档,可以先安装Debian,再在Debian上安装PVE。目前对应的最新版本为Debian12和PVE8,参照官方文档的步骤安装系统:Install Proxmox VE on Debian 12 Bookworm - Proxmox VE

安装 Debian 12

Debian – Downloading Debian下载 Debian 12 镜像后烧录到U盘,安装系统。

只需要安装 “standard system utilities” 和 "SSH server"即可,不需要安装桌面环境。

允许ssh root登录
vim /etc/ssh/sshd_config

修改PermitRootLogin prohibit-password

PermitRootLogin yes

重启ssh服务

/etc/init.d/ssh restart

配置Debian11服务器允许root用户远程SSH登录_debianssh开启root远程登录-CSDN博客

配置静态ip

服务器需要固定ip,可以在路由器中绑定设备mac和ip地址,如果路由器没有提供该功能,可以在服务器上配置静态ip地址。

安装vim, network-manager

修改配置文件

vim /etc/network/interfaces

将dhcp改为static,配置如下

auto lo
iface lo inet loopback

iface enp1s0 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.1.111/24
        gateway 192.168.1.1
        bridge-ports enp1s0
        bridge-stp off
        bridge-fd 0

重启网络服务(需要安装network-manager

systemctl restart networking.service

如何在 Debian 12 系统上分配静态 IP 地址 ? - 知乎 (zhihu.com)

下载PVE

根据官方文档的步骤依次运行命令。

echo "deb [arch=amd64] [http://download.proxmox.com/debian/pve](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](https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg) -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg 
# verify
sha512sum /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg 
7da6fe34168adc6e479327ba517796d4702fa2f8b4f0a9833f5ea6e6b48f6507a6da403a274fe201595edc86a84463d50383d07f64bdde2e3658108db7d6dc87 /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg

apt update && apt full-upgrade

换源,先备份/etc/apt/sources.list.d/路径下的所有文件,然后依次源为对应的国内镜像。

Proxmox 源使用帮助 — USTC Mirror Help 文档
佛西博客 - PROXMOX国内源设置教程 (buduanwang.vip)

- deb https://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free
- deb https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free
- deb https://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib non-free
- deb https://mirrors.ustc.edu.cn/debian-security bookworm-security main contrib
- deb https://mirrors.ustc.edu.cn/proxmox/debian bookworm pve-no-subscription

然后更新apt

apt update

安装PVE Kernel

apt install proxmox-default-kernel

systemctl reboot

安装PVE Package

apt install proxmox-ve postfix open-iscsi chrony

删除Debian Kernel

apt remove linux-image-amd64 'linux-image-6.1*'

update-grub

apt remove os-prober

安装成功后,即可打开https://192.168.1.111:8006/访问PVE控制面板

创建虚拟机 Ubuntu Server 22.04.3

安装系统镜像

从官网下载ISO镜像:Get Ubuntu Server | Download | Ubuntu

访问https://192.168.1.111:8006/进入PVE面板

上传ISO镜像

![[Pasted image 20240129183649.png]]

创建虚拟机,一路默认即可,注意CPU类别要选择与主机CPU相对应的型号

配置静态ip

系统运维|如何在 Ubuntu 服务器 22.04 上设置静态 IP 地址 (linux.cn)

sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak
sudo vim /etc/netplan/00-installer-config.yaml

修改如下

network:
  ethernets:
    ens18:
      addresses:
        - 192.168.1.110/24
      nameservers:
        addresses: [192.168.1.1, 8.8.8.8]
      routes:
        - to: default
          via: 192.168.1.1
  version: 2

应用更改

sudo netplan apply

安装lxqt桌面和falkon浏览器

为了方便通过浏览器访问网关,便于调试维护,需要安装一个桌面环境和浏览器。尽量选择了轻量级的桌面和浏览器,在需要的时候启动。

安装 lxqt

shell中安装后重启即可

sudo apt install lxqt

sudo reboot

How to Install LXQt on Ubuntu 22.04 or 20.04 - LinuxCapable

安装 falkon

安装好 lxqt 桌面后,在shell中输入

sudo snap install lxqt

Download - Falkon

关闭和开启图形化界面

平常使用时,我们一般不开启图形化界面,只在必要时开启。

可以通过快捷键切换终端和桌面:切换到终端命令行:ctrl + alt + f2;切换回图形界面:ctrl + alt + f1

查看正在运行的服务:sudo service --status-all

其中,sddmlxqt 桌面服务。

关闭服务:sudo systemctl stop sddm,此时,桌面被关闭

设置默认启动到多用户目标:sudo systemctl set-default multi-user

手动启动GUI:sudo systemctl start sddm

如何在Ubuntu 20.04 Desktop 中禁用/启用图形用户界面_ubuntu server sudo systemctl set-default grap-CSDN博客

在关闭图形界面后,缓存不会立即清除,需要手动清理缓存:

# 查看内存占用情况
free -h

# 清理buffer
sudo sync && sudo echo 3 > /proc/sys/vm/drop_caches

# 如果提示没有权限,先进入超级管理员模式
sudo su
sync && echo 3 > /proc/sys/vm/drop_caches

Linux清理buff/cache的方法-CSDN博客

配置DDNS

环境要求

  • 公网 ip
  • 域名(可选,先白嫖)

在主机PVE系统上安装花生壳客户端

由于PVE系统是基于Debian的,花生壳的客户端可以直接安装在PVE系统上。

从web控制面板或ssh登录shell终端

![[Pasted image 20240129210934.png]]

按步骤下载花生壳客户端

Linux版使用教程-贝锐官网 (oray.com)

进入客户端下载页面花生壳客户端官方下载 - 贝锐花生壳官网 (oray.com),选择linux->Ubuntu Linux(X86_64)下载,复制命令行后,在终端运行
在这里插入图片描述

wget "https://dl.oray.com/hsk/linux/phddns_5.3.0_amd64.deb" -O phddns_5.3.0_amd64.deb

下载完成后,查看下载的安装包:

![[Pasted image 20240129211139.png]]

安装

dpkg -i phddns_5.3.0_amd64.deb

安装成功后,会显示设备SN码

![[Pasted image 20240129211424.png]]

登录花生壳控制台绑定设备并启动DDNS服务

访问http://b.oray.com登录控制台,通过SN码登录;如果之前注册登录过,会直接登录。

我是直接登录了控制台,登陆后,在设备列表 -> 添加设备 添加SN码绑定设备。然后点击 登录账号输入默认密码登录。

登录成功后,在PVE主机终端,输入

phddns start

启动DDNS

可以通过 phddns status 查看设备状态

![[Pasted image 20240129212117.png]]

[!HINT] 直接输入phddns 可以查看可选参数

![[Pasted image 20240129212157.png]]

检查域名解析状态

在花生壳控制台,域名列表 -> 默认赠送的域名 -> 诊断,可以看到域名是否正常解析。

![[Pasted image 20240129212548.png]]

路由器/网关设置端口映射

动态域名解析成功后,还不能直接访问到内网的PVE主机,需要设置端口映射,从而访问内网的指定端口。

登录路由器/网关,找到提供的端口映射功能,将PVE主机ip的内部端口8006映射到一个指定的外部端口上(如10888),协议TCP或BOTH。这样一来,就可以通过外网访问PVE控制面板了。

测试是否配置成功,首先 更换网络,使用手机热点或其他网络(重要,同一网段下无法通过域名访问),然后,在浏览器中输入https://yourdomain.fun:10888即可访问PVE登录界面,这里的域名和端口号替换成实际使用的值。

[!WARNING] 后记:这是一种极不安全的方式,请不要将PVE的管理页面暴露在公网上。如果需要外网访问,请使用VPN访问。

其他虚拟机外网访问

将DDNS服务直接运行在PVE系统上的好处是,只要PVE系统上的客户端一直运行,那么同网段下的所有设备和虚拟机都可以通过配置端口映射访问。

举例来说,之前已经在PVE上创建了一个 Ubuntu Server 虚拟机,如果想要通过外网登录ssh,只需要将 Ubuntu Server虚拟机ip的22端口映射到外部指定端口上,然后在外网输入

ssh username@yourdomain.fun -p [port]

这里username替换成登录用户名;yourdomain.fun 替换成域名;[port]替换成实际设置的外部端口。

同样的,其他的服务也可以通过绑定指定外部端口来访问。

[!WARNING] 请不要暴露你的web服务端口

DDNS更换自己的域名

如果觉得白嫖的花生壳域名太难记,自己已经有域名,但又不想在花生壳付费转入解析或再注册新的域名。可以创建一个子域名,添加一条CNAME记录到花生壳域名。

比如,你有一个在腾讯云DNS解析的域名mydomain.com,和一个花生壳送的壳域名hskdomain.vicp.fun,登录腾讯云控制台,在你的域名的记录管理中,增加一条记录

主机记录记录类型记录值
homeCNAMEhskdomain.vicp.fun

等待解析生效后,就可以使用自己的域名代替壳域名来访问内网的主机了。

Zerotier

弄完之后想了下,在公网上暴露端口太危险了,也容易被运营商封禁。考虑到服务器只是自己的设备用,并不打算公开,想到可以组建VPN访问。

需要在PVE系统和每个虚拟机上分别安装 zerotier,加入到VPN后,就可以像局域网的方式访问各主机。

安装zerotier

Download (zerotier.com)

curl -s https://install.zerotier.com | sudo bash

zerotier-cli 使用

# 查看帮助
sudo zerotier-cli -h
# 查看状态
sudo zerotier-cli info
# 加入网络
sudo zerotier-cli join <networkid>
# 查看网络列表
sudo zerotier-cli listnetworks

开启与关闭 zerotier-one 服务

linux上的 zerotier以服务的方式运行,sudo service --status-all 可以查看当前的所有服务,可以看到,zerotier服务的名称是zerotier-one

![[Pasted image 20240130142239.png]]

可以通过以下命令来开启和关闭服务

sudo systemctl start zerotier-one
sudo systemctl stop zerotier-one

小结

至此,我们已经成功实现了家庭小型服务器的环境搭建。我们为服务器安装了PVE操作系统,并在上面运行了UbuntuServer虚拟机。实现了外网通过域名访问内网端口,且可以灵活开启图形化界面来设置网关。

还记得搭建这台服务器的初衷吗?下一步,我们将在这台服务器上部署流量转发和网盘等服务,充分发挥其公网优势,连接起校园网内的各个设备。

  • 17
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值