家庭服务器解决方案——软件篇 家庭服务器配置
bigegpt 2024-10-22 10:02 8 浏览
对于服务器而言硬件只是基础,而且家庭服务器的硬件要求并不高。软件才是实现功能的核心,需要自己花更多精力去探索。
选择操作系统
家用服务器系统我有3个推荐选项:Linux发行版、FreeBSD、和Windows企业版。
优先级最高的是Linux发行版,比如:Ubuntu、Manjaro、Linux mint等。习惯Windows的朋友我建议选择Windows企业版(Lts)可以省去Windows经常升级的烦恼。我对FreeBSD也不是很熟悉,所以给不了太多建议。
Linux发行版
Linux发行版我推荐3个:1.Ubuntu / 2.Manjaro / 3.Linux mint;
国产的麒麟 、深度也可以去尝试一下,学习Linux是一个挺不错的体验,你可以感受开源软件世界完全不一样的氛围。Linux发行版我建议选择桌面版而不是服务器版,因为你并不是真正在搭建一个商用服务器。很多软件需要GUI环境运行,桌面版会更加方便。
Windows企业版
Windows推荐企业版,理由是功能精简、没有Windows自动升级的烦恼。Windows镜像下载推荐使用这个网站MSDN ITellYou;
FreeBSD一样是一个非常优秀的开源系统,不过我接触很少,没有太多有价值的参考建议,但网上的资料还是很全的;
操作系统的安装就不详细讲解了,安装系统这个是基础能力。但是我推荐一个安装系统的神器Ventoy,只需要1个U盘放入你所有的系统镜像,想安装哪个就选哪个非常方便。
安装系统后,接下来就根据具体需求部署软件解决方案(接下来的所有解决方案均以Ubuntu系统为案例):
1.安装Zerotier,搭建虚拟局域网,实现远程访问;
如果只能在局域网内访问家庭服务器,那么使用场景太受限制。我们可以通过Zerotier搭建一个虚拟局域网,这样在广域网里也能访问家庭服务器。
首先在Zerotier官网注册一个账户,创建一个局域网,你会获得该局域网的标识字符串。
然后在每个设备上安装Zerotier,你都会获得一个该设备的字符串。
首先介绍家庭服务器上安装Zerotier:
#安装Zerotier
curl -s https://install.zerotier.com | sudo bash
#加入虚拟局域网
sudo zerotier-cli join 局域网字符串
#离开虚拟局域网
sudo zerotier-cli leave 局域网字符串
#查看Zerotier服务的命令,总共有 {start|stop|status|restart|reload|force-reload}这几个命令可选
sudo service zerotier-one
如果想提升访问速度可以自己搭建moon节点,网上可以查找相关教程。
服务器安装好后,其它设备安装Zerotier就比较简单了,Windows、Android都有对应的安装包下载加入对应局域网即可。
登陆Zerotier官网,进入局域网管理,启动对应的设备即可完成虚拟局域网搭建。通过这个虚拟局域网你可以远程访问你的家庭服务器的服务。还能实现远程控制其它设备开机。接下来我就介绍一下具体操作:
2.设置Wake on Lan,实现局域网开机;
通过家庭服务器让其它局域网设备开机很简单。首先在服务器上安装Wake on Lan,这样就可以通过SSH开启其它局域网设备了:
#安装wake on Lan
sudo apt install wakeonlan
然后在其它设备上启用局域网唤醒,这包括了2个步骤:
1.在BIOS中开启Wake On Lan设置,把该选项调整为Enable。一般这种情况下关机后电脑网口依然是亮的。
2.系统开启网卡的Wake On Lan权限。
Windows系统设置
进入设备管理器,在网卡属性的“高级”标签里设置“关机网络唤醒”开启和“魔术封包唤醒”开启。在“电源管理”标签里勾选“允许计算机关闭此设备以节省电源”和“允许此设备唤醒计算机”。
这里要吐槽一句,Windows采用局域网唤醒必须把登陆密码取消不然意义不大。
Linux系统设置
#查看mac地址和网卡名
ifconfig
#查看是否开启了WakeOnLan,如果有Supports Wake-on: g和Wake-on: g这两项则支持且开启了局域网唤醒
sudo ethtool 网卡名
#如果支持局域网唤醒但是没有开启输入以下命令
sudo ethtool -s 网卡名 wol g
设置完成后服务器只需要通过SSH输入命令就可以控制局域网其它电脑开机:
wakeonlan mac地址
mac地址不好记,你可以通过软件或者脚本的方式执行SSH命令。另外采用局域网唤醒的开机时间比较久,开机会卡在start pxe over ipv4比较久,并不是电脑出故障了。
不过我发现其实wakeonlan对运维很有用,但在家用中使用场景不多。
3.Calibre搭建个人的电子书库;
如果你有Kindle,那么Calibre可以提升Kindle的阅读体验。
Windows系统可以使用安装包安装,Linux则可以用命令行安装:
sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin
在家庭服务器上安装Calibre后,开启内容服务。局域网内所有设备都可以通过浏览器访问书库。如果你有Kindle你会发现这种方式比推送爽太多。而且不仅是Kindle,手机平板都可以直接浏览书库非常方便。
4.通过Samba,搭建文件服务器;
目前最流行的个人文件服务器解决方案还是Samba。linux安装Samba也非常简单:
#安装samba
sudo apt install samba
安装完毕后,只需要把指定文件夹设置成共享,其它主机只需要通过访问局域网主机IP地址,即可访问服务器共享的内容。搭建Nas服务器千兆局域网(不是指的宽度)是基本网络环境,不然体验就一般了。
5.下载服务器
作为下载服务器主要场景肯定是BT/PT下载和百度云下载。BT下载可以用transmission或者qbittorrent,然后开启Web服务,这样就可以在局域网里添加下载任务。如果通过zerotier搭建虚拟局域网,就可以实现远程下载。
#安装transmission
sudo apt install transmission
#安装qbittorrent
sudo apt install qbittorrent
transmission和qbittorrent还有一个挺不错第三方安卓客户端Transdroid,这样手机就可以随时随地为服务器添加下载任务了。
6.搭建Web服务器
Web服务器对于新手而言没什么用处。但是Web服务器才是家庭服务器真正的精髓,很多服务都可以通过Web服务器实现。比如私人云盘、相册、网站等等。
我个人是因为在学习网站维护,搭建的LAMP环境(Linux+Apache+Mysql+PHP);大家如果对于服务器维护想做深入学习,学习Docker知识是必不可少的。这个内容很大这里就不展开讲了,以后有机会我开个专题。
更多功能后续更新……
相关推荐
- Docker篇(二):Docker实战,命令解析
-
大家好,我是杰哥上周我们通过几个问题,让大家对于Docker有了一个全局的认识。然而,说跟练往往是两个概念。从学习的角度来说,理论知识的学习,往往只是第一步,只有经过实战,才能真正掌握一门技术所以,本...
- docker学习笔记——安装和基本操作
-
今天学习了docker的基本知识,记录一下docker的安装步骤和基本命令(以CentOS7.x为例)一、安装docker的步骤:1.yuminstall-yyum-utils2.yum-con...
- 不可错过的Docker完整笔记(dockerhib)
-
简介一、Docker简介Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,...
- 扔掉运营商的 IPTV 机顶盒,全屋全设备畅看 IPTV!
-
其实现在看电视节目的需求确实大大降低了,折腾也只是为了单纯的让它实现,享受这个过程带来的快乐而已,哈哈!预期构想家里所有设备直接接入网络随时接收并播放IPTV直播(电信点播的节目不是太多,但好在非常稳...
- 第五节 Docker 入门实践:从 Hello World 到容器操作
-
一、Docker容器基础运行(一)单次命令执行通过dockerrun命令可以直接在容器中执行指定命令,这是体验Docker最快捷的方式:#在ubuntu:15.10容器中执行ech...
- 替代Docker build的Buildah简单介绍
-
Buildah是用于通过较低级别的coreutils接口构建OCI兼容镜像的工具。与Podman相似,Buildah不依赖于Docker或CRI-O之类的守护程序,并且不需要root特权。Builda...
- Docker 命令大全(docker命令大全记录表)
-
容器生命周期管理run-创建并启动一个新的容器。start/stop/restart-这些命令主要用于启动、停止和重启容器。kill-立即终止一个或多个正在运行的容器rm-于删除一个或...
- docker常用指令及安装rabbitMQ(docker安装rabbitmq配置环境)
-
一、docker常用指令启动docker:systemctlstartdocker停止docker:systemctlstopdocker重启docker:systemctlrestart...
- 使用Docker快速部署Storm环境(docker部署confluence)
-
Storm的部署虽然不是特别麻烦,但是在生产环境中,为了提高部署效率,方便管理维护,使用Docker来统一管理部署是一个不错的选择。下面是我开源的一个新的项目,一个配置好了storm与mono环境的D...
- Docker Desktop安装使用指南:零基础教程
-
在之前的文章中,我多次提到使用Docker来安装各类软件,尤其是开源软件应用。鉴于不少读者对此有需求,我决定专门制作一期关于Docker安装与使用的详细教程。我主要以Macbook(Mac平台)为例进...
- Linux如何成功地离线安装docker(linux离线安装httpd)
-
系统环境:Redhat7.2和Centos7.4实测成功近期因项目需要用docker,所以记录一些相关知识,由于生产环境是不能直接连接互联网,尝试在linux中离线安装docker。步骤1.下载...
- Docker 类面试题(常见问题)(docker面试题目)
-
Docker常见问题汇总镜像相关1、如何批量清理临时镜像文件?可以使用sudodockerrmi$(sudodockerimages-q-fdanging=true)命令2、如何查看...
- 面试官:你知道Dubbo怎么优雅上下线的吗?你:优雅上下线是啥?
-
最近无论是校招还是社招,都进行的如火如荼,我也承担了很多的面试工作,在一次面试过程中,和候选人聊了一些关于Dubbo的知识。Dubbo是一个比较著名的RPC框架,很多人对于他的一些网络通信、通信协议、...
- 【Docker 新手入门指南】第五章:Hello Word
-
适合人群:完全零基础新手|学习目标:30分钟掌握Docker核心操作一、准备工作:先确认是否安装成功打开终端(Windows用户用PowerShell或GitBash),输入:docker--...
- 松勤软件测试:详解Docker,如何用portainer管理Docker容器
-
镜像管理搜索镜像dockersearch镜像名称拉取镜像dockerpullname[:tag]列出镜像dockerimages删除镜像dockerrmiimage名称或id删除...
- 一周热门
- 最近发表
-
- Docker篇(二):Docker实战,命令解析
- docker学习笔记——安装和基本操作
- 不可错过的Docker完整笔记(dockerhib)
- 扔掉运营商的 IPTV 机顶盒,全屋全设备畅看 IPTV!
- 第五节 Docker 入门实践:从 Hello World 到容器操作
- 替代Docker build的Buildah简单介绍
- Docker 命令大全(docker命令大全记录表)
- docker常用指令及安装rabbitMQ(docker安装rabbitmq配置环境)
- 使用Docker快速部署Storm环境(docker部署confluence)
- Docker Desktop安装使用指南:零基础教程
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- resize函数 (64)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- mybatis大于等于 (64)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- logstashinput (65)
- hadoop端口 (65)
- vue阻止冒泡 (67)
- oracle时间戳转换日期 (64)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)