ubuntu18.04通用初始化 环境:Ubuntu 18.04.6 LTS
1、开启root密码登录并限制 AllowUsers 1 2 3 4 5 6 7 8 9 curl ifconfig.me vim /etc/ssh/sshd_config PermitRootLogin yes AllowUsers root@127.0.0.1/32 root@本机所在的外网网段/31 root@内网ip段 systemctl restart ssh
如果出现无法ssh到主机的情况,查看主机/var/log/auth.log日志,可以知晓为什么 ssh 连不上
2、centos关闭selinux2. 1 2 3 4 5 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config && setenforce 0 或 setenforce 0 > /dev/null 2>&1 || true sed -i s/^SELINUX=.*/SELINUX=disabled/g /etc/selinux/config
3、设置主机名 1 2 hostnamectl set-hostname zznn1
设置完主机名后,输入 bash,或者重新 ssh 到主机,可以显示设置后的主机名
4、设置host 1 2 3 4 vim /etc/hosts 10.0.0.18 zznn1 10.0.0.19 zznn2 10.0.0.20 zznn3
5、设置免密登录 1 2 3 4 5 ssh-keygen ssh-copy-id zznn1 ssh-copy-id zznn2 ssh-copy-id zznn3
6、修改ulimit 1 2 3 4 5 6 7 8 9 cat >> /etc/security/limits.conf <<EOF * - nofile 65535 * - nproc 65535 root - nofile 65535 root - nproc 65535 EOF ulimit -HSn 65535ulimit -a
6、关闭swap 1 2 swapoff -a sed -i /swap/d /etc/fstab
7、修改内核参数 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 vim /etc/sysctl.conf net.ipv4.ip_forward = 1 net.ipv4.ip_local_port_range = 1024 65535 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_mem = 786432 1048576 1572864 net.ipv4.tcp_rmem = 32768 436600 873200 net.ipv4.tcp_wmem = 8192 436600 873200 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_window_scaling = 0 net.ipv4.tcp_sack = 0 net.core.netdev_max_backlog = 30000 net.ipv4.tcp_no_metrics_save = 1 net.core.somaxconn = 282144 net.ipv4.tcp_syncookies = 0 net.ipv4.tcp_max_orphans = 262144 net.ipv4.tcp_max_syn_backlog = 262144 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syn_retries = 2 vm.overcommit_memory = 1 vm.max_map_count = 262144 net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_keepalive_probes=3 net.ipv4.tcp_keepalive_intvl=15 net.ipv4.tcp_keepalive_time=1800 net.core.somaxconn=65535 fs.file-max = 2000000 fs.inotify.max_user_watches = 2000000 sysctl -p
8、配置没有外网ip的主机访问外网 参考:配置snat使无法出外网的机器通过其他机器出外网
8.1、配置snat使无法访问internet的内网机器通过其他机器出外网 现象:1.10 与 1.11 互通 1.10 无法访问 internet
内网
外网
备注
10.5.1.10
不能出外网
ubuntu22.04机器1
10.5.1.11
223.100.200.159
ubuntu22.04机器2
8.1.1、配置snat使1.10可以访问 internet
不能访问外网的机器1.10 配置snat通过1.11 出外网 ( 两台机器先关闭centos 防火墙 / 安装软件net-tools 用以使用route命令)
不能出外网的机器1.10 添加默认路由 配置能出外网的机器内网地址(10.5.1.11)为默认路由
8.1.1.1、不能出外网机器 10.5.1.10网卡配置 1 2 3 4 5 6 7 8 9 10 11 12 13 network: ethernets: ens33: dhcp4: no dhcp6: no addresses: 10.5.1.10/24 optional: true gateway4: 10.5.1.11 nameservers: addresses: [114.114.114.114,8.8.8.8] version: 2
或者临时配置默认路由测试
1 route add default gw 10.5.1.11
8.1.1.2、可以出外网机器 10.5.1.11 配置端口转发与iptables规则 端口转发
1 2 3 sysctl net.ipv4.ip_forward=1 sysctl -p
配置snat iptables规则
使这个段10.5.1.0/24的都可以通过公网IP出外网
不可以出外网机器内网网段:10.5.1.0/24
可以出外网机器外网IP:223.100.200.159
1 2 3 4 iptables -t nat -A POSTROUTING -s 10.5.1.0/24 -o eno2 -j SNAT --to-source 223.100.200.159 iptables -t nat -A POSTROUTING -s 10.5.1.10 -j SNAT --to-source 223.100.200.159
此时不能出外网机器便可以出外网。
9、设置DNS 1 2 sed -i s/ systemctl restart systemd-resolved.service
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 cp /etc/apt/sources.list /etc/apt/sources.list.bakcup cat > /etc/apt/sources.list <<EOF deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse EOF apt update
(10. 设置apt源(22.04))
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 cp /etc/apt/sources.list /etc/apt/sources.list.bakcup cat > /etc/apt/sources.list <<EOF deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse EOF cat > /etc/apt/sources.list <<EOF deb http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse EOF apt update
11、安装常用软件 1 2 3 4 5 apt install -y python sshpass telnet vim wget curl unzip git gcc make lrzsz nmon smartmontools ntpdate apt install -y sshpass telnet vim wget curl unzip git gcc make lrzsz nmon smartmontools ntpdate
12、设置时区 1 2 3 4 5 6 timedatectl set-timezone 'Asia/Shanghai' ntpdate ntp1.aliyun.com systemctl restart cron
或
1 2 3 4 5 6 7 cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime > /dev/null 2>&1 && echo 'Asia/Shanghai' > /etc/timezonetimedatectl set-timezone 'Asia/Shanghai' ntpdate ntp1.aliyun.com > /dev/null 2>&1 (crontab -l 2>/dev/null | grep -v "^#" || true ; echo "0 * * * * /usr/sbin/ntpdate ntp1.aliyun.com" ) | sort - | uniq - | crontab -
设置时间为24小时制
1 2 3 vim /etc/default/locale LC_TIME=en_DK.UTF-8
然后重启服务器即可生效,date命令查看是24小时时间格式
13、清空磁盘 如果服务器上有多块磁盘,建议除系统盘外,对所有盘执行清理操作
1 2 3 dmsetup remove_all wipefs -a /dev/sd{b..g}
14、docker 挂盘 如果系统盘小于 100g,需要为 docker 单独挂盘,如果系统盘比较大,则无需为 docker 单独挂盘
1 2 3 4 5 6 7 mkfs -t ext4 /dev/sdb mkdir -p /var/lib/dockermount /dev/sdb /var/lib/docker vim /etc/fstab /dev/sdb /var/lib/docker ext4 defaults,noatime,data=writeback,barrier=0,commit=10 0 0
note: 挂载时必须要确保挂载目录为空没有任何数据 否则会造成数据丢失 如果需要挂载目录存在数据 则需要先进行数据迁移挂载后再次迁入 否则一旦挂载 该目录数据 会即刻消失 且无法找回。
15、扩展 关于defaults,noatime,data=writeback,barrier=0,commit=10 0 0
这是一个典型的 /etc/fstab 文件中的行,用于挂载一个磁盘分区到 /mnt 目录,并指定了一些挂载选项。让我为您解释这个行中的各个部分:
/dev/vdb:这是要挂载的磁盘分区的设备文件路径。在这个例子中,/dev/vdb 表示第二个磁盘(通常,第一个磁盘是 /dev/vda)上的第一个分区。
/mnt:这是要将磁盘分区挂载到的目标目录。在这个例子中,磁盘分区将被挂载到 /mnt 目录下。
ext4:这是文件系统类型,指示磁盘分区使用的文件系统。在这个例子中,它是 ext4 文件系统。
defaults:这是一组默认挂载选项,通常包括文件系统的读写权限等。这里指示使用默认选项。
noatime:这是一个文件系统挂载选项,它告诉系统不要更新文件和目录的访问时间戳(atime)。这可以提高性能,因为系统不必在每次文件访问时更新时间戳。
data=writeback:这是用于指定文件系统的数据写入策略的选项。在这里,使用了 writeback 策略,它可以提高写入性能。
barrier=0:这个选项禁用了数据同步(barrier)操作,同样是为了提高性能。但请注意,禁用 barrier 可能会增加数据丢失的风险,因此在特定用例中需要小心使用。
commit=10:这个选项设置数据提交(commit)的延迟时间,单位是秒。在这里,设置为10秒,这意味着系统将每隔10秒将挂载的文件系统中的未提交数据写入磁盘。
0 0:这是文件系统的 dump 和 fsck 选项。通常情况下,这些设置为0,表示不需要进行备份和文件系统检查。
请确保在修改 /etc/fstab 文件之前,你了解自己的需求和文件系统的特性,以确保选项的设置是适合的。错误的挂载选项可能会导致数据损坏或性能问题。
详情参考: note环境部署部分 初始化到此结束。