【万字长文】低配电脑安装最新Ubuntu,变身低功耗,功能全的Linux家庭服务器

这里是除了linux,其他都聊的论坛。 本人在论坛潜水很长时间,今天来贡献一点Linux教程。 本文记录使用最新版Ubuntu24.04给一个老旧平板重装系统,做成低功耗家庭服务器。三期视频整合成一篇长文,分为三部分 安装系统,装完系统必做的十件事,公网访问内网设备

安装系统

Linux发行版Ubuntu24.04发布了,Unbuntu一个开源免费的Linux操作系统,包括服务器版,桌面版,IoT(物联网版)。 本次发布的24.04是LTS,LTS的意思是"长期支持",所有用户在支持期间都可以免费获得系统升级与安全补丁。一般支持期限为5年,本次的Pro版本会再增加5年的维护期,购买Legecy Support再增加2年,Pro版对个人或者家庭用户是免费的,这样就可以获得5+5+2也就是长达12年(免费10年)的长期维护时间,这在Linux发行版中是非常罕见的。如果您现在想尝试一下Linux操作系统,今天就是一个绝好的契机。 本期视频我用一个超级旧的平板电脑,手把手演示一下如何安装最新版Ubuntu操作系统。看看能不能从垃圾箱里把他救活。

开始之前我先讲一下准备工作:首先一个电脑,需要至少4GB内存与25GB的硬盘, 我们还需要一个U盘,至少16GB大小,等下U盘会被格式化,所以请将U盘内容备份出来。

1.下载工具

我们去官网下载Ubuntu镜像,https://ubuntu.com/download/desktop ,点击下载Ubuntu桌面版,就下载最新的24.04 LST,点击下载即可。

下载这个的同时我们还需要下载一个U盘烧录工具,官网推荐的是Etcher,我们进入Etcher官网

我是Windows电脑,我就下载这个Windows的便携版。

2.烧录镜像

打开Etcher,将U盘插到电脑上,将启动镜像烧录到U盘

从文件烧录,选择下好的iso ubuntu镜像

目标磁盘选择U盘

点击开始,等待进度条走完,启动U盘制作成功

3.安装系统

将制作好的启动U盘插到需要安装系统的电脑上,设置BIOS使用USB启动。 出现菜单以后选择 Try and Install Ubuntu

选择简体中文,一路点击下一步

我选择将磁盘格式化,如果需要安装双系统可以选择上面那个

安装完成后点击立即重启,拔掉U盘并按回车键。 最终完成操作系统安装。

4.免费激活Ubuntu Pro

登录官网,注册一个账户

https://login.ubuntu.com

选择我没有账户,填一个邮箱。

提交后 进入邮箱验证一下邮箱。

打开
https://ubuntu.com/pro/dashboard
复制个人token

在Ubuntu的开机欢迎页面点击下一步

将token复制到这里

完成绑定,获得额外5年的免费维护期
image

Linux家庭服务器,必做的十件事

本期就讲一下装完系统必须要干的十件事。把他废物利用,变成一个既省电又好用全能的家庭服务器。

安装vim

ubuntu自带的文本编辑器是vi,很难用,我需要安装一个他的升级版vim。

打开命令行输入以下命令

sudo apt update
sudo apt install vim

绑定静态IP

我需要给家庭服务器设置一个局域网的固定IP,如果IP地址总是变来变去,远程连接会很不方便。每家路由器都不一样,这里可能要自己做下功课。我以小米路由器举例,打开路由器设置—>局域网设置–>DHCP静态IP设置,将我家庭服务器分配一个固定IP,比如我分配的是192.168.31.207。这样IP地址就不会变来变去了。 配置完成后记得重启路由器。

安装RustDesk

作为一个服务器,我只需要让他安静地躺着柜子里,鼠标键盘显示器这些都不会再用了。所以我们下一项工作就是配置远程连接,从而拔掉鼠标键盘。

