旧电脑变废为宝!

好了,正文开始。

前段时间阿里云搞活动,于是就买了一台 ESC 云服务器,作为自己的平时学习各种技术和项目部署的机器。

但是随着项目和技术的更新,一些技术是需要安装相关的服务,比如缓存服务 redis、数据库mysql、消息队列 kafka、Web服务 nginx(openresty)、分布式协调服务 zookkeeper、分布式搜索服务 elasticsearch、大数据相关实时流计算服务 storm 以及自己项目部署等等等的一系列的服务,它们都是需要安装与部署。

然而服务的安装部署是需要内存的!本人买的 ESC 机器的内存很小,只有 2G(因为穷(^_^)买不起高配置的机器)!显然 2G 的内存是不够的。

需求

既然云服务器的内存不够了,那就加再机器吧!再买一台云服务?算了再买的话没有优惠不划算(还是因为穷)!

想了想家里还有一台大学时期的联想笔记本(z485),那就用它吧!

这台电脑到现有有 9 年的时间了,算是个老古董。工作之后我对它进行配置进行了升级,在原来的 4G 内存基础上再加了 4G 内存,在 500G 的机械硬盘基础上加了一个 128G 的固态硬盘,这些配置当个平时用的服务器应该还行吧!

因为对 CentOS 发行版比较熟悉,所以我准备把这台笔记本装个 CentOS 发行版的 Linux 操作系统,然后安装 docker 程序,在它上启动各种所需要的服务!

那废话不多说,咱们开干!

Linux 发行版介绍

注意,Linux 的发行版有很多,根据软件包管理系统的不同分为两类:基于Dpkg (Debian系)和基于RPM (Red Hat系)。具体参见 https://zh.wikipedia.org/wiki/Linux%E5%8F%91%E8%A1%8C%E7%89%88

这两个派系,其中都包含商业发行版和社群发行版。

基于Dpkg (Debian系):

基于RPM (Red Hat系):

基于其他包格式

  • ArchLinux,一个基于KISS(Keep It Simple and Stupid)的滚动更新的操作系统。
  • Chakra,一个从ArchLinux派生出来,只使用KDE桌面的半滚动更新发行版。
  • Gentoo,一个面向高级用户的发行版,所有软件的源代码需要自行编译。
  • Slackware,最早的发行版之一,1993年创建,由Patrick J. Volkerding维护。

方案

方案一:直接安装 CentOS 7.8 版本的 Linux 系统

因为笔记本比较老,所以就没有采用 UEFI 模式启动,并且将两个磁盘采用传统的 MBR 分区表方式进行分区,并且做格式化操作。计划在 128G 的固态硬盘上装入系统,500G 的机械硬盘存储数据。

与是开始下载 CentOS 7 的镜像(我选择了在国内阿里云镜像上下载 CentOs7 镜像),准备好一个 8G 的 u 盘,通过软通牒软件将 CentOS 7.8 的镜像写入 U 盘。然后开始重启电脑进行安装。

但是!出现了一个问题, 安装时进入到 CentOS 7 的安装画面,选择第一步安装,然后就黑屏,屏幕左上角有一个下划线光标在闪烁,然后就没有然后了。上网找各种文章,大部分都是说 U 的盘符名称与进行安装时选择的盘符名称不一致导致的,需要在进入安装界面时通过键入 e(UEFI 启动模式) 或者 tab(传统启动模式),然后修改出现的中一行命令中的参数变量值,修改为你的 U 盘的真正名称。

但是!修改了完了还是不好使...于是继续找资料继续瞎折腾了大半天的时间。

最后无果。放弃安装 CentOS 7.8。

参考资料:

方案二:降级安装 CentOS 5.5 版本的 Linux 系统

既然 CentOS 7.8 版本不能够安装,那我就降低版本,使用 CentOS 5.5 版本来继续安装!

于是又开始把 CentOS 5.5 通过软通牒软件写入 U 盘,继续开始装!

重启机器,设置 U 盘启动,选择第一个选项安装,OK!终于到了安装界面(内心有点小惊喜)!不过,接下里就有失望了,根据提示选择安装语言,下一步选择键盘,再下来出现选择镜像所在的盘?显示有 /dev/sda、/dev/sb1、/dev/sdb2、/dev/sdb3、/dev/sdb4 这些盘符,挨个选择之后。然后继续上网找资料,说是要把安装 CentOS 5.5 的 ISO 镜像放到某个盘的根目录去,照着做了后,继续安装,选择镜像磁盘,还是不行。继续放弃了。

参考资料:

官方强烈建议不要安装 CentOS 6.5 以下的版本。

方案三:采用安装 win10 操作系统并装入 Linux 子系统

既然无法直接安装 CentOS 系统,那我就通过利用window10 的 Linux子系统以及花生壳内网穿透工具,搭建一台Linux。

那就开始搞了。

这里也可以使用虚拟机来安装 Linux 系统,不过以前装过,这次想尝试下新的技术装 Linux。

1. 准备一个已经通过大白菜软件制作好 pe 系统的 u 盘,把 win10 镜像放入u 盘。

2. 重启设置 u 盘启动,进入到 pe 系统,选择 win10 镜像把系统安装到 128G 的固态硬盘上。

3. 安装好了之后,重启电脑,进入到 win10 系统开始进行初始化配置、安全更新、激活等操作。

4. 开始安装 Linux 子系统

选择“开发者选项”,打开开发者模式

在这里插入图片描述

进入“启用或关闭Windows功能”设置 打开适用于linux的Windows子系统

在这里插入图片描述

在应用商店下载Linux子系统: 搜索Linux:

在这里插入图片描述

注意如果你的应用商店打不开,需要执行下面的操作:

  1. 打开“运行”输入 inetcpl.cpl (“WINDOWS”+“R”键,输入 inetcpl.cpl亦可)
  2. 点开高级往下拉,勾上"使用TLS 1.2"选项,或者点还原高级设置。

选择想要的版本:

在这里插入图片描述

这里我选择了 Ubuntu 下载安装。安装完毕之后,设置用户名和密码。不过这里需要设置用户的用户名和密码。设置完毕之后我们要设置 root 账户的密码。

5. 进入 Ubuntu 系统,更新 apt 镜像源

因为 Ubuntu 用的软件管理包的现在安装工具是 apt 软件,我们更新它的镜像源为国内的阿里云镜像,这样下载软件速度会飞起来!

备份/etc/apt/sources.list

sudo cp /etc/apt/sources.list /etc/apt/sources.list-backup

编辑替换为阿里源(Ubuntu)

sudo vim /etc/apt/sources.list
添加以下内容
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable

更新软件

sudo apt update
sudo apt upgrade

6. 安装 openssh 服务,提供远程登录的功能

安装ssh

sudo apt install ssh

修改sshd配置

# 备份sshd配置文件
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config-bak
# 修改内容
Port 22 # 取消注释
ListenAddress 0.0.0.0 # 取消注释
#StrictModes yes #加注释
PasswordAuthentication yes # 允许密码登录

启动ssh

sudo service ssh start

如果提示sshd error: could not load host key,执行:

sudo rm /etc/ssh/ssh*key
sudo dpkg-reconfigure openssh-server

查看服务状态

sudo service ssh status
# * sshd is running 显示此内容则表示启动正常

不要忘了,配置防火墙开启端口才能被其他PC访问

打开 Win10 防火墙设置,(可以通过右下角有个向上的箭头点击盾牌快速进入面板)Windows Defender 安全中心,点击下方的高级设置

1

选择左侧入站规则 然后点击右侧 新建规则

2

选择 端口 -> tcp -> 特定端口 -> 填入刚刚设置的 Port 默认 22 -> 允许连接 -> 提交

连接的网络根据你本地的网络连接情况选择,搞不清楚就公用、专用全选好了,端口添加后即可正常访问了。

如果需要限制服务器的访问权限,如指定局域网或外网可连接的客户端IP,则看下面:

双击刚才添加的入站规则名称进行配置

选择作用域选项卡,填写允许或拒绝的IP即可

3

这样 SSH 服务就配置好了

参考资料:

7. win10 Linux 子系统开机启动启动 ssh 服务

上面配置了 ssh 服务,不过注意 win10 重启后,需要重新bash进入子系统手动启动 ssh 服务才可以使用。我们通过 win10 的开机自动启动服务执行脚本来让 Linux 子系统启动 ssh 服务。

1、关闭 sudo 输入密码的限制,更改 /etc/sudoers 文件内容,加入 %sudo ALL=NOPASSWD: /etc/init.d/ssh

sudo vim /etc/sudoers
# 添加内容
%sudo  ALL=NOPASSWD: /etc/init.d/ssh

2、在 windows 下创建 Ubuntu_ssh_start.vbs 脚本,放置在 C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 目录,以 ubuntu18.04 为例。如果你安装的是 ubuntu16.04,更改 vbs 脚本中的 ubuntu1804 为 ubuntu1604 即可,我这边装入的就是默认的 Ubuntu,所以直接执行 ubuntu 就可以。 脚本内容:

Set ws = WScript.CreateObject("WScript.Shell")
ws.run "ubuntu run sudo /etc/init.d/ssh restart", vbhide

参考资料

8. Win10系统下如何实现内网穿透

通常情况下,两台在不同局域网的电脑如果要进行传送数据,一般都需要先使用内网穿透才可以。

宽带为内网IP的用户即内网用户,以下范围内的IP地址属于内网保留地址,即不是公网IP,而是属于内网IP:

  10.0.0.0 - 10.255.255.255;

  100.64.0.0 - 100.127.255.255;

  172.16.0.0 - 172.31.255.255;

  192.168.0.0 - 192.168.255.255

例如某小区用户均被分配的内网IP,通过一个公共的网关访问外网,小区内每家用户的计算机均可连接外网,但是Internet上的其他用户却无法对内网的计算机发送连接请求,自然也就无法访问内网计算机所搭建的网站,也无法为内网计算机提供仅公网IP才能支持的下载、传输服务,例如BT下载、电驴等。

内网穿透即NAT穿透,通过端口映射将一台主机的内网(LAN)IP地址映射成一个公网(WAN)IP地址,让互联网上的用户可以通过此公网IP地址访问特定的内网主机所提供的网站或者服务器。

这里我们用花生壳内网穿透工具。

内网穿透教程:花生壳DDNS端口映射

花生壳官网:https://hsk.oray.com/

1、下载花生壳客户端,并且注册用户。

2、在Windows10系统内安装花生壳,完成后登陆。

3、点击客户端内网映射,则跳转至花生壳管理的内网映射web页面,可以直接在网页中对域名进行添加映射,即使不在服务器现场,也可以远程管理。

1

2

3

我们记录下域名和准发服务器 IP,配置到我们需要远程登录的机器的 ssh 信息上,方便登录,这样就实现了远程登录

5、搞定端口映射之后,内网用户也能同公网用户一样随心所欲使用强大的互联网服务了。除了搭建网站之外,完成内网穿透的用户还可以轻松实现远程桌面的搭建和访问、远程监控摄像头、自己开服玩游戏、搭建各类办公系统等等。

参考资料

9. Windows10内置ubuntu子系统安装后中文环境设置

下载中文语言包

   sudo apt-get install language-pack-zh-han*

安装man手册

sudo apt-get install manpages
sudo apt-get install manpages-de
sudo apt-get install manpages-de-dev
sudo apt-get install manpages-dev

设置本地化环境变量:

echo "LANG=zh_CN.UTF-8" >> ~/.profile

如果想设置全局环境变量:

sudo echo "LANG=zh_CN.UTF-8" >> ~/etc/profile

参考资料:

遗留问题处理

关于方案一和方案二的问题,还需要查找相关资料或者请教高手来解决下。

待办事项

后续把 docker 安装下。

总结回顾

通过一周末的折腾,终于实现了旧电脑变废为宝,实现了 Linux 环境提供服务资源。

这里涉及到的知识有:

  • 硬盘分区 MBR 与 GPT
  • 主板 BIOS UEFI 模式启动
  • 大白菜超级 U 盘装机工具
  • 软通牒制作u盘启动
  • U盘安装 CentOS 5.5 镜像
  • U盘安装 CentOS 7 镜像
  • pe 系统安装 win10、win7 系统
  • Win10 操作系统的 Linux 子系统特性
  • Win10 系统防火墙端口开放
  • Ubuntu 安装 openssh 提供远程登录功能
  • Win10 重启自动执行 vb 脚本来启动 Linux 子系统的 ssh 服务
  • win10 系统下通过花生壳软件实现内网穿透,提供外网访问功能
  • Ubuntu 设置中文环境

题外话,时间去哪儿了?

周六本来想要看继续学习后端 java 的某个老师讲的实战课程写一写实战代码,因为将解的该内容出涉及到安装一些服务软件,突然想到我的 ESC 服务器内存快不够用了,于是就是把旧电脑利用起来,提供一个 Linux 环境供我学习使用。结果这么一操作,加上写这边博客的时间,一个周末时间就没了...原本想要做的事情没有做....

做一件的事情的时候还是应该以主线为主,支线为辅。比如本周末,计划的主线是写代码,支线是装系统,结果本末倒置,装系统花了巨大的时间,代码却没有写几行。

不过通过各种方案装 Linux 环境、加写博客总结,感觉收货是满满的,也很有成就感!

posted @ 2020-06-27 08:56  小枷锁  阅读(858)  评论(0编辑  收藏  举报