欢迎光临
我们一直在努力

记录一次搭建家用小型服务器的经历

原文链接:https://www.cnblogs.com/blog5277/p/11261049.html

原文作者:博客园--曲高终和寡

*******************如果你看到这一行,说明爬虫在本人还没有发布完成的时候就抓走了我的文章,导致内容不完整,请去上述的原文链接查看原文****************

 

0. 前景提要

由于一直有个想法,就是搞一套自己的云端开发环境。

 

0.1 希望不管是在家里,还是公司,还是任何一个地方,甚至是手机、平板。只要能联网,就能连接上自己熟悉的开发环境开始开发。

 

0.2 由于阿里服务器太贵了(阿里云香港1H2G1M,3年1800+),并且在国内的服务器、网站一定要备案(我玩腻了com域名,在搞花里胡哨的后缀域名,不能备案),就很麻烦(虽然我也不搞法外之事)。而国外的服务器呢,很便宜,但是可用性要持怀疑态度,并且可能经常换服务器(被墙了、IDC跑路了、又发现了一家新的更便宜更好的IDC)等原因,来回配环境、备份迁移数据库,太麻烦了。

 

所以萌生了一个念头---->组建自己的家用小型服务器

这样就可以:

 

0.3 省钱,硬件不坏就可以一直用,哪个硬件坏了更换哪个

 

0.4 稳定,数据库的数据在自己的硬盘上,写好定时任务定期同步至onedrive和googledrive,稳定性99.99999%

 

1. 硬件准备

 

家用小型服务器嘛,我的原则是【小、安静、功耗低、性能强劲】。一开始在这几项里面纠结,我相信有组建家用服务器、NAS、HTPC的人都考虑过下面几款:

【新创云等超迷你无风扇主机】优点:小,安静,功耗低。缺点:J1900性能不太够(600价位),当小服务器跑项目还行,我还想搭建开发环境就不够了,没有硬盘位没法当NAS,视频解码能力相当差,当HTPC够呛。而I3/I5/I7低压u的价格都要到1000+去了,真的贵,不划算,最后被我排除。(如果没打算搭建开发环境或者当NAS、HTPC,这款非常好)

【星际蜗牛】优点:价格便宜(普通C款300,皇帝C款450),功耗低,硬盘位多,C款皇帝版13SATA位,双网口可做软路由。缺点:看起来很好,但是问题有点多。电源一般都要换,风扇也要换,换了声音也有点大。体积不小有点占地方。这么添来添去一换下来价格就上去了,并且我其实没有做NAS的需求,硬盘太贵我买不起。。。J1900性能同样不够我用。除了机箱最好,其他的硬件品质都一般般。所以这款也被我PASS了(如果拿来做NAS的,我觉得C款皇帝版是首选,到手后换个靠谱电源扔储物室里完全OK)

【酷播云2】优点:功耗低,性能比上面俩好(J3455),用料比较扎实。缺点:价格相比上面两个有点贵了(720无硬盘内存),只有两个SATA口(如果组件家用HTPC,小服务器,8T需求以下的NAS,这个首选)。但是这个性能仍然是。。。我感觉有些许欠缺。

最后我了解到了【ITX主机】,缺点是价格贵,功耗高了一点。优点可太多了:比星际蜗牛、酷播云体积小的多,可扩展性强得多,性能强几倍,安静程度仅次于无风扇的服务器,离开20厘米就听不见任何声音,硬件都是大牌可信赖稳定性高。

 

组成了这样的配置:

机箱:迎广肖邦

散热:乔思伯HP400

电源:台电150W

主板:微星B250I PRO

CPU:I7-7700T (ES版)

内存:光威8GDDR4 2133+海力士8GDDR4 2133

硬盘:西部数码240G NVME 

这一套下来分别收到手总和是花了1650块钱。比上面的三种方案贵了一些,但是上面的方案要么是配不到16G内存,要么是改装配到了,价格不比这个便宜多少了。