再添加一个桌面的远程访问,这里我选择开源免费的远程控制软件 RustDesk

将安装包放在桌面,右键打开命令行

image

执行以下命令

sudo apt install ./rustdesk-1.2.3-2-x86_64.deb

安装好rustdesk,我们需要进行一些设置,Ubuntu默认的显示器程序是wayland,在息屏状态下远程软件无法唤醒屏幕。为了能唤醒屏幕我们需要改成xorg。

sudo vi /etc/gdm3/custom.conf		

修改这一行

#WaylandEnable=false

将前面的注释去掉,然后点击ESC,然后输入 :wq! 保存文件 保存文件,然后输入命令重启桌面。

sudo systemctl restart gdm3

打开桌面上的Rustdesk 设置两个地方

设置->安全->允许IP直接访问,这样在家里就可以不使用中继服务器,而是IP直连,提高速度

image

设置->安全->密码 使用固定密码,这样主控方就可以使用固定密码控制

安装SSH-server

除了桌面的远程控制能力,我们还需要添加ssh的远程访问功能。

我们执行

sudo apt openssh-server

安装SSH server,这样服务器就可以通过ssh的方式链接。

安装Linux原生微信

目前Linux微信只专供几个国产Linux操作系统,还没有Ubuntu版,这里我选择的是开发麒麟(openkylin)操作系统提供的安装包。

wget https://software.openkylin.top/openkylin/yangtze/pool/all/wechat-beta_1.0.0.238_amd64.deb
sudo apt install ./wechat-beta_1.0.0.238_amd64.deb

SMB文件共享

我们可以在Ubuntu服务器上开启SMB文件共享,这样可以很方便的在手机电脑上查看家庭服务器下载的电影,电视剧,爬爬虾有一整个视频介绍如何使用SMB文件共享,构建家庭影音服务,感兴趣的观众朋友可以找来看下。

执行命令

sudo apt install samba
sudo vi /etc/samba/smb.conf

最下面粘贴这些内容

[ubuntu_smb]
path = /home/tech-shrimp
available = yes 
browseable = yes 
public = yes 
writable = yes 
create mask = 0755
security = share
force user = tech-shrimp
force group =tech-shrimp

点击ESC,然后输入 :wq! 保存文件

重启smb服务

sudo service smbd restart

安装Docker

Docker是一种应用程序的容器化部署方案,简单来说可以将整个应用程序,配置,甚至依赖以及库函数等一起打包,然后放到一个隔离环境中运行。我有个建议就是如果软件提供了Docker的安装方式,那就尽量用docker装吧。用上docker,只要别人那里能跑的程序,到你机器上一定也能跑。完全不用担心依赖兼容性,系统差异等棘手问题

安装docker本体,需要执行以下命令。

sudo apt-get install ca-certificates curl
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get install docker-ce docker-ce-cli containerd.io

安装HomeAssistant

Home Assistant 是一个智能家居的终极解决方案,可以聚合各个厂商的设备,进行定制化管理。可以自己写代码扩展应用,也可以接入各类AI大语言模型等等。爬爬虾有其他教程专门介绍HomeAssistant:
智能家居终极方案!Win一键安装HomeAssistant,开源免费,简单易学低成本。_哔哩哔哩_bilibili

我用AI大模型管理智能家电,全网唯一完整教程+源代码_哔哩哔哩_bilibili

手机静音找不到怎么办?原创全网最优雅的找手机方法。米家智能网关2接入home assistant_哔哩哔哩_bilibili

# 创建配置文件文件夹
mkdir -p /home/tech-shrimp/homeassistant
# 启动Docker
sudo docker run -d \
  --name homeassistant \
  --privileged \
  --restart=unless-stopped \
  -e TZ=Asia/Shanghai \
  -v /home/tech-shrimp/homeassistant:/config \
  -v /run/dbus:/run/dbus:ro \
  --network=host \
  ghcr.io/home-assistant/home-assistant:stable

