找回密码
 加入我们
搜索
      
查看: 59538|回复: 73

[电脑] 从小白到入门-自建服务器部署家庭应用之各种教程-长期更新

 火... [复制链接]
发表于 2020-3-11 23:12 | 显示全部楼层 |阅读模式
本帖最后由 T.JOHN 于 2020-6-13 19:09 编辑


由于多数家庭有淘汰的旧电脑或是土豪会购置各种小体积“软路由”,本着变废为宝,一机多用的绿色生活。此贴用来介绍以debian为基础,部署各种开源程序以实现安全,快捷,强大的服务端。包含0.科学网关1.文件共享 2.离线下载 3.远程监控 4.NAS管理 5.个人网盘 6.聊天服务器... 甚至 网站 图床 编译openwrt 等
本文的目的在于不花一分钱购买硬件设备的前提下理解以下内容:
1.公益。保护个人隐私。具体可以参看2014年发起的非营利网站及其创始人的TED演讲
本贴就是将公益实践的一个过程,即去windows和群晖等商业性方案开始,采用全开源方案。开源方案越来越被推广的原因是符合人类未来需求,微软虽然是商业公司在github上开源贡献也最多
2.简化。硬件区对于此类的需求有很多虚拟化(exsi hyperv),ROS,群晖等方案,甚至很多在windows上部署
这些在我看来显然是因为对linux不熟悉而舍近求远,费力劳神搞的方案。以每个人都知道的ss为例,简述原因
a). linux一般是软件诞生平台。因为所有的开源软件都可以根据源代码自行编译的,而编译这个过程大多是在linux下完成的,也就是说第一版软件会发布在linux上,其他的win exe及IOS app等都是交叉编译或二次开发的。虽说win也能构建编译环境,但是这不是程序员常规的开发平台
b). 对软件直接调用。linux主要以命令行完成操作,图形界面可有可无,但windows是全图形化界面,这是两者重要区别。因此像ss有个配置文件,在linux上用写入后再用命令行运行,是直接调用,整个过程无中间环节。而通过路由器的luci图形界面或者win上软件的图形界面则是间接调用,等于是在内核上套个壳,如果不开源你不知道他会不会有后门
c). 在理解安装和编译linux软件后,你开始理解什么叫返璞归真,和那些能在windows也能运行的方案相比。在性能,鲁棒性,可持续性,易用性及隐私保护等方面有多大的优势
3.认知。对于在CHH,koolshare,群晖,恩山上所讨论的很多需求都是需要大神给出固件或者教程,没了固件你就歇菜,提升认知后我们可以跳过这个步骤,一切不求于人
a). 即学会使用github,全世界的第一手代码都在这个网站,使用linux就相当于学会使用了github,所有需求你都可以自助了
b). 当你学会使用linux和github以后,你不再是用户,你也成为了半个开发者,你可以逐步理解这些软件工作的原理,进行更定制化的优化使用 (比如v2ray解决DNS污染问题)
c). 当你对linux使用时间长了以后,你越理解为什么它适合做服务系统,感受到他的简单快捷,越体验到windows为何在服务器领域远不如桌面来的受欢迎
4.节能。在路由器上差个U盘部署一些24小时运行的软件,其实就是为了节能的一种表现,但很多服务路由器不堪胜任
linux是可以运行在非常简化的设备上的,比如树莓派之类的开发板,N1这类电视盒等等,他们可以24小时开机,满足大部分人的个人或者需求,每年为你省不少电费。
x86有历史包袱,要兼容之前构架,在追逐高性能的道路上无法和arm比节能的。很多人可能不知道大多数云服务器(aws 阿里云)是512M内存,1CPU 15%的可用起步的,但是还是有很多人购买并使用。linux就能做到在这种低配机器上可靠运行,而debian/centos两大免费服务器系统就是跨平台的,arm设备以后会越来越多,所以这也是为什么微软也要做arm的windows,死活不放弃的原因
5. 软件。我们的需求永远是软件,软件优先于硬件,硬件只是软件运行的平台
整个教程的过程中,大家会逐步理解这一点。CHH很多人也许会在乎硬件性能,但随着使用服务器一段时间,大家就会知道树莓派都可能是硬件性能过剩的服务器,因为就你一个人或者家庭成员的少数人访问,基本不存在大量并发需求。