体积小,漂亮,安静,待机功耗不到10W,满载功耗40W,各硬件也基本是二三线牌子,可比上面说的强多了。

后续扩展性的话,主板电阻短接支持到8代U,U也可以换标压的,内存最大支持32G2400,硬盘还有4个SATA口。

整体而言非常满意。

下面附几张偷来的图,机箱是一样的所以拍出来效果也是一样的,大家可以看一下大小

记录一次搭建家用小型服务器的经历

记录一次搭建家用小型服务器的经历

记录一次搭建家用小型服务器的经历

 

 

 

 

2. 系统准备

 

这台小服务器,一方面是装数据库当服务器,另一方面也要搭建云开发环境。所以非图形化界面的各种CentOS/Ubuntu Server之类的直接就不考虑,要装带桌面环境的

 

2.1 【manjaro】我对Manjaro这个系统可真是又爱又恨。

 

2.1.1 爱就不谈了,arch系的Linux魅力,想必有所耳闻的都应该知道,AUR,滚动发版,强大的WIKI。

 

2.1.2 恨的话得谈谈。我目前还只是个Linux小白,后面遇到的问题或许其实有非常简单的解决办法,但是我没法解决:

 

2.1.2.1 最开始接触Manjaro的时候,我是在Windows上,装了个VMware虚拟机,在虚拟机里面装的Manjaro,然后就遇到了一个问题:不装VMware Tools没法Windows向Manjaro复制粘贴东西,装了VMware Tools,Manjaro没法全屏,窗口就只有600*480,这我谷歌百度都没法解决。

 

2.1.2.2 Manjaro上装输入法,说实话在Windows上我觉得最好用的输入法是手心,但是在Mac和Linux里就只能选搜狗输入法了,谷歌拼音、小狼豪(RIME)我都不喜欢,没有搜狗拼音顺手。在Manjaro上的搜狗拼音的依赖库是有问题的,需要装很多老版的依赖库,然后软链接过去。可以弄成功,但是真的很麻烦,我这人最讨厌麻烦了,这种无谓的麻烦。

 

2.1.2.3 在虚拟机里,Manjaro会睡死,没有办法解锁,点什么都没反应,甚至会带着虚拟机睡死,导致任务管理器都没办法强制关闭VMware。

 

2.1.2.4 上面这些仍然没有浇灭我的热情,我觉得1,3都是虚拟机的BUG,我买了ITX主机以后一定可以解决的。然而上面的硬件都到了,拼好之后装了Manjaro,几天的时间死机了2次(长时间不操作后自动注销,登录进去之后卡在界面,什么都操作不了)【我每次安装都是从Manjaro的官网下的最新iso,非老版/第三方网站下的】,我搭建这小服务器肯定得稳定运行啊。Manjaro被我放弃了。

 

2.2 【Windows Server、Windows】我本身也是为了学习练手一下Linux环境,这个尽管我最熟悉最喜欢,但是还是要往后稍一稍的,是最后的备选项

 

2.3 【Ubuntu】之前在虚拟机里一直用的是Ubuntu,用的也习惯了,不美化的话做桌面版太丑了,想换换新的

 