安装小雅Alist

小雅Alist是一个阿里云盘的资源聚合库。安装好它以后,可以瞬间多出几百T的影音资源。

首先获取两个token:

获取短Token 阿里云盘/分享 | AList文档

获取长Token:

获取File ID, 打开

https://www.aliyundrive.com/s/rP9gP3h9asE

转存 https://www.aliyundrive.com/s/rP9gP3h9asE 到自己网盘,然后浏览器打开转存后的目录,浏览器的url https://www.aliyundrive.com/drive/file/resource/xxxxxxxxxxxxxxxxxxxxxxxxxx 红色这一串就是File ID

执行一键脚本

sudo bash -c "$(curl http://docker.xiaoya.pro/update_new.sh)" -s host

访问地址

http://你的服务器IP:5678

钉钉机器人

可以使用docker部署一个钉钉聊天机器人,钉钉有个好处是不需要公网IP就能使用,还能接入智能家居,这里有详细教程,篇幅有限我就不细讲了。

内网访问

这是我用旧电脑改造的一个的家庭服务器,目前为止它还只能在家里用内网访问。本期视频使用两种方案实现公网访问内网设备,第一个是IPv4端口转发,第二个是使用ipv6公网IP,这两种方案免费,兼容性好,速度稳定。

视频开始之前我先简单介绍一些关于内外网的基础概念,首先是从IP地址讲起。

IP地址

开始之前,我先简单介绍一下关于内外网的基础概念。首先从IP地址讲起,在计算机网络中,每个设备都需要一个唯一的地址来进行通信,这个地址称为IP地址。为了方便记忆,IPv4地址一般分为四部分,每个部分都由0到255构成,这样IPv4地址总共将近42亿个。然而,全球的入网设备其实早就超过了这个数量。事实上,在2019年底,全球可分配的IPv4地址已经宣告耗尽。 为了解决IPv4地址枯竭的问题,互联网引入了NAT机制,将网络划分成局域网与公网,让多个局域网设备就可以共用同一个公网IP。解决IPv4地址枯竭还有另一种方案,就是IPv6。IPv6的长度是128位的二进制,足够给地球上每粒沙子都分配一个地址。视频的后半段,我会介绍IPv6以及其使用方法。前半段我们先关注于IPv4。为了方便理解,我们可以将互联网中的数据想象成快递包裹,把IP地址想象成门牌号。公网IP指的是互联网上直接可达的地址,比如像这种独门独栋的大别墅,快递员找到这个门牌号,就能立即把快递送到这家人。

一般情况下,我们购买的云服务器都是自带固定的公网IP。正如前面提到的,公网IP地址已经耗尽,许多上网设备只能共用同一个公网IP地址。一整个小区的住户都是共用同一个门牌号,如果想让快递送上门,还需要进一步的信息,比如小区的1号楼2单元301等等。在这个例子中,小区的门牌号就是公网IP地址,这里的几号楼几单元则是内网IP地址。

申请公网IP

我们来看一个典型的家庭网络:光猫拨号接入了互联网,运营商为其分配了一个IP地址。此时分配给光猫的IP地址可能是一个公网IP地址,也可能不是。有时候运营商为了节约使用公网IP,会在光猫上层再套一层NAT网络,这样公网IP归属于运营商的上层路由器,

路由器只分配到一个大内网的IP。这种俄罗斯套娃行为被称为多层NAT。

那么如何来确认光猫是不是一个公网IP呢?我们打开浏览器,一般是输入这个地址:进入光猫设置192.168.1.1。回车,这里选择其他账号登录,密码的话一般可以从光猫的背面找到。这里我就把这个密码填进去,点击状态,点击网络信息。看到这里的INTERNET_R_VID这一项,右边这个IP地址就是运营商给光猫分配的IP。

