内容简介:公司入职发了台 16G 内存的惠普笔记本,买了 Mac 之后一直闲置,在拖延许久之后终于抽时间将其换成 CentOS,来搞一些自己的服务放上面,毕竟 16G 内存还是很可观的配置。本篇讲述折腾过程。安装过程就不多说了,需要注意的就是关闭安全启动,启用传统模式(事实上启用之后是 UEFI 和传统模式混用,这种情况下 CentOS 会自动以 UEFI 模式进行安装)。这里有一个坑点在于如果在安装过程中选择无线连接,在安装完之后该连接无法启用。因为选择了最小化安装,网络管理相关的依赖是残缺的,所以需要在安装之后
公司入职发了台 16G 内存的惠普笔记本,买了 Mac 之后一直闲置,在拖延许久之后终于抽时间将其换成 CentOS,来搞一些自己的服务放上面,毕竟 16G 内存还是很可观的配置。本篇讲述折腾过程。
安装 CentOS
安装过程就不多说了,需要注意的就是关闭安全启动,启用传统模式(事实上启用之后是 UEFI 和传统模式混用,这种情况下 CentOS 会自动以 UEFI 模式进行安装)。这里有一个坑点在于如果在安装过程中选择无线连接,在安装完之后该连接无法启用。因为选择了最小化安装,网络管理相关的依赖是残缺的,所以需要在安装之后手动修复。
命令行模式下的网络连接
首先查看网络设备:
[root@localhost ~]# nmcli dev status DEVICE TYPE STATE CONNECTION wlp2s0 wifi unmanaged -- enp1s0 ethernet unavailable -- lo loopback unmanaged --
证明无线网卡没有被管理,需要将其纳入网络管理。
安装 NetworkManager-wifi
包重启即可,由于在安装过程中连接过无线网,那么在 /etc/sysconfig/network-scripts
目录下可以看到 ifcfg-[SSID]
的配置文件,那么重启之后会用该文件连接 wifi 网络。
没有网络怎么安装依赖包呢?挂安装光盘起本地镜像就好,在 /etc/yum.repos.d/CentOS-Media.repo
中指定了本地镜像源的挂载位置,挂在到相应位置启用即可。
设置公网访问
电信提供公网 IP,在路由器中将该电脑设备设置为 DMZ 区设备即可利用公网 IP 访问,需要注意的是启用 DHCP 的话内网 IP 可能变化,要在路由器配置中将特定的固定 IP 地址与设备 MAC 进行绑定,如此便确保 DMZ 区的设备始终为该电脑设备。
休眠问题
笔记本电脑合盖之后会自动休眠,需要进行配置,使其在合盖操作时依然保持运行状态。
编辑 /etc/systemd/logind.conf
文件,找到如下部分:
[Login] #NAutoVTs=6 #ReserveVT=6 #KillUserProcesses=no #KillOnlyUsers= #KillExcludeUsers=root #InhibitDelayMaxSec=5 HandlePowerKey=ignore # 按电源键时不做任何处理 #HandleSuspendKey=suspend #HandleHibernateKey=hibernate HandleLidSwitch=ignore # 合上盖子时不做任何处理 #HandleLidSwitchDocked=ignore #PowerKeyIgnoreInhibited=no #SuspendKeyIgnoreInhibited=no #HibernateKeyIgnoreInhibited=no #LidSwitchIgnoreInhibited=yes #IdleAction=ignore #IdleActionSec=30min #RuntimeDirectorySize=10% #RemoveIPC=no #UserTasksMax=
这里对该文件有详细的描述: https://www.freedesktop.org/software/systemd/man/logind.conf.html
到这里应该已经 OK 了,但是合上盖子后发现,即使通过局域网内进行 ssh 连接操作,都异常卡顿,网络连接非常慢。然而确实是可以连接上去的,服务器并没有休眠。这就让我开始怀疑除了上述控制休眠的设定之外,还有其他配置,猜测是由于电源管理的问题引起的。
由电源管理着手,搜寻资料,找到了一份 《Red Hat Enterprise Linux 7 电源管理指南》 。在其中发现了管理无线设备的工具,RFKill。此处引用原文介绍:
很多计算机系统包含无线电传输,其中包括 Wi-Fi、蓝牙和 3G 设备。这些设备消耗电源,在不使用这些设备时是一种浪费。
RFKill 是 Linux kernel 中的一个子系统,它可提供一个界面,在此界面中可查询、激活并取消激活计算机系统中的无线电传输。当取消激活传输时,可使其处于可被软件重新激活的状态(即“软锁定”)或者将其放在软件无法重新激活的位置(即“硬锁定”)。
刚开始以为这就是原因,后来才发现该软件包和 BIOS 设定中的启用硬件设备一样,都是为了在电脑运行时停止启用某些设备。
[root@localhost yum.repos.d]# rfkill list 0: hci0: Bluetooth Soft blocked: no Hard blocked: no 1: phy0: Wireless LAN Soft blocked: no Hard blocked: no 2: hp-wifi: Wireless LAN Soft blocked: no Hard blocked: no
要么启用,要么禁用。这跟合上盖子启用网卡节能的现象不太相符。后来同样在该手册中,我发现了ASPM(Active-State Power Management,活动状态电源管理)。
ASPM(Active-State Power Management,活动状态电源管理)能节省 PCI Express(PCIe,Peripheral Component Interconnect Express)子系统的电量,其原理为当 PCIe 连接没有处于使用状态时将其设定为低功率状态。ASPM 可以同时控制连接两端的电源状态,并且在连接终端的设备处于满电状态的情况下,仍然可以节电。
看描述和我遇到的问题比较相符,在如下文件中可以看到 ASPM 的策略配置。
[root@localhost yum.repos.d]# cat /sys/module/pcie_aspm/parameters/policy [default] performance powersave
在默认情况下,ASPM 是默认状态(default),即根据固件设置设定 PCIe 连接的状态。在上述文件中去直接更改设置是不可以的,修改的话系统会报写保护,手册中提到可以在启动时作为内核参数配置,参考 《在 CentOS 7 上设置 grub2》 尝试之:
[root@localhost yum.repos.d]# cat /etc/default/grub GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet pcie_aspm=off" GRUB_DISABLE_RECOVERY="true"
核心参数就是 pcie_aspm=off
。重启之后测试,立竿见影,当我觉得问题解决的时候。过了一个小时,又歇菜了,又开始陷入了卡顿。
这时考虑,可能默认的固件设置还是会生效,只是相比较系统的设置而言没那么严格,遂决定尝试更改策略,而不是完全禁用。将 GRUB 配置中改为:
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet pcie_aspm.policy=performance"
一切运行 OK,只能说服务器发行版运行于个人 PC 时,还是有或多或少的水土不服的。
配置免密登录
事实上 CentOS 7.4 之后,使用了 ssh 2.0 版本的协议,无需手动配置 sshd_config 来启用免密登录,默认是启用的。如果像之前那样配置 RSAAuthentication yes
选项,会在 /var/log/secure
记录中看到如下提示:
Nov 17 14:47:06 localhost sshd[11773]: reprocess config line 43: Deprecated option RSAAuthentication
此次设置公钥之后,仍然无法登录,搜索资料有说是 SELinux 引起的,关闭 SELinux 仍然无法免密登录。查找许久后发现是我本地的 ssh 连接配置出现了问题。
Host 192.168.1.* HostName %h User root IdentityFile ~/.ssh/xxx
我的局域网连接恰好和该 ip 段重复,所以一直使用错误的密钥文件进行连接。
添加了一条特殊的 ip 配置之后,问题解决,由此也说明 ssh 的 config 文件配置具体 ip 的优先级要高于表达式匹配,无所谓配置在文件中的先后顺序。
至此,便可以快乐的玩耍这台小鸡了。
-EOF-
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Minikube:运行在笔记本上的 Kubernetes 集群
- Golang并发实践:笔记本秒变暖宝宝
- [译] 用 Jupyter 笔记本做 Jaeger 数据分析
- Netflix 开源 Polynote:对标 Jupyter,一个笔记本运行多种语言
- python – 阻止jupyter笔记本单元格执行,直到收到特定消息
- 运行 Android 的笔记本 Cosmo 已众筹超 130 万美元
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Node.js in Action
Mike Cantelon、Marc Harter、TJ Holowaychuk、Nathan Rajlich / Manning Publications / 2013-11-25 / USD 44.99
* Simplifies web application development * Outlines valuable online resources * Teaches Node.js from the ground up Node.js is an elegant server-side JavaScript development environment perfect for scal......一起来看看 《Node.js in Action》 这本书的介绍吧!