网络服务器搭建

网络服务器搭建

随着手机的对性能极度渴求,现在高端ARM架构的芯片早就在性能上完成了对X86的反超,苹果的M1就是一个典型例子。因为大小核的设计以及ARM架构多年在低功耗领域的深耕,M1的轻载待机功耗比你牙膏厂的芯片低,峰值性能还高。在服务器领域,华为的鲲鹏ECS也在华为云商用了,超多核心设计非常适合一些倚重IO性能和吞吐量的场景。现在的ARM架构CPU在生态方面相对比较成熟,很多必要的软件和工具都有ARM64编译的版本。这让ARM服务器可以提供和X86一样丰富的玩法。

树莓派是由树莓派基金会推出的低功耗ARM架构开发板,可以运行完整的Linux发行版系统。我最近买了一个树莓派4b 2G内存的乞丐版来玩,想着先做一个网络存储服务器,带个硬盘,用来下载东西以及提供家庭多媒体串流。价格只要250元,不过在ARM开发板里不算便宜,比如说很多人买的斐讯N1盒子,刷机之后也可以做软路由啊,NAS啊,问题都不大。树莓派强在生态比较完善,不需要太折腾就有着大把最新的Linux发行版可供选择,成熟的社区也可以解决很多问题。而且4b的性能也强于N1,树莓派4b使用的是四核A72架构的CPU,这个架构也就是几年前手机芯片麒麟950上用的大核架构。而斐讯这类的电视盒子用的都是A55架构,这是目前ARM公司的公版小核架构,性能和A72差了一倍左右。

预备用于存储的硬盘

我首先选择了海康威视代理的希捷酷鹰st400vx000,这个硬盘比希捷零售的酷鹰便宜100元左右,但是参数差不多,都是三碟六头,5900转的监控盘,CMR非叠瓦。拼多多叠加黑卡到手价格428,真香。监控盘设计长时间运行,转速低噪音也低,稳定性强。我觉得非常适合拿来作为仓库盘,价格也没得说了。到手先用 hdtune 工具检测,没有坏道,全绿;通电0小时。希捷官网系列号验证也能通过。

 

 

硬盘盒我买了了优越者的Y-ST03004双盘位硬盘座,京东124元到手,特意选了type c接口,相比于常见的type b接口更耐用一点。 

 

这里我要特意说一下,因为考虑到主要用于Linux下面的访问,所以我将硬盘分区格式化成了ext4文件系统,具体在Linux终端里通过fdisk命令创建分区,再通过mkfs命令格式化分区,这里不再赘述。这个文件系统是Linux的默认文件系统,NTFS文件系统在Linux内核下默认只读。现在Windows也可以做到原生访问ext4分区了。需要Windows 10开启WSL2,通过虚拟化加载完整的Linux内核,在此之后Windows可以原生读取Linux所支持的文件系统。这可能是Windows下最好的支持ext4文件系统的方案,其他方案我试了问题不少。具体方法的链接我放在这里:https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-mount-disk 。

Linux下面有非常好的查看硬盘S.M.A.R.T.信息的软件,用于监控硬盘的运行情况,Debian系的发行版只需要输入以下命令:

sudo apt install smartmontools

完成安装,再通过以下命令:

sudo lsblk                                    #这一步为了查找到自己的硬盘名称

sudo  smartctl -a /dev/sda        #这里的sda需要替换成前文找到的名称

就可以轻松查看自己的硬盘健康程度了。下面是我这块硬盘的信息,可见Linux下挂载硬盘设备的维护真的很简单,都是开源免费的方案。

刷写启动树莓派的TF卡

树莓派到手后就可以着手开始刷写系统固件了。我用的是树莓派官方的刷写工具,还需要一张TF卡以及一个TF卡读卡器。TF卡我就用多年前老手机剩下的8G卡,C10速度。因为树莓派官方的限制,C10到U1的速度就已经够了,再快没有区别。

除了树莓派官方的系统外,还可以刷写Ubuntu这样的发行版