百度搜索IP地址就可以了。这里也显示了一个IP地址,如果这里的IP地址跟刚才的IP地址能对上,

那么恭喜你,你的光猫拥有独立公网IP。如果这里显示的不一样,那它不是一个公网IP。我们可以给运营商打电话申请,具体话术就说家里购买了企业级监控,需要开通公网IP。每个地区差异很大,比如我这边的山东联通就默认自带公网IP。打电话究竟能不能顺利开通,大家可以在评论区讨论下。

如果实在开通不了,还有一种使用IPv6公网地址的方案。视频的后半段我会讲到。

典型家庭网络

我们申请好公网IP,这时候光猫就是一个NAT网关,它拥有一个公网IP,一个内网IP。在这个例子中,公网IP是39.98.206.115,内网IP是192.168.1.1。一般来说,光猫后面会接一个路由器,路由器作为NAT网关构建了一个次级局域网。路由器的上级网络IP是192.168.1.2,它组成的次级局域网是192.168.31.1开头的。家里的其他设备,例如手机电脑,都会连接到路由器上,路由器会为他们分配内网IP地址,都是192.168.31.某某某开头的。

光猫改桥接

在这种拓扑结构中,家庭内部有两层的局域网。我们可以简化一下,也就是将光猫作为一个光电转换的设备,而不再负责拨号了。这种方式称为光猫改桥接,路由器则承担了拨号的功能,公网IP地址直接落在了路由器上。

那这样的好处可以简化网络拓扑结构,并且充分利用路由器的性能,可以更方便地从路由器统一管理家庭网络。

具体如何给光猫改桥接呢?这里我建议直接给运营商打电话,运营商一般可以远程下发指令,并且将拨号的账号名密码发给你。如果能拿到光猫的超级管理员密码的话,也可以手动操作。下面我就来演示一下。光猫的型号五花八门,这个方法也只是针对我自己家的这个型号管用。大家可以自己上网查一下自己光猫型号的管理员密码。如果找不到,直接给运营商打电话就可以了。

进入光猫管理后台 一般是192.168.1.1,使用超级管理员账户密码登录。 把这里的模式改成bridge桥接。

下面这些都不用动,然后直接点击确定。 我们打开路由器的设置:192.168.31.1,进入常用设置上网设置。这里上网方式改成拨号上网,账号名填写宽带拨号的账号名。

密码填好以后,这里点击应用。这里显示拨号成功,也就是光猫改桥接这一步就成功了。

端口转发

在这种网络结构中,从内网访问外网服务是很简单的。只需要把数据交给路由器,然后路由器再根据公网IP地址转发给对应的服务器即可。但是从外网访问内网服务器就有些困难了,因为从外网来的数据包只能到路由器这一层,路由器并不清楚具体将数据转发到哪个设备上处理。这时候我们可以设置端口转发,比如我可以配置路由器,强制要求路由器将接收到来自4567端口的数据全部交给a电脑处理,将来自4568端口数据交给内网的b电脑处理。

这样不同端口的数据就有了正确的去处,外网也就可以正确访问内网的服务了。

我们马上来配置端口转发。这里我的光猫已经改桥接了,当然不改桥接也可以,那就需要配置两次端口转发:先从光猫转路由器,路由器再转内网设备。这里我先使用内网连接一下我的家庭服务器,就SSH然后输入我的用户名,后面是局网IP 192.168.31.207。回车可以看到内网可以连接成功。

SSH使用的端口是22。我们进入路由器的设置看一下,目前我的公网IP是112.231.xxx.xxx。那么我配置端口转发的思路就是监听这个公网IP地址,把这个地址上所有22端口的流量全部转发到我内网的家庭服务器的22端口上。点击路由器的高级设置,进入端口转发。这里添加一个转发规则,这里填一个名字,我就叫家庭服务器SSH。协议拿不准就把这TCP跟UDP两个全选上。外部端口是22,内部IP地址是转到207,然后内部端口也是22。