Part 1 前言
Q: 为什么要学“服务器部署”?什么是“服务器部署”
A: 因为要个性化服务,只有自己动手才能丰衣足食。所谓“服务器部署”就是使用Linux CLI(command in line)安装服务端的软件和调试,对应的是windows GUI下鼠标点exe装客户端的软件和设置

Q: 学“服务器部署”会不会比较没性价比?应用面狭窄,学习曲线过抖等?
A: 看你需求,如果你真的有以上方面个性化需求,学个入门绝对不亏。从win95到win10的20年你肯定会觉得变化很大,毕竟控制面板都大变。然而20年过去了,linux的安装命令还是apt/yum install xxx,远程控制还是通过ssh,修改配置还是通过vim,基本没变。过去如此,未来还会是如此。如果你需要的个人服务越多,你的“linux全方位认知”越有用。我会从最简单的部署开始,从实践逐步了解linux

Q: 你怎么能保证这些软件不会过时或者可以长期使用?
A: 因为专用(闭源)方案长期来看比不上通用(开源)方案有生命力,专用方案像windwos Mac这种获得巨大成功的,需要大量资金,而开源就是指一代一代传承和贡献,不断有人维护。群晖就是典型的专用方案,它除了提供集成度较高的硬件和漂亮的硬盘位,还提供了亲和的软件界面,甚至web服务,然而如果公司倒闭就没人维护了。而开源软件即便像clowwindy把源码删了,后来者在fork后依旧会使软件得到更新。

Q: 你为什么不提供windows的客户端软件?这样更方便大家使用。
A: 因为没有,几乎所有Github上服务器的客户端都部署在linux上,这对于开发者和使用者都是开源免费,而linux作为操作系统本身开源。所以这就是为什么服务器市场windows份额极低的原因。然而各位可能不知道win10大量的新feature比如wsl,powershell,hyper-v二代甚至vs code等,都是为了拥有linux等同的功能,提供更好支持,拉拢开发者。

Q: 为什么是debian?不是centos?或者是其他linux发行版本
A: 很多人linux都是从ubuntu入手,而debian和ubuntu没啥太大区别,命令一样,较易学习。debian相比centos占用内存更小,而且国外社区支持了更多,所以有树莓派的raspbian和各种电视盒的armbian(debian for arm)的诞生。这样硬件方面可以照顾N1和树莓派用户,让你的arm设备也能当服务器,软件方面一大优势是独占openmediavault(后文会提到的NAS系统),另一方面仓库的软件源也更新些,这样对新人更友善。centos我一般部署在云服务器上,毕竟他一个版本的维护周期是十年(现在是centos7第五年和centos8元年),软件旧就旧了,服务器稳定第一,比如centos7上的默认python2已经于2020年1月1日停止维护,默认的数据库sqlite软件源停留在3.7(2013年)已经不被某些软件所支持了。

Q: All in one的方案会不会不稳?一个服务崩了其他全崩?
A: 要看你是如何部署,如何维护。由于现在有docker的出现,它作为linux上的虚拟机,现在是一种很流行的方案去隔离各种软件,一行命令把所有软件全装完。一方面方便快捷,一方面崩溃了不影响系统。他的原理和安卓上的app雷同,运行在java虚拟机上。部当然有的人不喜欢docker,喜欢用自己部署的系统环境。其实最重要的还是备份,linux自带dd命令可以全盘复制(ghost)。

Q: 你好像没怎么提到虚拟化技术,很流行的esxi装多个系统不好么?
A: 这个需要根据每个人的需求决定,看你要在虚拟机上运行什么。首先,除了迅雷和QQ,我想不太到win作为server的意义。其次,openwrt作为一个虚拟机上的系统在linux下可以用docker安装并运行,而debian安装v2ray配合iptables规则也可以当网关。最后像freenas这种管理zfs的系统在debian上安装OVM后一样可以建立zfs存储池。因此大部分情况下是无需虚拟方案的。这除了降低机器性能和复杂化以外没什么好处。
在IDC领域最流行的虚拟化技术是KVM,主要是开源和免费,其用途是母鸡生小鸡,出售资源用。在个人家庭,你拥有服务器的所有资源,因此没有这种目的。其他IDC还用的虚拟化技术有Xen(AWS),OVZ(早期非独立虚拟化)和hyper-v(Azure),esxi是vmware给某些企业特殊用途的方案,十分小众。

