Linux相关服务器系统的环境初始化工作

Linux相关服务器系统的环境初始化工作
必要核心库的初始化可以参见:rhel9初始化
开发环境相关配置可以参见:Linux开发环境常见配置

1. 配置网络

1.1.配置网卡-标准方式(rhel8及以后)

如果是 centos8 及以后:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 禁用IPv6
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
# 查看网卡
nmcli c show
# ens34是查看的网卡名称
# 固定本机IP
nmcli c m "ens34" IPv4.address 10.0.1.7/16
nmcli c m "ens34" IPv4.gateway 10.0.0.1;
# 固定dns
nmcli c m "ens34" IPv4.dns "10.0.1.20 223.5.5.5";
nmcli c m "ens34" IPv4.method manual;
nmcli c m "ens34" connection.autoconnect yes
nmcli c reload
nmcli c up ens34

1.2.network-scripts方式(rhel7及以前)

如果是 centos7 及以前,如果你没有挂载你的以太网卡,参见如下流程:

1
2
cd /etc/sysconfig/network-scripts/
ls -all

我的设备上,是如下名称:

1
2
3
4
total 8
drwxr-xr-x. 2 root root 26 Jan 4 02:15 .
drwxr-xr-x. 7 root root 4096 Mar 7 16:32 ..
-rw-r--r--. 1 root root 312 Mar 7 16:08 ifcfg-enp4s0

ifcfg-enp4s0是我的网卡名称,看看内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp4s0"
UUID="ce71599f-fa75-483e-aa75-6da97846cffb"
DEVICE="enp4s0"
ONBOOT="yes"

将你的ONBOOTDEFROUTE修改为yes,保存,并重启,网络就正常了

2.硬盘扩容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 安装必备工具
$ dnf install cloud-utils-growpart -y
# 扩容系统物理大小,注意,/dev/sda是你的硬盘,你需要根据你实际的情况指定,可以通过fdisk -l查看
$ fdisk /dev/sda

Command (m for help): p

Disk /dev/sda: 300 GiB, 322122547200 bytes, 629145600 sectors
Disk model: Virtual disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 17275980-77A0-40AD-8699-6033181819C3

Device Start End Sectors Size Type
/dev/sda1 2048 1230847 1228800 600M EFI System
/dev/sda2 1230848 3327999 2097152 1G Linux filesystem
/dev/sda3 3328000 83884031 80556032 38.4G Linux LVM

Command (m for help): d
Partition number (1-3, default 3): 3

Partition 3 has been deleted.

Command (m for help): n
Partition number (3-128, default 3):
First sector (3328000-629145566, default 3328000):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (3328000-629145566, default 629145566):

Created a new partition 3 of type 'Linux filesystem' and of size 298.4 GiB.
Partition #3 contains a LVM2_member signature.

Do you want to remove the signature? [Y]es/[N]o: N
Command (m for help): w

# 扩容分区,注意,/dev/sda是你的硬盘,可以通过fdisk -l查看
$ growpart /dev/sda 3;pvresize /dev/sda3;
# /dev/mapper/rl-root是你的分区的路径,可以通过df -h查看
$ lvextend -l +100%FREE /dev/mapper/rl-root;xfs_growfs /dev/mapper/rl-root;

3.SSH相关

3.1.ssh默认配置

ssh如果要开启公钥登录,除了常规的操作之外,你可能会发现你配置了所有的地方,还是不能正确的ssh登录,此时,你可能的问题是.ssh的读写权限存在问题:

1
2
3
4
5
6
cd ~
mkdir .ssh
touch .ssh/authorized_keys
chmod 700 .ssh; chmod 644 .ssh/authorized_keys
# 你可能还会遇到别的权限问题
restorecon -FRvv ~/.ssh

在你的客户端生成了密钥对之后,可以直接copy过去:

1
2
3
4
5
6
ssh-copy-id username@remote_host
# 也可以指定ssh的key
ssh-copy-id -i ~/.ssh/***.pub username@remote_host
# 也可以自己手动copy
cat ~/.ssh/***.pub
# 然后将内容copy到服务器的.ssh/authorized_keys里面

关闭密码登录

1
sudo vim /etc/ssh/sshd_config

PubkeyAuthentication设置为yes,PasswordAuthentication设置为no,然后重启ssh服务

1
sudo systemctl restart sshd

有可能会遇到问题这个问题:

1
Received disconnect from x.x.x.x port 22:2: Too many authentication failures

此时可以指定鉴权登录:

1
ssh -o IdentitiesOnly=yes vps2

3.2.SSH config相关

可以根据域名(Host)指定端口和公钥文件,这样你在ssh的时候,可以不必输入端口号

1
2
3
4
5
Host * 
IdentitiesOnly=yes
Host a.test.com
Port 10020
IdentityFile ~/.ssh/***

3.3.修改ssh的默认端口

可以参见修改SSH默认端口

查看CPU频率

1
cat /proc/cpuinfo|grep MHz|uniq

4.其他重要事项

4.1。防火墙

参考Linux防火墙常规配置

4.2.修改namespace数量

修改namespace数量,用于提高最大并发限制,可以参见rhel9初始化,适用于各个版本的Linux

1
2
3
4
5
6
#修改/etc/sysctl.conf
$ vim /etc/sysctl.conf
user.max_user_namespaces = 15000
vm.max_map_count = 262144
fs.file-max = 1000000
$ sysctl -p;

可能的shared library路径问题,例如:OSError: libsodium.so.23: cannot open shared object file: No such file or directory

1
2
3
4
5
6
7
8
9
# 查看库路径
echo $LD_LIBRARY_PATH
# 我的是空的
# 修改环境变量,指定路径
vim ~/.bashrc
# 添加如下路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/local/lib
# source 环境变量并查看
source ~/.bashrc;echo $LD_LIBRARY_PATH

5.代理加速

linux环境下的GUI,有些好用,有些不好用,总体还是推荐privoxy和ssr为内网提供http代理加速