点击添加,好,端口转发就配置完成了。点击保存并生效。

我们马上来测试一下。这里我需要先给笔记本断开家里的Wifi,换成我手机的热点。我的手机目前使用的是4G网络,这样我的笔记本电脑就进入了公网环境。然后我们再测试一下,这个命令:
注意:39.98.206.115是路由器的公网IP

ssh [email protected]

IPv6

我们设置IPv6,第一步还是将光猫改桥接,这个跟刚才我演示的步骤几乎一样。这里改桥接,这里有一个注意点,把IP版本协议IPv4/IPv6这两个全部选上,然后点击保存就可以了。

我们进入路由器的设置,下面有一个IPv6网络设置,注意把这个一定选上,然后点击应用。

上网设置里还是选择拨号上网,填上用户名,密码点击应用。这里显示拨号成功,然后下面IPv6连接类型里出现了一些信息,这里出现了IPv6的地址,像这种240开头的就是公网IP的地址。现在三大运营商基本做到了IPv6公网地址的全覆盖。

进入我的Ubuntu服务器,我来看一下他的IPv6地址是不已经分配过来了。这里我输入命令ifconfig,回车看到这里的网卡信息。我们找到第一个IPv6的INTERNET6,后面的这一串就是我服务器IPv6的公网IP地址。我们来验证一下,进入这个网址:test-ipv6.com。这里显示10-10,此分数表示你的系统对IPv6支持程度跟稳定性。

这里显示了一个IPv6的公网地址,与刚才的ifconfig的地址是一模一样的。那这样服务器端的IPv6就配置成功了。

我们马上来SSH连接一下试一试。这里当然还是先把我的电脑切到外网,切换成手机热点。我把这台Windows电脑也测一下IPv6通不通。可以看到我这台Windows电脑的IPv6是不通的,

理论上来说,现在国内的4G网络应该都支持IPv6了。那这里连了手机热点,走的手机流量,但是IPv6不通。那原因很大可能出在我的Windows设置上,我们需要更改一下设置。这里打开搜索搜索控制面板,进来以后这一步是重点,把这个查看方式的类别一定要改成小图标。

Windows也是非常坑,把一个常用设置藏得这么深。然后再点击网络与共享中心,找到这里的连接,点击进去。这里点击属性,然后设置。这里可以看到IPv6没有开启,我把IPv6勾上,然后点击确定,点击关闭

。好,这样Windows就设置好了,这样就通了。 下一步我就用IPv6连接我的内网服务器。这里打开一个终端,还是SSH命令技术爬爬虾@后面直接接我Ubuntu家庭服务器IPv6的公网地址,那就是这一串。然后回车输入一个密码,可以看到连接成功。

我再来补充几个IPv6方案的注意点。首先是安全性,IPv6开启以后,全设备全端口都是直接暴露在公网上。因此,我建议先把各种远程连接的密码设置复杂一点,有条件的话可以升级一个带IPv6防火墙的路由器。第二个因为网络建设原因,有一些网络环境还不支持IPv6,比如某些公司的内网或者一些偏远地区等等。我们需要根据实际情况酌情使用IPv6。

远程控制

分享另一种公网远程控制内网的方法,使用RDP协议的远程桌面。我们进入Ubuntu,改一点配置,点击这里的设置,找到最下面的系统,然后这里远程桌面,把这个远程登录点开。这里先点击解锁,然后把远程登录打开,下面的端口保持默认3389用户名,密码自己填一个就可以了。

我们在Windows搜索远程桌面,打开远程桌面连接。这里有两种方式:第一种方式直接填服务器IPv6的公网IP,就填这个,然后点击显示选项。这里把用户名输一下,就是tech-shrimp,然后点击连接,再把密码输一下。

可以看到,这样就连接进了远程桌面。当然我们使用IPv4也可以,这里还是配置一条新的端口转发,把外部的3389端口转到内部服务器的3389端口。