评分

参与人数 6邪恶指数 +45 收起 理由
24H丨ON丨CALL + 10
x3033179 + 5
hamajun + 10 666
qqiao520 + 10
cenxiao01 + 5
windylex + 5

查看全部评分

发表于 2023-10-1 17:01 | 显示全部楼层
大佬,太监了么
发表于 2022-8-14 17:00 | 显示全部楼层
mark一下,学习
发表于 2022-7-28 23:35 | 显示全部楼层
做个标记,一直想搞个 家庭服务器,总是找不到理由~~期待那天会用上
发表于 2022-5-2 14:44 | 显示全部楼层
支持linux ......................
发表于 2022-5-1 16:58 | 显示全部楼层
mark,透明代理看连接上是N1,arm的,x86可以吗
发表于 2021-9-29 22:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2021-9-26 08:55 | 显示全部楼层
来学习下。谢谢
发表于 2021-6-24 19:17 | 显示全部楼层
能不能搞个Xray的教程。。
发表于 2021-6-23 16:01 | 显示全部楼层
T.JOHN 发表于 2021-6-23 14:53
软件源问题,国内连外网即使能连上速度也很慢的,你这行的第一条的意思是“从mysql官网下载一个'exe包', ...

好的~我试试~~不胜感激
 楼主| 发表于 2021-6-23 14:53 | 显示全部楼层
a264859452 发表于 2021-6-23 14:44
我在虚拟机中安装了debian  通过以下代码安装MySQL,但是下载速度实在堪忧,网络设置是和主机共享网络,家里是 ...

软件源问题,国内连外网即使能连上速度也很慢的,你这行的第一条的意思是“从mysql官网下载一个'exe包',这个exe包会告诉你mysql从哪里下载,并且下载什么版本”

一劳永逸的办法就是想办法科学上网或者换mariadb(mysql的开源版本),mariadb在debian的官方源中有,把debian的源添加163镜像,这样速度就快了
发表于 2021-6-23 14:44 | 显示全部楼层
我在虚拟机中安装了debian  通过以下代码安装MySQL,但是下载速度实在堪忧,网络设置是和主机共享网络,家里是500M电信宽带,不知道哪里的设置有问题还是说软件源的速度的确不怎么样
  1. wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb
  2. sudo dpkg -i mysql-apt-config
  3. sudo apt update
  4. sudo apt install mysql-server
复制代码

发表于 2021-6-21 18:07 | 显示全部楼层
强贴留名,学习。
发表于 2021-6-2 17:19 | 显示全部楼层
最终还是放弃了宝塔面板。。。。
发表于 2021-6-2 12:49 | 显示全部楼层
T.JOHN 发表于 2021-6-2 11:37
是的,nginx冲突了。宝塔和omv都会接管系统的nginx,需要恢复nginx的omv配置才能访问。omv5的逻辑是系统n ...

我研究下,万分感谢!
 楼主| 发表于 2021-6-2 11:37 来自手机 | 显示全部楼层
linqudexukai 发表于 2021-6-1 18:31
装完omv后又装了宝塔面板,发现之前可以访问的omv  403 forbidden了,是nginx冲突了吗?请问这种情况你有没 ...

是的,nginx冲突了。宝塔和omv都会接管系统的nginx,需要恢复nginx的omv配置才能访问。omv5的逻辑是系统nginx被omv占用,其他程序去用docker下面的nginx,而不再提供omv4有的nginx插件(可以修改系统nginx)
发表于 2021-6-2 11:33 | 显示全部楼层
太深奥了,努力学习中
发表于 2021-6-1 18:31 | 显示全部楼层
装完omv后又装了宝塔面板,发现之前可以访问的omv  403 forbidden了,是nginx冲突了吗?请问这种情况你有没有遇到过,应该从哪方面着手处理.....
提前感谢下,之前一直用的unraid,看了你这篇后发现直接用debian也挺好用的。
发表于 2021-5-5 14:56 | 显示全部楼层
学习中!弄台旧的古董,折腾折腾all in one!
发表于 2021-2-17 19:35 | 显示全部楼层
老哥真的牛,学习了
发表于 2021-1-29 09:09 | 显示全部楼层
学习学习,我正准备要装个个人网盘,谢谢楼主
发表于 2020-11-30 11:01 | 显示全部楼层
T.JOHN 发表于 2020-11-30 10:58
都很稳定,omv和openwrt就是提供一个用户直观的图形界面,适合不折腾的用户。偶有些小bug都是在能接收范 ...