随便选一个吧,因为我的内存卡比较小,所以我刷了不带桌面的64位服务器版本20.10,桌面可以后面再来装。可以刷后面的LTS版本,这个版本的官方维护时间会长一点,可以长时间不升级。

登录

固件刷写好后就可以插进树莓派的TF卡槽,然后上电启动,再连上网线。啰嗦一句,我用的是家里多余的USB PD充电头,树莓派 4b通过type c口供电,支持PD供电协议。

现在Winddows 10已经支持了SSH,所以可以直接打开PowerShell,然后输入以下命令,再设置好密码,

ssh ubuntu@192.168.50.81 #后面的地址改成你树莓派的内网地址,可在路由器的相关页面查看,最好把DHCP设成固定IP

你就登上去了。

换源

APT是Ubuntu自带的包管理软件,简单来说就是可以通过一些简单的命令就可以完成Linux软件包的安装、更新和卸载。但是Ubuntu默认服务器在中国大陆的访问速度过于感人,所以最好换成国内的镜像地址。这里我选择了清华大学的源,网上换源的教程很多,这里不再赘述。但是要注意一点,因为树莓派是ARM架构,所以应该用ubuntu-ports这个源,ubuntu源不支持ARM64,会有问题。

挂载硬盘

Linux文件系统不用DOS的盘符系统,也就是大家熟悉的什么C盘D盘,而是有一个根文件系统,名叫”/“。所有其他的文件和文件系统都挂载在根文件系统之下,比如”/dev“指的就是根文件系统下的dev目录,dev是device的缩写,一般用于表示此计算机上的硬件设备。”~“表示当前用户的用户目录,等价于”/home/用户名“。首先把硬盘盒插入树莓派的USB 3.0口,再在系统里挂载到挂载点,就可以访问了。一般挂载点需要是一个空的目录文件(可以理解为Windows上的文件夹)。如果硬盘没有格式化,那么参照我前文的两个命令,先分区和格式化。首先在自己的用户目录创建一个目录文件,用如下命令:

mkdir ~/cangku #cangku是我给挂载点起的名字,这个可以根据自身喜好随意

然后使用lsblk命令,查看树莓派上的块设备。

看容量,4T的sda就是我挂载的硬盘

如上图,sda就是我的4T海康威视代理的希捷硬盘,而底下的sda1就是这个硬盘上唯一的分区。下面通过命令将sda1分区挂载到前文所述挂载点上,这一步就完成了。

sudo mount /dev/sda1 ~/cangku

安装并配置网络存储服务器相关软件

我安装了Samba和MiniDLNA两个软件。Samba是一个开源免费的支持SMB共享协议的软件,这个共享协议就是Windows在网络(网上邻居)里分享文件的协议。另外因为我家的LG电视是Web OS系统,所以不能安装安卓软件,然后LG的播放器只支持DLNA的媒体服务器,为了可以在电视上用原生播放器串流,我多装了一个MiniDLNA。从网络开销上来说,DLNA也比SMB性能高。

两个软件安装非常简单,只需要如下命令:

sudo apt install samba 

sudo apt install minidlna

然后各自配置好两个软件的设置文件。

Samba的配置输入如下指令:

sudo vim /etc/samba/smb.conf

需要配置的参数比较多,我也没搞得太懂,网上也是五花八门,我的参数配置拿出来如下。反正能用。

[Global]

netbios name = 树莓派

#用于在 Windows 网上邻居上显示的主机名

security = user

#定义安全级别

map to guest = bad user

#将所有samba系统主机所不能正确识别的用户都映射成guest用户

dns proxy = no

#是否开启dns代理服务

wins support = yes

# Windows Internet Name Serving Support Section:

# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server

[ubuntu]

#共享显示的目录名

path = /home/ubuntu/cangku

#实际共享路径

browsable = yes

#共享的目录是否让所有人可见

writable = yes

#是否可写

guest ok = no

#是否允许匿名(guest)访问,等同于public

create mask = 0777

#客户端上传文件的默认权限

directory mask = 0777

#客户端创建目录的默认权限

之后需要设置以下SMB分享的账户名和密码。账户名要和参数中的[ubuntu]一致,也叫ubuntu,你可以换成自己喜欢的名字。输入:

