操作系统版本
server版
版本详情:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.2 LTS
Release: 22.04
Codename: jammy
参考:
- 官方文档
网络
虚拟机包含两个网络,网络地址转换用于访问互联网,启用DHCP,仅主机网络用于内部通信,指定静态IP地址,此版本中使用netplan作为默认的网络管理工具,执行命令sudo vim /etc/netplan/00-installer-config.yaml
修改配置文件:
network:
ethernets:
enp0s3: # 仅主机网卡
addresses:
- 192.168.56.57/24 # 指定静态IP
enp0s8: # 网络地址转换网卡
dhcp4: true
nameservers: # 指定DNS,在DNS部分另外说明
addresses:
- 8.8.8.8
version: 2
修改后执行命令sudo netplan apply
,以立即应用更改,注意,SSH登录时候不能使用命令sudo netplan try
,否则网络断开无法确认更改,直到超时后配置自动回滚。此配置下,虚拟机和宿主机可以互ping,关闭宿主机防火墙后,从虚拟机可以ping通宿主机仅主机网络网卡的地址。
如果执行apply命令出现以下警告:
# 配置文件权限警告
** (generate:1170): WARNING **: 10:48:44.225: Permissions for /etc/netplan/00-installer-config.yaml are too open. Netplan configuration should NOT be accessible by others.
# 服务缺失警告
WARNING:root:Cannot call Open vSwitch: ovsdb-server.service is not running.
执行命令sudo chmod 600 /etc/netplan/00-installer-config.yaml
修改配置文件权限(权限必须为600),ovsdb-server.service服务不是必须的,这里不安装它。
Shell脚本解释器
目前,Debian和Ubuntu中,/bin/sh
已经默认软链到dash,而非bash,dash拥有更快的执行速度,偏向运行程序,而bash有更多的功能,偏向交互,二者的语法是不同的,例如dash不支持function关键字,因此在Ubuntu默认配置下使用sh <包含function关键字的脚本>
会报错,需要使用bash命令运行,而脚本头中指定的解释器只有在特定情况(脚本具有执行权限,且使用.
或者source
执行)下才能生效。
用户和权限
ubuntu不建议使用root登录,而是使用sudo提权,安装后可配置指定用户的sudo免密:
$ sudo visudo
# 修改
# %sudo ALL=(ALL:ALL) ALL
# 为
# %sudo ALL=(ALL:ALL) NOPASSWD:ALL
防火墙
关闭防火墙:
# 查看状态
sudo ufw status verbose
# 关闭
sudo ufw disable
# 启动
sudo ufw enable
APT源
在22.04中不用修改apt源,系统会自动匹配当前地区最快的镜像。
DNS
当虚拟机联通互联网的网络被配置为DHCP时,将从DHCP服务器自动获得DNS配置,此时可能出现部分域名无法解析的问题,通过执行resolvectl status
命令可以看到127.0.0.53的上游DNS服务器,以帮助定位域名解析问题的根本原因:
# 默认DNS无法解析
ian@ian:~$ nslookup raw.githubusercontent.com
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: raw.githubusercontent.com
Address: 0.0.0.0
Name: raw.githubusercontent.com
Address: ::
# 指定DNS可解析
ian@ian:~$ nslookup raw.githubusercontent.com 8.8.8.8
当系统自动获得的DNS不能满足需求时,需要手动指定DNS服务器,对于Ubuntu,指定DNS的复杂性主要体现在识别当前使用的网络管理工具,否则系统重启后指定的配置被覆盖或者不能生效。从网络上得到的信息看,至少自18.04版本开始,netplan已经作为默认的网络管理工具,因此需要修改/etc/netplan
路径下的配置文件,这里是00-installer-config.yaml
,修改详情看前面的网络部分,这里不重复贴出配置内容。另外一种方法是使用静态文件替换/etc/resolve.conf
文件,或者将它链接到一个新的文件,并在其中指定DNS。
时区
执行以下命令:
# 显示当前时区配置
timedatectl
# 设置时区
sudo timedatectl set-timezone Asia/Shanghai
# 验证
date
配置命令行
在~/.profile
文件中增加,仅仅修改了默认值中的\w为\W,显示当前目录名称,而不是其绝对路径:
# set view
export PS1="\[\e]0;\u@\h: \W\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ "
关闭swap
执行命令sudo swapoff -a
立即关闭swap,执行命令sudo vim /etc/fstab
注释其中的swap行,永久关闭swap,并删除swap文件sudo rm -rf /swap.img
升级包
如果登录后提示类似43 updates can be applied immediately.
这样的内容,可执行命令apt list --upgradable
查看能够升级的包,或者执行命令sudo apt upgrade
升级(可能会导致操作系统的修订版本号变更,例如从22.04.2变更为22.04.3,修订版本号变更不会有不兼容的变化产生),升级或者安装包的过程中可能会看到这样的交互界面卡住升级过程,需要人工介入:
这是由needrestart命令触发的,它的主要作用是检查库升级后有那些需要重启的守护进程。默认是交互式的,可以执行命令sudo vim /etc/needrestart/needrestart.conf
,复制$nrconf{restart} = 'i';
行并取消注释,将i
修改为a
是自动重启守护进程(先复制后修改,一般情况下可以帮助我们了解默认配置是什么),修改为l
是列出需要重启的守护进程,这里根据守护进程的重启影响评估,测试环境可以设置为自动重启。
主机名
如果需要变更主机名,可以执行命令sudo hostnamectl hostname <new hostname>
修改主机名,需要注意,主机名需要符合域名命名规范,可以这样验证,执行命令hostnamectl status
,如果其中包含Pretty hostname
键,说明主机名非法,它的值是原始设置,hostnamectl将非法值自动转换为Static hostname
键对应的值,这是真正的生效值。最后执行命令sudo vim /etc/hosts
编辑配置,将127.0.0.1对应的值更新为新的主机名。
定制登录提示信息
如果需要定制登录提示信息,可以参考motd - message of the day,也可以在互联网搜索关键字motd
,也可以参考这篇博客:Ubuntu登录提示信息(MOTD)定制与开关,这里做了这些操作:文章来源:https://www.toymoban.com/news/detail-858680.html
# 将ENABLED设为0,关闭news
sudo vim /etc/default/motd-news
# 将不需要的提示信息文件移入disable以禁用
# 禁用策略:
# 1. 排除已经关闭的,比如news
# 2. 排除无明确影响的,即根据看到的信息渐进修改
sudo mkdir /etc/update-motd.d/disable
cd /etc/update-motd.d
sudo mv \
10-help-text \
91-release-upgrade \
disable
其他常用操作
清理journal日志:文章来源地址https://www.toymoban.com/news/detail-858680.html
# 查看日志占用空间
sudo journalctl --disk-usage
# 清理一周之前生成的日志
sudo journalctl --vacuum-time=1w
# 清理超出指定大小的日志
sudo journalctl --vacuum-size=500M
到了这里,关于虚拟机安装 Ubuntu22.04 后的一些初始化配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!