然后我们连接的时候,当然就输公网IP,后面接冒号端口3389,这里点击连接,可以看到远程桌面一样可以连接。

DDNS

现在我们可以使用公网IP地址访问家庭服务器了。然而这个IP地址并不是固定不变的,一段时间就会变换一次。应对动态IP可以使用DDNS的方式解决,即动态域名解析,将变动的IP地址绑定到一个不变的域名上。这样我们可以使用域名连接服务器,不用操心IP地址的变化了。 这里我推荐一个项目DDNS go,自动获得你的公网IPv4或IPv6地址,并解析到对应的域名。好,我马上来演示使用DDNS go。在开始之前,我们需要进行一点准备工作。首先你必须要有一个域名,这里我从Cloudflare上购买了一个域名,就是这个域名 tech-shrimp.com。右上角点击添加站点,按提示操作,将域名托管到Cloudflare。

我需要有一个API key,我们进入我的资料,API令牌在这里点击创建令牌,然后点击编辑区域DNS,点击使用模板。

这里区域里面选择包括账号所有区域,然后选择我的账号,找到下面显示已继续摘要,点击创建令牌。我的令牌就创建好了。

这样我拿到了我的域名,还有令牌。我就下载这个ddns go,我进入我的Ubuntu服务器。在这里找到release,我这个是X86的CPU,那我就下载这个Linux X86_64,把它下载到桌面。

DDNS Go 下载地址:

下载完成以后,我把这个应用程序复制到桌面上,然后直接右键在终端运行。输入这个命令:

sudo ./ddns-go -s install

点击回车,这里显示安装成功。 我们打开浏览器,输入这个网址localhost:9876,点击回车,进入了它的配置页面。

这里我的DNS服务商选择cloudflare,然后填写我刚才生成的Cloudflare的 TOKEN,就是这一串,把它复制进来。

下面填写一个你想把公网IP解析到的域名,这里可以填写一个子域名,比如我填写
ddns.tech-shrimp.com

这个配置的意思就是把我的公网IP地址解析到这个对应的域名上。IPv4配置好以后,我们再配置一个IPv6,这个名字 ddnsv6.tech-shrimp.com

这里配置一个用户名密码,用户名密码是用来登录DDNS go的管理后台用的。 全部配置成功以后,我们点击保存。这里出现了一些提示,那我们的DDNS go就配置成功了。

我们马上来测试一下,还是回到我的Windows电脑,我们SSH后面是用户名@,后面就不需要输入IP地址了,直接输入我刚才配置的DDNS域名,域名是 ddns.tech-shrimp.com,回车好,连接成功。

我们再试一下IPv6,还是打开终端SSH tech-shrimp,我的用户名后面接这个域名ddnsv6,这个域名解析出来的就是IPv6对应的公网地址,然后点击回车.

好,一样可以连接成功。

90 个赞

别用webp会裂

1 个赞

图裂了,麻烦修一下。

常规话题配置调优

终于有了一个正经帖子!!这是本站至今为止第一个正经帖!

6 个赞

图片已修复

3 个赞

喊个管理给你解开啊 @neo

4 个赞

@neo 感谢提醒 图片已修复哈哈

3 个赞

哈哈 回错人了

3 个赞

很强,给大佬点赞

2 个赞

可以,我还经常看爬爬虾的视频

2 个赞

这必须点赞收藏一波

2 个赞

太详细了,大制作

2 个赞

符合论坛气质

1 个赞

Ubuntu 双系统路过 :smile:

1 个赞

之前用Ubuntu的时候感觉功耗像是更高了,相同电池用的时间比Windows更短了。

1 个赞

好长的教程,辛苦佬

1 个赞

L站终于有有关linux的东西了 :cry:

1 个赞

此论坛不可以使用有用的内容发帖。为维护linux.do环境,这里绝对不允许发布有关Linux的内容!
(不是)

2 个赞