smbpasswd -a ubuntu #ubuntu就是添加的用户名,应该与配置中的一致,最好也与当前Linux用户一致

然后设置好密码,就完成了。

MiniDLNA的配置我就改了一处,输入命令:

sudo vim /etc/minidlna.conf

然后改动如下的一处,指定共享的目录地址就可以了。

在配置好两个软件之后需要重启服务以生效,使用如下命令:

sudo systemctl restart smbd.service

sudo systemctl restart minidlna.service

如果对命令行模式下修改配置文本感到麻烦和困难,可以安装桌面环境后,在图形界面下修改。

安装桌面环境

我之前说了,我安装的是不带桌面的系统,其实在后期我们完全可以自己装桌面环境。Ubuntu可选的桌面环境有很多,比如Ubuntu自己的基于Gnome的桌面,这个桌面功能比较多,自带了很多工具软件,还有基于Xfce的轻量版本桌面。树莓派有两个小型的HDMI接口,我没买这个线,所以准备远程桌面上去。远程桌面软件我选的是xrdp,简单来说就是Windows上的远程桌面协议,好处是电脑上不用单独装客户端。

sudo apt install ubuntu-desktop     #Gnome桌面

sudo apt install xubuntu-desktop   #Xfce轻量桌面,以上二选一就行

sudo apt install xrdp                        #远程桌面软件

然后需要配置以下xrdp:

echo "gnome-session" > ~/.xsession  #Gnome桌面

echo "xfce4-session" > ~/.xsession     #Xfce桌面,以上根据安装的桌面选择

重启一下服务

sudo systemctl restart xrdp

然后在Windows里搜索远程桌面,输入IP地址登录即可。可能会遇到问题,要碰一点运气,具体的一些可能会遇到问题的解决步骤见以下链接。相对来说Xfce对xrdp的兼容性较好。

https://websiteforstudents.com/connect-to-ubuntu-16-04-17-10-18-04-desktop-via-remote-desktop-connection-rdp-with-xrdp/

我用的是Gnome桌面,成功之后效果就是这样的。讲真因为我内存只有2G所以挺卡,我的电脑原生分辨率是3000x2000,Ubuntu的Gnome桌面可以开启缩放,我觉得效果还不错。

总结

这次折腾我觉得还挺值的,二百多块钱,就可以得到一个待机功耗3瓦的网络服务器。因为是Linux系统,所以树莓派的玩法实在太多太多了。这次也只是随便搞了一下。



   

展开阅读全文
网络服务器

绿联 AI家庭硬盘服务器 私有云NAS 双盘位 4T硬盘 手机NFC 相册备份 平板扩容 8GB 4TB

2474.1元(需用券)

绿联 DXP4800 GT 16G 双万兆网口 16GB+0硬盘 NAS网络存储

3689.1元(需用券)

绿联 DXP4800 GT 16GB版 四盘位双万兆NAS网络存储服务器

4904.1元(需用券)

绿联 私有云DXP4800 GT 8G四盘位NAS网络存储

3059.1元(需用券)

绿联 DXP4800 N100处理器 8GB内存 四盘位NAS网络存储

2519.1元(需用券)

绿联 DH4300 Plus 8GB内存 四盘位NAS 空盘版

1949元(需用券)

绿联 AI家庭硬盘服务器 私有云NAS 8GB

1289.1元(需用券)

绿联 万兆网口 NAS网络存储 16GB 0块

3149.1元(需用券)

网络服务器配置与管理

追加修改(2015-07-01 09:41:57):
今天仔细去panabit官网上看了一下说明,发现标准版并不支持“策略管理->流量控制策略中的优先级”,原文中对大家有些误导,抱歉了。 回头我去研究一下有没有其他解决方案。

前前言

本来上一篇《高性能冗余存储服务器的安装配置及性能测试》发表的时候,本篇已经写了七七八八。但是上篇引发的讨论让我有些茫然,很多同学说写的太难,对家用用户完全没有意义。也有说功耗高的,有说闲的**的,还有吐槽**的。

