今天有日食,这里我就盗用下朋友拍的日食图镇楼~!
背景
好了,正文开始。
前段时间阿里云搞活动,于是就买了一台 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:
注意如果你的应用商店打不开,需要执行下面的操作:
- 打开“运行”输入 inetcpl.cpl (“WINDOWS”+“R”键,输入 inetcpl.cpl亦可)
- 点开高级往下拉,勾上"使用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 安全中心,点击下方的高级设置
选择左侧入站规则
然后点击右侧 新建规则
选择 端口
-> tcp
-> 特定端口
-> 填入刚刚设置的 Port 默认 22
-> 允许连接 -> 提交
连接的网络根据你本地的网络连接情况选择,搞不清楚就公用、专用全选好了,端口添加后即可正常访问了。
如果需要限制服务器的访问权限,如指定局域网或外网可连接的客户端IP,则看下面:
双击刚才添加的入站规则名称进行配置
选择作用域
选项卡,填写允许或拒绝的IP即可
这样 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页面,可以直接在网页中对域名进行添加映射,即使不在服务器现场,也可以远程管理。
我们记录下域名和准发服务器 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 环境、加写博客总结,感觉收货是满满的,也很有成就感!
参考文档
- 详细了解什么是UEFI启动
- 传统bios引导与uefi引导之比较
- 三分钟告诉你MBR和GPT的区别,选择适合自己的
- MBR与GPT
- 旧电脑搭建linux服务器
- 怎么开外网端口(开外网)
- win10内置linux系统设置默认用户
- 为什么win10应用商店打不开
- 想学Linux,但版本太多了,如Fedora、SuSE、Redhat、Ubuntu等,不免让人眼花缭乱,那么初学者该如何选择呢
来源:oschina
链接:https://my.oschina.net/kaisesai/blog/4318661