上一篇博客更新,2019-10-24,也是一个蛮久的时间了。今天就更新一下吧。
最近因新型冠状病毒的问题,都不敢外出玩了,每天宅在家,无聊的一批,不知道干啥,本来想做个基于Golang的一个软件安装器,那个也进入了设计阶段,不知道以后会不会更新一下博客,也不知道。于是我看了一下我脚下的那台从老姐家拿过来的旧硬件组成的电脑,我想起了我博客老早老早以前的一篇文章--->【未验证方案】关于组建自家NAS的两个经济方案,里面我记录了两个方案,第一方案的所有条件都达成了,然后立刻马上动身起来,把那台主机里面原有的系统清理掉,装新系统,安装相关软件,现在成功做到了家用服务器了,包括外网可连接、云储存、家用下载器等等。花了不少时间,现在写一下整个过程吧。

准备工具

  1. 一台完整的可启动电脑(可参考博客的方案,无独显要有核显,因为要连接显示器配置相关设置)
  2. 一个路由器,路由器必须支持DDNS,端口映射功能
  3. 一个可以安装系统的U盘,推荐16G
  4. 一个Linux安装包(本文以CentOS 7为例,其他系统雷同,可根据实际调整操作)
  5. 一个公网IP的网络环境

开始实战

设计方案(基于上面提到的文章设计)

设计方案1~7点是严格顺序的,请不要漏做或先做某一步

  1. 装机:首先给电脑安装上系统(本文使用Centos7,下文不再重复),系统安装本文不多阐述,可以参考网上教程,此处用U盘安装,部分发行版系统有Server版本,CentOS内置了Server版本可直接选择。记得在安装过程中设置Root账户密码。
  2. 配网:设置静态IP,静态IP的网段需要和路由器网关一致,例如路由器网关是192.168.1.1/24,那么静态ip的设置也必须遵循网关,设置192.168.1.x,掩码位255.255.255.0,这里不多叙述IP的相关知识。还要设置DNS,DNS按照当地的DNS设置即可。相关设置也要修改,例如开机自启网络等等。
  3. 启动ssh:新版本的一些发行版系统需要修改sshd_config文件来对ssh开启支持密码登录,当然也可以通过生成秘钥来做后期登录。
  4. 主机部署:(这一步按照实际情况可以不做)此时可以断开一些外置设备连接,例如显示器、键鼠、U盘等。转移台式机位置,放到路由器旁边,用网线连接到路由器的LAN口上,接通电源开机。
  5. 连接主机:利用Xshell、CMD自带ssh、OpenSSH等工具,通过SSH连接上主机。
  6. 系统部署:更新内核,关闭SElinux,根据需要安装一些工具满足自己的使用。
  7. 路由器设置:路由器设置好DDNS,端口映射后期根据自己实际使用开放相关端口。
    完成上面7步的操作,基本就完成了整个服务器的部署了,后期也可以通过设置定时任务等功能对服务器进行定期备份、休眠等操作保证服务器稳定运行和省电等。

PS:这里解释一下为啥不用CentOS8,因为CentOS8更改了很多东西,导致一些在CentOS工具无法用yum和dnf比较快捷的安装,包括网络管理也用了nmcli,截止这篇文章撰写时间,我对nmcli也只是出于略知的状态,虽然可以安装network管理工具,但是一些工具依然不好支持,一些依赖也不好安装,也有可能是我没摸懂,以后再做处理,而且我发现CentOS7支持到2024年,问题不大。所以我这篇文章依然用CentOS7,以后如果摸懂了CentOS8的话,我再做个记录吧。

配网

一般系统自带的是DHCP,所以在安装完系统,插上网线会自动连接网络,但是因为服务器不能使用动态ip。
先确定相关网络软件是否安装:
输入ifconfig,查看是否有该命令,如果有会显示当前的ip信息和网卡名称,找到内置网卡的名称。
如果输入以上命令提示无该命令,需要先安装相关工具:net-tools,输入以下命令安装:

yum install -y net-tools

找到网卡配置文件,centos网卡配置文件在:/etc/sysconfig/network-scripts/ifcfg-*****为你的网卡名称,输入ifconfig可看到,本文以eth0*为例),然后进入编辑模式:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

出现以下内容:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp                            //此处是网卡的启动协议,默认是dhcp,这里需要改成static(静态)
DEFROUTE=yes 
IPV4_FAILURE_FATAL=no
IPV6INIT=yes                              //此处是打开ipv6,可以改为no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=********-****-****-****-************ //此处文章保密,无需改成*
DEVICE=eth0
ONBOOT=no                                 //此处是网卡开机启动,默认no,改成yes

然后在末尾处添加以下内容:

IPADDR=192.168.1.1        //静态IP,根据路由器的网关改
NETMASK=255.255.255.0     //子网掩码,根据路由器的设置改,一般是255.255.255.0
GATEWAY=192.168.0.1       //网关,输入路由器网关,一般是路由器的登录ip
DNS1=202.96.128.86        //主要DNS,查询当地的DNS
DNS2=8.8.8.8              //备用DNS,可选,8.8.8.8为谷歌的DNS,可以试试114.114.114.114