这么多负面的反馈,让我反思还有没有继续写下去的必要。后来我想明白了,他人的天堂,往往是自己的地狱。大多数人,喜欢拿自己的想法去要求别人,又反过来拿别人的想法要求自己,最后都忘记了初衷。坚持把一件自己觉得有意义的事做好才是最重要的。如果与此同时,哪怕只能让一个人有所收获,也是再好不过的了。

前言

这一篇主要讲如何利用All in One Home Server实现企业级路由需求。相信本篇一定会比上一篇招来更多的吐槽,善哉善哉!

其实,家用路由器在中国家庭中已经相当普及了。家用路由器的牌子很多,从销量最大的TP-LINK,到洋品牌的NetGear,Cisco,再到新进的小米(最近小米的404门也是够热闹的),360(一提360路由,不由得不想起孕妇模式....)等。价格呢,从几十元到几百元乃至上千,不一而足。从京东路由器的销量上可以看出,大多数家庭用的是150元以下较为低端的路由器。

还有一小部分有一定追求的同学(我估计这部分中很多都潜伏在张大妈),会去研究路由器的规格,比如主芯片的CPU性能,内存大小,天线多少,以及能否刷各种第三方固件(TOMATO,DD-WRT,Open-WRT....)。其实,家用路由器的处理器速度在500Mhz左右,内存不小于128M,应该就能够满足99%的家庭需要。比如我用了一年多的Netgear WNDR3700 V4(刷DD-WRT),就是不错的选择。

而*级的家用路由器,如Netgear R8000(处理器ARMv7双核1GHz),或是Buffalo WXR-1900DHP(内存512M),简直可以说是Bigger爆表,是小众中的小众了。

然而我下面要介绍的,那可是比小众中的小众还要小众的玩法:利用虚拟化,几乎无成本的(应该算是利用闲置资源)构建正版且免费企业级路由器,同时以满足各种可(奇)能(葩)的要求。

  1. 家里有各家宽带N路,要用到同时支持多个WAN口的路由器。

  2. 家中人口众多,或者经营一个小公司,有几十个终端设备同时使用宽带。大家相互影响以至于无法正常提供网络服务。需要路由器具备很强的QoS(网络服务质量)处理能力。

  3. 统一的科学上网方式,不需要单个终端进行配置。

  4. 强大的防火墙功能。(家里有用吗?)

  5. 各种VPN功能。

  6. 利用dnsmasq做域名劫持,帮助Apple TV链接国内源。

  7. ......只有想不到,没有做不到??......

类似的方案有很多,我选择的是pfSense+panabit。

pfSense是一个基于FreeBSD,专为防火墙和路由器功能定制的开源版本,并以可靠性著称。在软路由中,pfSense的性能可能算不上顶尖(但绝对够用了),最大的优点是防火墙功能非常给力。

panabit同样基于FreeBSD,是一个流处理能力超强(据说可以到双向40G转发能力)的流控系统,有很全的应用匹配规则。

pfSense和panabit分工协作:pfSense负责路由和防火墙功能,panabit负责做业务流识别,整形和优先级调度。最给力的是两者都有免费版本,没有侵权风险,还不用焦虑升级问题!!!功能强大不花钱,相当于科学家会武术,流氓都挡不住!肯定会有不少同学推荐RouteOS,海蜘蛛,Wayos等,这些软路由都非常不错,不过这些要么没有官方的免费版本,要么偶尔才会有免费license提供,这里就不推荐了。

方案简介

网络大致的连接方案如下:

如果不使用虚拟化,改为在一台物理机上安装pfSense+panabit。需要系统提供6个网口,结构如下:

但是如果用ESXi做虚拟化,只需要两个物理网口就可以了。而且可以把两套系统完美分隔开,结构如下:

利用存储服务器的硬件,几乎可以无成本的就可以搭建这套企业级的路由服务器。

ESXi真乃神器也!!

第一步、更改ESXi虚拟交换机的配置

为了pfSense虚拟机可以工作在网桥模式,需要先使能vSwitch0和vSwitch1的混杂模式。


第二步、panabit 的安装和配置