2.4 【Mint、MX Linux】后续备选(然而我估计要是Deepin遇到问题最后我不用了的话,最有可能还是拐回Ubuntu了,毕竟Linux桌面版实际的老大哥,参照这个下载量:https://snapcraft.io/chromium  ,还有谷歌趋势,其它的还是弟弟,除了丑也没别的缺点了)

 

2.5 【Deepin】国产之光 之前一直听别人吹这个系统,但是我是嗤之以鼻的。。。我觉得没有商业巨头管理维护(如Red Hat系),没有大型企业大规模实际应用,社区活跃度一般般,这系统怎么能用嘛

--------------------------------------真香--------------------------------------

我非常喜欢Deepin的桌面,网上的各种Ubuntu/Manjaro所谓的美化,基本都是给美化成Mac的样子,何必呢???????我喜欢Mac的风格的话我为啥不用Mac???

我不喜欢Mac,我家现在还有一个2016款15寸MacBook Pro,I7,16G,带Touch Bar,给对象用了。对Mac的不喜欢是一点一点累积起来的,除了全局可用的cmd+w/q,cmd的位置非常合理,用大拇指就可以很轻易的按到以外,对Mac没有任何留恋,反倒是想到Mac就头大。

而deepin有显然异于Mac OS的界面(原版Manjaro也有),我非常喜欢。

目前的话,用起来,Ubuntu怎么用Deepin也怎么用,遇到问题了直接搜Ubuntu的解决办法,在Deepin上99%都管用,开箱即用,非常舒服。

所以以下都是基于Deepin的系统来说的,Ubuntu也可以参考着用。

 

3 软件准备

 

3.1 富强,这个在博客园不能多说,要被和谐,以后个人博客开起来了在里面补充。重点是不能用带R的,只能原版的,我也不知道为啥。记得开启系统网络代理那里,手动代理,S0CK转发那里填上127.0.0.1:端口,这里不建议用默认的1080,可能会被占用,改个不常用的就行。Chrome也不用按照网上下那个代理插件了,设置好直接用就行了,至少Deepin里面是这样的。

 

3.2 一台有公网的服务器提供frp。如果家庭宽带有公网也可以用,不过部分家庭宽带的公网没有80和443端口。有的有80和443端口,hostloc的老哥说也是有井茶叔叔邀请喝茶的风险,不仅仅是涉及到返洞,抱利,帆强什么的,诸如版权问题,交互性(比如论坛/留言),还有一些自己不经意间就违规的情况。所以保险起见还是不要用家庭宽带的端口放网站了,当然要是只放个数据库走数据库的端口这完全没问题。服务器尽量选择延迟低,带宽大的。国内的服务器,阿里,腾讯之类的,也就1-5M的小水管还特别贵。。。实在是扣啊。。。国外的IDC商自己找,建议找香港>日本>新加坡>台湾>美国西海岸圣何塞等有CN2的机房,只拿来做FRP转发,对机器配置无要求,可以买最低配的VPS,但是不能买虚拟空间。

 

3.3 FRP,这部分重点说一下,FRP的作用是,将请求到FRP SERVER(FRP服务端)某端口的请求,转发至FRP CLIENT(FRP客户端),不论服务端所在的网络环境是否有公网IP。这样的话放在家里的服务器就可以打开一扇对外的大门,具体原理可以自行搜索。

 

3.3.1 FRPS(FRP 服务端)配置

 

在公网服务器上下载安装FRP,以Linux服务器为例,输入:

arch

可以查看服务器架构,如果输出x86_64就直接用我下面的代码,如果不是就自己去frp的github https://github.com/fatedier/frp/releases 找包替换地址

如果提示没有安装wget就安装个wget,自行搜索自己服务器系统+安装wget

cd /root # 下载 wget --no-check-certificate https://github.com/fatedier/frp/releases/download/v0.27.1/frp_0.27.1_linux_amd64.tar.gz # 解压 tar -xzvf frp_0.27.1_linux_amd64.tar.gz # 文件夹名改成 frp,不然目录太长了不方便 mv frp_0.27.1_linux_amd64 frp cd frp # 确保 frps 程序具有可执行权限 chmod +x frps

运行一下

./frps --help

如果打印出了很多提示信息,说明安装正确了。不正确的话自行确认安装的版本是否正确

编辑frps.ini,如果没有vim就自行下载,或者用你们习惯的文本编辑方式

vim frps.ini

里面的东西都删掉(如果有的话),换成下面的内容,注意【】内的需要替换成你们自己的,连带【】括号一起删掉,其实各种端口,token,都可以改成自己的

[common] bind_port = 7000 token = 12345678 dashboard_port = 7500 dashboard_user = admin dashboard_pwd = admin vhost_http_port = 10080 vhost_https_port = 10443 subdomain_host = 【你自己的域名,好像也可以不设置这一条,在客户端直接连IP也行,不过我有域名就直接这么设置了,以后换服务器也方便】

编辑/etc/rc.local,在exit 0 前加上下面这句话,开机自启

nohup /root/frp/frps -c /root/frp/frps.ini &

如果打开这个文件是空的,那就在文件的最后新起一行输入

exit 0

保险起见给文件加上权限

sudo chmod +755 /etc/rc.local

测试一下脚本

sudo /etc/rc.local

要是打印出来的信息没有报错,配置FRPS端的步骤就完成了,重启一下服务器

 

3.3.2 FRPC(FRP客户端)配置

 

根据ITX主机的架构,下载FRP

cd /root # 下载 wget --no-check-certificate https://github.com/fatedier/frp/releases/download/v0.27.1/frp_0.27.1_linux_amd64.tar.gz # 解压 tar -xzvf frp_0.27.1_linux_amd64.tar.gz # 文件夹名改成 frp,不然目录太长了不方便 mv frp_0.27.1_linux_amd64 frp cd frp # 确保 frpc 程序具有可执行权限 chmod +x frpc

编辑frpc.ini

[common] server_addr = 【你服务器的ip或者解析到该ip的子域名,如:frp.domain.com】 server_port = 7000 token = 12345678 http_proxy = [vnc] type = tcp local_ip = 127.0.0.1 local_port = 5901 remote_port = 5901

编辑/etc/rc.local,在exit 0 前加上下面这句话,开机自启

nohup /root/frp/frpc -c /root/frp/frpc.ini &

如果打开这个文件是空的,那就在文件的最后新起一行输入

exit 0

保险起见给文件加上权限

sudo chmod +755 /etc/rc.local

测试一下脚本

sudo /etc/rc.local

要是打印出来的信息没有报错,配置FRPC端的步骤就完成了,重启一下本地的机器

 

3.4 远程连接

 

这里尝试了几种方案:XRDP,X11VNC,AnyDesk,经过个人的测试,连接效果都不能让我满意,最后用了VNC

 

3.4.1 本地服务器端

sudo apt-get install vnc4server

修改连接密码,最低6位

vncpasswd

然后创建启动项

sudo vim /etc/init.d/vncserver

在里面输入

#!/bin/sh ### BEGIN INIT INFO # Provides: vncserver # Required-Start: $local_fs # Required-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start/stop vncserver ### END INIT INFO # More details see: # http://www.penguintutor.com/linux/vnc  ### Customize this entry # Set the USER variable to the name of the user to start vncserver under export USER='【你登录的用户名】' ### End customization required eval cd ~$USER case "$1" in start) # 启动命令行。此处自定义分辨率、控制台号码或其它参数。 su $USER -c 'vncserver -geometry 1920x1080 -alwaysshared -httpPort 5901 :1' echo "Starting VNC server for $USER " ;; stop) # 终止命令行。此处控制台号码与启动一致。 su $USER -c 'vncserver -kill :1' echo "vncserver stopped" ;; *) echo "Usage: /etc/init.d/vncserver {start|stop}" exit 1 ;; esac exit 0

修改权限

sudo chmod 755 /etc/init.d/vncserver

添加开机启动项

sudo update-rc.d vncserver defaults

重启本地服务器,就好了

3.4.2 任意一台联网的设备想远程控制服务器的设备上,去这里下载VNC VIEWER

https://www.realvnc.com/en/connect/download/viewer/

输入之前在FRPC中绑定的

子域名:5901

输入密码,就可以控制了

效果受制于网速,经过我的测试这个是我的所有环境下,控制最快的,毕竟是远程环境。。。

最终效果:

记录一次搭建家用小型服务器的经历

记录一次搭建家用小型服务器的经历

 

 

 

3.5 NAS

本身装的就是Linux系统,所以可选项很大,我现在暂时没有这个需求,就不折腾了,但是把解决方案先放在这

owncloud

 

3.6 HTPC

Plex for Linux/Kodi for Linux

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《记录一次搭建家用小型服务器的经历》
文章链接:https://www.456zj.com/4088.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址