OK,谢谢回复。那我就还是先用着OpenWRT吧,等有时间了再去试试OMV
 楼主| 发表于 2020-11-30 10:58 | 显示全部楼层
深圳老胡 发表于 2020-11-30 10:50
从稳定性来比较,OMV和OpenWRT都是开源的系统,也都有社区在维护,我觉得不存在太大差别吧? ...

都很稳定,omv和openwrt就是提供一个用户直观的图形界面,适合不折腾的用户。偶有些小bug都是在能接收范围内的
发表于 2020-11-30 10:50 | 显示全部楼层
T.JOHN 发表于 2020-11-30 10:46
大部分功能上没区别,区别是手动直接安装底层软件和自动间接安装底层软件。
omv会接管系统的networks,ngi ...

从稳定性来比较,OMV和OpenWRT都是开源的系统,也都有社区在维护,我觉得不存在太大差别吧?
 楼主| 发表于 2020-11-30 10:46 | 显示全部楼层
深圳老胡 发表于 2020-11-30 10:21
楼主,看完所有内容之后越发糊涂了。实际上按你提到的这些服务,我觉得只需要一个Debian+OMV不是全部都搞定 ...

大部分功能上没区别,区别是手动直接安装底层软件和自动间接安装底层软件。
omv会接管系统的networks,nginx服务等等,如果自己要手动改会遇到一些冲突,一旦omv启动又把你改回去。
omv5为了避免用户修改,现在自己也不提供nginx之类的插件去管理系统中安装的nginx。软件全部是docker安装,相当于系统有个nginx(归omv管),docker里面再装个nginx(归用户管)。有一些好处,比如不干扰(保证omv页面可以访问),但也会有点重复。
docker不万能,安装nextcloud现在依旧会遇到一些bug。像mariadb这种数据库单机上面也是没必要放在docker里面跑的。
这个文章目的就是去图形化,因为在linux下命令行远比图形化更直接,更可靠,更易排查故障。软件升级降级都更容易操作,比如文件服务一行apt安装smb就完成了。OMV需要依赖官方去更新它的脚本和源,相当于和直接安装软件还是隔了一层脚本。
openwrt和omv没有本质区别,只是运行一个更加精简的linux,甚至会阉割掉iptables。
发表于 2020-11-30 10:21 | 显示全部楼层
楼主,看完所有内容之后越发糊涂了。实际上按你提到的这些服务,我觉得只需要一个Debian+OMV不是全部都搞定了吗?其它的文件共享类的服务,我看OMV里面不都有吗?

另外就像是OpenWRT,也不过是Linux上面套一个Luci图形界面的壳子而已,通过插件或者ipk安装,也可以实现大部分的服务,从本质上来说,和OMV有什么区别?
发表于 2020-11-24 08:54 | 显示全部楼层
上了这个论坛,家里已经好几天微型服务器了。。。
 楼主| 发表于 2020-11-18 17:25 来自手机 | 显示全部楼层
coeo91 发表于 2020-11-18 17:11
大佬,主机装的win,因为要用SMB,局域网访问和电视VLC访问视频。然后又装了DOCKER啥的(还不知道怎么用) ...

我没看懂你的问题,win10的虚拟机上网通过hyperv设置就行了
发表于 2020-11-18 17:11 来自手机 | 显示全部楼层
大佬,主机装的win,因为要用SMB,局域网访问和电视VLC访问视频。然后又装了DOCKER啥的(还不知道怎么用)。我是想开机保持win10的系统,然后通过装软件,或者虚拟机的方式实现上网。大佬可以帮帮我吗?
发表于 2020-11-17 08:26 | 显示全部楼层
楼主写的太好了,来学习一下
发表于 2020-11-16 09:00 | 显示全部楼层
多谢分享,刚入了一台dell 3070m,开始折腾一下
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-6-26 13:49 , Processed in 0.017043 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表