由于方案限制,在没有安装好panabit之前,从内网是无法连接到pfSense的内网口的。所以,为了简单起见,我们先安装panabit,再安装pfSense。

pfSense路由器其实带了很强的队列调度和流量整形的功能,不过相比panabit就是小巫见大巫了。专业的事,应该交给更专业的选手来做。

panabit有一键安装版下载,下载地址。但是由于这个版本是超精简版本,导致安装VMWareTools会非常麻烦。怕折腾的同学请选择这个,可以跳过第一至第三步(不过我建议,既然你已经开始折腾了,就再坚持一下下吧)。对于不折腾不舒服斯基,推荐先安装一个标准的FreeBSD(一定要安装32位版本,panabit还不支持64位系统),再安装panabit。FreeBSD9.3 32位下载地址panabit升级包下载地址

A. 安装FreeBSD9.3

安装FreeBSD虚拟机的方法和安装其他虚拟机是相似的,就不一一说了。磁盘分配3G,内存1G,网卡分配3个。

此外在选择FreeBSD组件时,一定要选上ports,为后期安装Perl语言以及VMWareTools做准备。

为第一个网口(panabit的管理口)配置一个静态IP地址

使能SSHD(随后需要用SSHD上传panabit升级包)。

安装完系统需要重启虚拟机。

B. 安装VMWareTools(对于ESXi,每个虚拟机总是推荐要安装VMWareTools的)

安装perl和compat6x库(此时虚拟机需要联网,由于这个时候pfSense还没有配置好,请保持原来的路由器处于工作状态)

cd /usr/ports/lang/perl5.18

make install clean

cd /usr/ports/misc/compat6x

make install clean

FreeBSD系统安装VMWareTools

mkdir -p /cdrom

mount -t cd9660 /dev/cd0 /cdrom

cd /tmp

tar zxf /cdrom/vmware-freebsd-tools.tar.gz

umount /cdrom

cd vmware-tools-distrib

./vmware-install.pl

判断VMWareTools是否安装好了

C. 安装最新的panabit升级包

先修改FreeBSD的ssh配置,使得可以使用root用户登录。编辑/etc/ssh/sshd_config文件,将一行“#PermitRootLogin no”修改为“PermitRootLogin yes”。然后下发命令“/etc/rc.d/sshd reload”重启sshd服务。

通过WinScp(使用root的帐号和密码)将最新的panabit升级包(目前是PanabitFREE_SANGUOr9_20150325_FreeBSD9.2_dev.tar.gz)上传到虚拟机的/tmp目录。

执行下面的黑体命令,安装panabit升级包。

编辑/etc/rc.local文件,添加一行“/usr/panabit/bin/ipectrl start”。

cd /tmp

tar zxf PanabitFREE_SANGUOr9_20150325_FreeBSD9.2_dev.tar.gz

cd PanabitFREE_SANGUOr9_20150325_FreeBSD9.2_dev

./ipeinstall


D. panabit的配置

管理接口分配IP,然后就可以通过“https://ip/” 来配置panabit了。默认的用户名为:admin,和密码为:panabit。

配置上行和下行数据接口,选择“网桥1”,同时注意不要把内网口和外网口配反了。


panabit关于网络服务质量的配置非常多。下面先讲一个非常简单的用法,更多的用法大家自己去研究吧。针对不同的网络应用,配置不同的优先级。

panabit支持非常多种网络应用的识别,多到我感觉有点多余的地步,试着摘了一部分。

首先添加一个高优先级的应用协议组“上网”,应用识别->自定义协议组->创建协议组,给协议组起个名字,然后点击提交。

为该协议组添加应用,有各种你想得到想不到的应用可选。我添加的应用有:DNS,电子邮件,其他HTTPS,WWW,Flash,Web音乐,HTTP代理和网络支付。

再添加一个低优先级的应用协议组“受限协议”,添加如下应用。

在策略管理中增加一个数据通道“NetWork”,按照办理的宽带带宽,配置通道带宽。

