https://learnubuntu.com/change-dns-server/ |
DNS 全局配合和网卡局部配置 systemd 239 中 systemd-resolve 已被重命名为 resolvectl
$ resolvectl status Global(全局配置) Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported resolv.conf mode: stub Link 2 (enp1s0)(某网卡局部配置) Current Scopes: DNS Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported Current DNS Server: 8.8.8.8 DNS Servers: 8.8.8.8 8.4.4.8 |
# vim /etc/resolv.conf nameserver 1.1.1.2 nameserver 1.0.0.2 |
1.最简单的方法
使用resolvconf命令设置,通过此命令永久设置dns
# 1.安装resolvconf # apt install resolvconf # 2. 修改head文件(此文件由resolvconf生成) # vim /etc/resolvconf/resolv.conf.d/head nameserver 1.1.1.2 nameserver 1.0.0.2 # 4.配置shengxiao # resolvconf -u # 3.开机启动服务 systemctl enable --now resolvconf.service |
注意:
|
2.非简单方法
修改/etc/netplan/目录下的yml文件
# 1.修改相关配置文件 # vim /etc/netplan/xxx.yml network: ethernets: enp1s0: dhcp4: true nameservers: addresses: [8.8.8.8, 8.4.4.8] version: 2 # 2.配置生效 # netplay apply |
注意:由于此配置是针对enp1s0网卡,因此dns只针对网卡局部生效。另外通过 netplay apply 生效后,dns配置不会加载到 /etc/resolv.conf 中。 |
3.配置生效总结
netplay apply 应用后,resolvconf 和 netplan 的配置通过 resolvectl status 查到,但是只有 resolvconf 的配置会写入 /etc/resolv.conf。
$ resolvectl status Global(全局配置) Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported resolv.conf mode: foreign Current DNS Server: 1.1.1.2 DNS Server: 1.0.0.2 Link 2 (enp1s0)(某网卡局部配置) Current Scopes: DNS Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported Current DNS Server: 8.8.8.8 DNS Servers: 8.8.8.8 8.4.4.8 $ cat /etc/resolv.conf nameserver 1.1.1.2 nameserver 1.0.0.2 |
Ubuntu 22.04 中
timesyncd 和 ntpd 区别:
注意:断点式更新会对某些服务产生影响,所以在生产环境要慎用! |
# 1. 配置时间同步 # vi /etc/systemd/timesyncd.conf [Time] # 一个空格分隔的NTP服务器列表 #NTP= # 一个空格分隔的NTP服务器列表,用作备用NTP服务器 #FallbackNTP=ntp.ubuntu.com # 最大可接受的"root distance"秒数(最大误差),默认值为 5 秒 #RootDistanceMaxSec=5 # NTP消息的 最小/最大轮询间隔秒数 #PollIntervalMinSec=32 #PollIntervalMaxSec=2048 # 2.查看时间同步 # timedatectl |
1、先通过
ip address |
和
ip link |
查看当前的 IP 地址情况,然后备份已有的 netplan 配置文件
ip address ip link ls /etc/netplan/ sudo cp /etc/netplan/01-network-manager-all.yaml /etc/netplan/01-network-manager-all_backup.yaml sudo nano /etc/netplan/01-network-manager-all.yaml |
2、参照下面的格式配置静态 IP 地址
network: version: 2 renderer: networkd ethernets: ens18: dhcp4: no addresses: - 192.168.1.22/24 gateway4: 192.168.1.101 nameservers: addresses: [8.8.8.8, 8.8.4.4] |
如果需要配置多个 IP 地址,可以参考下面的内容
network: version: 2 renderer: networkd ethernets: ens18: dhcp4: no addresses: - 192.168.1.22/24 - 192.168.1.23/24 - 192.168.1.24/24 routes: - to: default via: 192.168.1.101 nameservers: addresses: [8.8.8.8, 8.8.4.4] |
DHCP 的配置文件可以参考
# This is the network config written by 'subiquity' network: ethernets: eno1: dhcp4: true version: 2 |
4、保存后重启并应用网络配置
sudo netplan try sudo netplan apply sudo systemctl restart systemd-networkd |
系统处理 netplan 配置文件的逻辑
通过命令配置静态 IP 的方式需要对应的系统组件
sudo apt update sudo apt install network-manager nmcli con show sudo nmcli con modify 'Wired connection 1' ipv4.addresses 192.168.1.22/24 sudo nmcli con modify 'Wired connection 1' ipv4.gateway 192.168.1.101 sudo nmcli con modify 'Wired connection 1' ipv4.dns "8.8.8.8,8.8.4.4" sudo nmcli con modify 'Wired connection 1' ipv4.method manua sudo nmcli connection modify 'Wired connection 1' ip4 192.168.1.22/24 gw4 192.168.1.101 ipv4.dns 8.8.8.8 sudo nmcli con down 'Wired connection 1' sudo nmcli con up 'Wired connection 1' nmcli con show 'Wired connection 1' nmcli con show 'Wired connection 1' | grep ipv4.addresses |
# vim /etc/login.defs PASS_MAX_DAYS 90 PASS_MIN_DAYS 0 PASS_WARN_AGE 10 |
密码长度已不在此处,而是在相关pam中进一步设置。
通过 pwquality 控制,Ubuntu 22.04 默认没有此模块,需要提前安装。
# 安装libpam-pwquality apt install libpam-pwquality # 设置密码复杂度 vim /etc/security/pwquality.conf minlen = 8 dcredit = -1 lcredit = -1 ocredit = -1 ucredit = -1 # 设置密码尝试3次 vim /etc/pam.d/common-password password requisite pam_pwquality.so try_first_pass retry=3 # 禁止重复使用旧密码 vim /etc/pam.d/common-password password [success=1 default=ignore] pam_unix.so obsecure use_authtok try_first_passs yescrypt remember=5 |
Ubuntu 22.04 中,pam_tally2 已被移除,可以使用 pam_faillock 代替。
# faillock 包含在libpam-modules中,无需安装 # faillock参数配置 # grep -v '#' /etc/security/faillock.conf dir = /var/run/faillock audit silent deny = 3 fail_interval = 900 unlock_time = 120 |
https://askubuntu.com/questions/1403438/how-do-i-set-up-pam-faillock |
关于faillock的配置,涉及以下两个pam文件
# 用户账户锁定时连续身份验证失败必须达到的间隔长度默认为 900 秒 # 用户账户锁定时间默认为 600 秒, root用户不受管控 # vim /etc/pam.d/common-auth auth required pam_faillock.so preauth audit silent deny=5 unlock_time=900 auth [success=1 default=ignore] pam_unix.so nullok auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=900 auth sufficient pam_faillock.so authsucc audit deny=5 unlock_time=900 auth requisite pam_deny.so auth required pam_permit.so auth optional pam_cap.so # vim /etc/pam.d/common-account account [success=1 new_authtok_reqd=done default=ignore] pam_unix.so account requisite pam_deny.so account required pam_permit.so account required pam_faillock.so |
https://linuxconfig.org/how-to-disable-enable-selinux-on-ubuntu-22-04-jammy-jellyfish-linux |
Ubuntu22.04 默认没有安装 Selinux,进一步操作:
# 1.安装selinux apt update apt install policycoreutils selinux-utils selinux-basics # 2.启动selinux selinux-activate # 3.enforce selinux,需重启生效 selinux-config-enforcing # 4.查看selinux 状态 setstatus SELinux status: disabled # 5.关闭selinux,需重启生效 vim /etc/selinux/config SELINUX=enforcing 或 SELINUX=disabled # 6.临时设置selinux setenforce 0 或 setenforce 1 |
Ubuntu22.04 默认使用 ufw 管理防火墙,默认处于禁用状态。
# 1.安装ufw apt install ufw # 2.防火墙状态 ufw status verbose |
sudo ufw default allow # 預設允許 sudo ufw default deny # 預設封鎖 sudo ufw allow ssh sudo ufw allow 22 sudo ufw allow 80 # 允許 80 sudo ufw allow 443 # 允許 443 sudo ufw deny 3389 # 封鎖 3389 sudo ufw deny 21 # 封鎖 21 sudo ufw allow 6000:6007/tcp # 允許 TCP 6000~6007 sudo ufw allow 6000:6007/udp # 允許 UDP 6000~6007 sudo ufw allow from 192.168.11.10 # 允許 192.168.11.10 的所有連線 sudo ufw allow from 192.168.11.0/24 # 允許 192.168.11.1~192.168.11.255 的所有連線 sudo ufw deny from 192.168.11.4 # 封鎖 192.168.11.4 的所有連線 sudo ufw status numbered sudo ufw enable # 啟用防火牆 sudo ufw disable # 停用防火牆 |
在做内核参数优化时,提示报错 sysctl: cannot stat /proc/sys/net/ipv4/tcp_tw_recycle: No such file or directory。Ubuntu22.04 使用 5.15.0-60-generic,经过进一步了解到从4.10内核开始,官方修改了时间戳的生成机制,在此我们参考小米技术的总结的建议:
以下内容基于从 20.04 升级到 22.04 ,当然 22.04 升级到 24.04 也类似
1、查询系统版本和磁盘空间
> lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.4 LTS Release: 20.04 Codename: focal df -H |
2、更新现有的组件并清理不必要的组件,安装升级所需的组件
sudo apt update -y && sudo apt upgrade -y sudo apt dist-upgrade sudo apt autoremove sudo apt install update-manager-core sudo reboot |
3、重新开机后确认是否有对应升级的版本
> sudo do-release-upgrade --check-dist-upgrade-only Checking for a new Ubuntu release There is no development version of an LTS available. To upgrade to the latest non-LTS development release set Prompt=normal in /etc/update-manager/release-upgrades. sudo do-release-upgrade -d --allow-third-party |
-d |
是指升级到最新的开发版,即使是 LTS 版本都没开发出来。
参照升级提示一路完成系统升级并重启
4、清理升级后不必要的组件
> lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04 LTS Release: 22.04 Codename: jammy sudo apt update -y && sudo apt upgrade -y sudo apt --purge autoremove sudo apt autoclean |