设置完成之后,保存退出,重启电脑。

启动ssh

启动ssh并不难,其实就一两部,先确认ssh是否安装,如果没有,需要先安装。
检查是否安装:

yum list openssh-server

安装ssh:

yum install -y openssh-server

启动ssh:

systemctl start sshd

开机自启:

systemctl enable sshd

这里稍微提一下一些新版的系统,ssh会限制ssh通过密码登录,强制用户使用秘钥登录,如果不想要秘钥登录,需要解除默认的禁用ssh密码认证方式。
先打开ssh的配置文件:

vi /etc/ssh/sshd_config

找到#PasswordAuthentication no,把#去掉,然后把no改为yes,保存,重启ssh服务即可.
关于秘钥登录方法:参考此文章->CentOS8服务器SSH远程密钥登录
我个人建议最好使用秘钥登录,安全性大一点。

系统部署

更新内核

一般来说,刚安装完成的系统,内核版本都不一定会是最新,但是新一点的内核对兼容性而言会更加好,所以我们先更新一下内核。
以下是分点步骤:
1.清理所有yum缓存并更新系统所有软件

yum clean all && yum update

2.检查当前系统版本

cat /etc/redhat-release

3.检查当前内核版本

uname -sr

4.安装elrepo仓库

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org &&
yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm

补充说明一下,因为系统是CentOS 7,所以yum安装的是上面这个仓库,如果是CentOS 8或者更低版本,就要选择不同的。以下是elrepo仓库官网:ElRepo官网
5.安装内核

yum --enablerepo=elrepo-kernel install kernel-ml

6.设置GRUB默认内核版本

vi /etc/default/grub

找到GRUB_DEFAULT,把=后面改为0,保存即可。
运行命令重新创建内核配置:

grub2-mkconfig -o /boot/grub2/grub.cfg

7.删除原来的内核

rpm -qa | grep kernel
//此时会列出一串安装包,然后利用'yum remove'把除了最新的内核之外的所有内核文件卸载掉即可。

8.重启机器

reboot

关闭SElinux

参考文章-> 关闭SElinux

安装相关工具

其实也没有什么工具需要安装,但是要提一下的是,有些软件因为系统安装时,每个人的安装情况不同,不保证会安装上,所以以下软件可以看看有没有装:

unzip
zip
wget
tar
firewalld
...//还有很多暂时没想到,因为目前我也就用这些

这里推荐一些服务器工具

caddy        //有写过博客文,这里不多阐述,caddy需要安装epel仓库,或者选择官方安装
Aria2        //一个下载工具
filebrowser  //一款web端文件管理工具
samba        //samba文件管理

配置仓库

配置仓库不多说,每个仓库配置方式有差异,可以去相关官网查看配置仓库的参数文件怎么写。
所有仓库配置文件均放在:

/etc/yum.repos.d/

yum使用仓库的时候在命令加上--enablerepo=仓库名即可

路由器设置

DDNS设置

这里以TPLINK为例,DDNS一般路由器都会支持花生壳,而TPLINK自带免费稳定的DDNS服务,只要注册TPLINK账号即可使用,进入路由器的DDNS功能页面,把相关的内容填写即可。不同路由器的操作方法不一样,这里不再叙述。
TPLINK DDNS官方教程->TP-LINK DDNS动态域名的使用方法

端口映射

部分路由器此功能的名称是虚拟服务器,其实都一样,此功能分外部端口和内部端口,外部端口指的是外网连接到该路由器的端口,例如,假设动态域名是house.tpddns.cn,如果外部端口指定了7171,那么在使用动态域名的时候就要输入house.tpddns.cn:7171,这样外网就能连接到路由器上了,而内部端口就是服务器提供连接到路由器上的端口,假设服务器指定了8383端口,那么只要在路由器的端口映射上指定内部端口为8383,外部端口7171,ip是服务器的本地ip(指定的静态ip),就可以外网从动态域名的7171端口连接上内网本地服务器的8383端口。
要注意的是,外部端口不能一样,内部端口因为和ip绑定,内部端口不同ip是可以在列表中重复的,外部端口直接决定了数据是发送到哪个设备上的。
TPLINK端口映射官方教程->虚拟服务器设置指导

DMZ主机

这个的使用不需要做端口映射,打开DMZ主机默认把指定的IP所有端口都打开(前提是没设置防火墙),如果是单一服务器可以用这个。
TPLINK DMZ主机官方教程->DMZ主机的使用设置

防火墙设置

其实这一条应该是放在上面系统部署上面的,但是我觉得和网络有关系就放在这里说一下,服务器推荐打开防火墙,然后需要什么端口就开放什么端口,不建议所有端口打开,比较安全。
参考文章-> firewalld防火墙使用

最后

其实也没啥好说的了,整体部署就差不多这样了,后面一些samba的使用我找个时间再整理(不知道会不会咕咕咕233),总之我算是完成了我19年的设计设想,心满意足了。

参考文献

  1. CentOS 7. × 系统及内核升级指南
  2. CentOS网络配置详解
  3. 找不到命令 ifconfig
  4. linux安装ssh和开启 ssh服务
  5. 禁用了ssh的密码认证方式导致无法登陆