为该通道编辑每个优先级调度的保证带宽。按照我的理解,最高优先级调度不需要配置保证带宽,只需要为低优先级调度配置一个较小的保证带宽即可(为了低优先级调度不至于被饿死)。我的配置里,只用了1和6两个优先级,家里是50M光纤,所以就为优先级6配置10M的保证带宽。

在策略管理里创建一个策略组“优先级调度”。

为这个策略组添加策略,将下行的“上网”协议的优先级设置为1,放到数据通道“Network”中。

将下行的“受限协议”协议的优先级设置为6,放到数据通道“Network”中。配置完,如下图。

最后在策略调度中,将“优先级调度”设置为缺省策略组。

这样,一个最简单的调度规则就可以使用了。

第三步,pfSense

A. 下载和安装

  1. 下载地址,对于64位CPU,请下载AMD64(64-bit)的Live CD with installer,目前最新版本为2.2.3。将下载的ISO文件上传到加载到ESXi的数据存储器上。


  2. 通过vSphere Client创建新的虚拟机。配置:选择“自定义”;虚拟机版本:选择“版本:8”;客户机操作系统,选择“其他->FreeBSB(32位)”;CPU分配1个;内存分配1G;网卡分配3个(全部选E1000模式,pfSense系统默认第一个口是WAN口,第二个口是LAN口,为了简单起见,就按照这样配);磁盘分配1G;

  3. 将上传的ISO加载到虚拟机的CD驱动器。

  4. 启动虚拟机,等待若干分钟后,会提示安装系统到硬盘,输入99。后面的步骤就不赘述了(一页一页截屏太辛苦了),安装好会提重启。


  5. 重启后系统默认WAN1用动态DHCP IP,LAN口IP是192.168.1.1。选择Option2,把LAN口的默认IP改为自己想要的地址,比如我用的是192.168.18.1,同时启动LAN口的DHCP和webConfigurator。



B. 配置

通过web登录到“IP:80”来管理pfSense路由器,默认的登录用户是admin,密码是pfsense。第一次登陆,会有一个用户指引,帮助你完成最初的配置。

Hostname随便配。

设置时间同步服务器和时区,这一步还是比较重要的,不配对有可能造成无法升级或安装扩展包。

配置WAN口,根据自家运营商的情况配。一般ADSL是PPPoE,光纤接入很多都是DHCP了。

配置LAN口IP和掩码

更改pfSense的密码

点击Reload,路由器就可以使用了。

此时,请一定要安装VMWareTools。方法是:通过web登录路由器,点击 System>Packages。然后在“Available Packages”中选择“Open-VM-Tools”,并点击安装。(有可能需要disble WAN口的IPv6才行)。

关于其他配置和应用,有详细的教程,请看这篇(中文)~~以及这篇(英文,官方)。

补充说明:

  1. 注1:关于多WAN的配置,请看这篇。由于我家里只有电信宽带,而且不支持多拨。没有实践没有发言权,所以这一块就不说了。


  2. 注3:关于如何解决DNS污染,这个正好也是搞虚拟机的长项,不过讲讲也要一篇文章了。个人感觉目前这个问题还不算是大家的痛点,那就有空再写吧。


总结

写了半天,怎么才能体现出pfSense+panabit的优越性呢?想了半天,还真不好写。

最后还是举个例子吧。本人目前在某公司的杭州分部工作。一共十来个人,一共有二三十个终端设备(电脑+手机)的上网需求。由于人数比较少,所以总部一直没有给我们配专用的企业路由器,而是拿一个家用路由器凑合着用(屌丝公司......)。于是时不时就会发生网络没响应,或者路由器死机的情况,民怨极大。

自从我上个月引入了ESXi+pfSense+panabit的组合(硬件是7年前的Q35+E8400),十几个人挤一个4M的小水管,居然再也没有发生过网络不可用的故障。即使有多个人同时下载,也不会影响上网查询资料。好评率爆棚啊!!

下面是一些panabit的统计截图:

老实说,这篇文章只讲到了一些皮毛,仅供入门而已。网上有各路大神对pfSense和panabit的各种玩法,建议大家上网搜搜,保证能够大开眼界。

下篇预告,All in One Server添加HTPC功能。

展开阅读全文