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

搬瓦工机场JMS

之前在犹豫是否要收蜗牛矿机,当时心里有这个方案,有老哥想看 @IamZS 那我就分享一下,我直接把博客园的内容粘进来,要是图看不清或者排版有问题,代码看着效果不好,可以直接去博客园看原贴

记录一次搭建家用小型服务器的经历
原文链接:https://**blogs.com/blog5277/p/11261049.html

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

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

0. 前景提要

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

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

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

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

这样就可以:

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

0.4 稳定,数据库的数据在自己的硬盘上,写好定时任务定期同步至onedrive和googledrive,稳定性99.99999%
黑龙江网友:
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】国产之光(hostloc的编辑器没有划掉这个功能嘛。。。) 之前一直听别人吹这个系统,但是我是嗤之以鼻的。。。我觉得没有商业巨头管理维护(如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也可以参考着用。
香港网友:
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口。

整体而言非常满意。

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


台湾网友:又想骗我上车。。不上!!!!!!!!!嗯!!!真香!!!!!!!!!!!!!!!
上海网友: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 1920×1080 -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
贵州网友:迎广肖邦能塞下 几块硬盘你就用这个
云南网友:在家不可能搞这玩意的,会被老婆打死!
四川网友:现在机箱空着2个SATA位置我没插,8T以下存储没问题,目前我没有做NAS的需求我也懒得弄。主板上总共是4个SATA位
宁夏网友:肖邦只能装2个 2.5寸的硬盘
吉林网友:软文,钱多没地方花。
湖南网友:软文,钱多没地方花。
黑龙江网友:我软文啥了???
新创云,蜗牛,酷播云我都没选,ITX主机里面各硬件啥牌子都有,我找谁要钱?
文章重点难道不是FRP+VNC的具体设置?
网上的方案可用的不多,我折腾了好几天才弄成功
贵州网友:电费算过没有,还有温度,把家里烧了怎么办?
宁夏网友:算了,I7-7700T满载35W,杂七杂八的算它整机满载50W,一个月满载全负荷跑也就30度电费。
换来了I7处理器,16G内存,240G NMVE的SSD,我觉得这个开销完全OK。
更何况咋可能时时刻刻满载,平时待机功耗10W左右。
湖南网友:搞不懂这cpu能拿来干嘛,最次也要e3吧
安徽网友:那这电费一个月大约多少呢
贵州网友:https://www.cpubenchmark.net/cpu.php?cpu=Intel+Xeon+E3-1231+v3+%40+3.40GHz&id=2246

https://www.cpubenchmark.net/cpu.php?cpu=Intel+Core+i7-7700T+%40+2.90GHz&id=2951

放家里当然要考虑个功耗比,你看看性能差不多的情况下功率差了多少
河北网友:初步估计5块以内,因为不可能随时满载,满载的时间是少数
天津网友:额,不好意思,刚刚手机上没看完整,我以为是前面说的j1900
北京网友:自己家带宽是死结啊.
四川网友:自己家带宽是死结啊.
新疆网友:最后发现还是windows最简单好用…
海南网友:一直想弄mac mini,看到itx这么便宜。。
吉林网友:蜗牛明天到货,看看情况。考虑买dq77kb
湖南网友:这个cpu不是35w么
重庆网友:mark
重庆网友:看蒙了,我接触的知识还是太少了
北京网友:itx买的哪一款?楼主方便把各个配件购买链接发下么?正好也有类似需求
内蒙古网友:谢谢

未经允许不得转载:美国VPS_搬瓦工CN2 GIA VPS » 记录一次搭建家用小型服务器的经历

赞 (0) 打赏

评论 0

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

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