others linux服务器运维 django3 监控 k8s golang 数据库 大数据 前端 devops 理论基础 java oracle 运维日志

ubuntu 20 server 安装与使用

访问量:1350 创建时间:2020-12-24

系统安装镜像下载地址:http://mirrors.aliyun.com/ubuntu-releases/

服务器版本(不需要图形化界面不选择desktop包)可以选择:http://mirrors.aliyun.com/ubuntu-releases/20.04.1/ubuntu-20.04.1-live-server-amd64.iso

ubuntu 20 server 系统安装

这里实在虚拟机中安装,将iso挂载到虚拟机的cdrom

允许root远程ssh登陆

切换到root用户

dev@ubuntu:~$ sudo su - root
[sudo] password for dev: 
root@ubuntu:~# 

修改sshd配置

root@ubuntu:~# vim  /etc/ssh/sshd_config
#PermitRootLogin prohibit-password
PermitRootLogin yes
###省略部分文件内容,设置PermitRootLogin为 yes

重启sshd生效

root@ubuntu:~# systemctl restart sshd
#设置root密码
root@ubuntu:~# passwd 
New password: 
Retype new password: 
passwd: password updated successfully

经过以上设置root可以直接远程ssh登录了

查看ubuntu基本信息

可以通过以下方式查看系统信息

root@ubuntu:~# cat /etc/issue
Ubuntu 20.04.1 LTS \n \l

root@ubuntu:~# cat /proc/version
Linux version 5.4.0-58-generic (buildd@lcy01-amd64-004) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #64-Ubuntu SMP Wed Dec 9 08:16:25 UTC 2020
root@ubuntu:~# uname -a
Linux ubuntu 5.4.0-58-generic #64-Ubuntu SMP Wed Dec 9 08:16:25 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
root@ubuntu:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.1 LTS
Release:    20.04
Codename:   focal
root@ubuntu:~# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"

ubuntu查看日志

系统日志配置文件,修改后需要重启服务systemctl restart rsyslog

root@ubuntu:~# vim /etc/rsyslog.d/50-default.conf
auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog
#cron.*                         /var/log/cron.log
#daemon.*                       -/var/log/daemon.log
kern.*                          -/var/log/kern.log
#lpr.*                          -/var/log/lpr.log
mail.*                          -/var/log/mail.log
#user.*                         -/var/log/user.log
###省略部分内容###
日志记录内容 日志路径
auth,authpriv.* 登陆、认证相关 /var/log/auth.log
.;auth,authpriv.none 系统,认证 /var/log/syslog
kern.* 内核 /var/log/kern.log
mail.* 邮件相关 /var/log/mail.log
软件包安装日志 /var/log/dpkg.log
开机日志 /var/log/dmesg

logger命令使用,作用向日志文件中写入内容:

root@ubuntu:~# logger 'Hello World' && tail -n5 /var/log/syslog 
Dec 25 00:30:16 ubuntu multipathd[601]: sda: add missing path
Dec 25 00:30:16 ubuntu multipathd[601]: sda: failed to get udev uid: Invalid argument
Dec 25 00:30:16 ubuntu multipathd[601]: sda: failed to get sysfs uid: Invalid argument
Dec 25 00:30:16 ubuntu multipathd[601]: sda: failed to get sgio uid: No such file or directory
Dec 25 00:30:16 ubuntu root: Hello World

查看服务开机耗时

systemd-analyze blame

软件包管理

点击进入官方文档地址

Ubuntu的软件包管理系统源自Debian GNU / Linux发行版所使用的系统。Debian软件包文件通常具有扩展名.deb,软件包通常采用预编译的二进制格式。因此安装很快,不需要编译软件。

linux 发行版 软件包管理机制 相关命令 在线安装命令
Debian/ubuntu dpkg dpkg apt、pt-get

格式为:Package_Version-Build_Architecture.deb 如:nano_1.3.10-2_i386.deb

路径 作用
/etc/dpkg/dpkg.cfg dpkg包管理软件的配置文件
/var/log/dpkg.log dpkg包管理软件的日志文件
/var/lib/dpkg/available 存放系统所有安装过的软件包信息
/var/lib/dpkg/status 存放系统现在所有安装软件的状态信息
/var/lib/dpkg/info 记安装软件包控制目录的控制信息文件

dpkg

命令使用 作用 案例
dpkg -i 包名 安装 dpkg -i package-name.deb
dpkg -r 包名 卸载软件包,保留配置文件
dpkg -P 包名 完全清楚软件包,含配置文件
dpkg -l [包名] -l 后面不跟参数列出所有包,跟参数列出特定名称的包 dpkg -l adduser
dpkg -S 文件路径 列出系统上的文件由哪个包安装生成的 dpkg -S /usr/sbin/adduser
dpkg -L 包名 列出软件包安装后要生成的全部文件信息 dpkg -L adduser

apt

apt工具等同redhat linux发行版的yum,是在线安装软件包的工具,会自动解决软件包的依赖关系,需要配置apt软件包源。

apt相关系统配置、信息文件

文件路径 作用
/var/lib/dpkg/available 文件的内容是软件包的描述信息, 该软件包括当前系统所使用的Debian 安装源中的所有软件包,其中包括当前系统中已安装的和未安装的软件包.
/etc/apt/sources.list 存储库的信息(执行 apt-get install xxx,Ubuntu 去对应站点下载软件包到本地并安装)
/var/cache/apt/archives 已经下载到的软件包都放在这里(用 apt-get install 安装软件时,软件包的临时存放路径)
/var/lib/apt/lists 使用apt-get update命令会从/etc/apt/sources.list中下载软件列表,并保存到该目录。

apt相关命令说明

命令 作用
apt-get update 更新本地源信息
apt-get install 包名 安装特定包 apt-get -y install nginx
apt-get dist-upgrade 升级系统到相应的发行版(根据 source.list 的配置)
apt-get upgrade 更新所有已经安装的软件包
apt-get remove package_name 删除已安装的软件包(保留配置文件),不会删除依赖软件包,且保留配置文件。
apt-get --purge remove package_name 删除已安装包(不保留配置文件);如软件包a依赖软件包b,执行该命令会删除a,而且不保留配置文件。
apt-get autoremove 删除为了满足依赖而安装的,但现在不再需要的软件包(包括已安装包),保留配置文件。
apt-get autoclean 定期运行这个命令来清除那些已经卸载的软件包的.deb文件。APT的底层包是dpkg, 而dpkg 安装Package时, 会将 *.deb 放在 /var/cache/apt/archives/中,apt-get autoclean 只会删除 /var/cache/apt/archives/ 已经过期的deb。
apt-get clean 使用 apt-get clean 会将 /var/cache/apt/archives/ 的所有 deb 删掉
apt-cache depends packagename 了解使用依赖
apt-cache rdepends packagename 是查看该包被哪些包依赖
apt-cache search packagename 搜索软件包,可以按关键字查找软件包,通常用于查询的关键字会使用软件包的名字或软件包的一部分
apt-cache show packagename 查询指定包的详情,不管是否已经安装。获取包的相关信息,如说明、大小、版本等
apt-cache showpkg packagename 显示软件包的大致信息
apt-file update 更新软件包的文件库
apt-file search 文件名 查找包含指定文件名的软件包,包含未安装的
apt-file list 包名 显示软件包包含的文件

卸载snap

root@ubuntu:~# snap list
Name    Version   Rev    Tracking       Publisher   Notes
core18  20201210  1944   latest/stable  canonical✓  base
lxd     4.0.4     18150  4.0/stable/…   canonical✓  -
snapd   2.48.1    10492  latest/stable  canonical✓  snapd
root@ubuntu:~# snap remove lxd
lxd removed
root@ubuntu:~# apt remove snapd
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  squashfs-tools
Use 'apt autoremove' to remove it.
The following packages will be REMOVED:
  snapd
0 upgraded, 0 newly installed, 1 to remove and 79 not upgraded.
After this operation, 120 MB disk space will be freed.
Do you want to continue? [Y/n] Y
(Reading database ... 71984 files and directories currently installed.)
Removing snapd (2.45.1+20.04.2) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for mime-support (3.64ubuntu1) ...

其他操作

timedatectl set-timezone Asia/Shanghai

ubuntu 20 DNS设置

ubuntu 20 默认的dns管理服务是systemd-resolved,手动配置/etc/resolv.conf文件不会生效。

#查看当前dns解析状态
resolvectl status
#
vim /etc/systemd/resolved.conf
[Resolve]
DNS=8.8.8.8 114.114.114.114
#重启systemd-resolved服务
systemctl restart systemd-resolved服务
#再次查看dns状态,Global DNS Servers 有了配置
root@ubuntu:~# resolvectl status
Global
       LLMNR setting: no                  
MulticastDNS setting: no                  
  DNSOverTLS setting: no                  
      DNSSEC setting: no                  
    DNSSEC supported: no                  
         DNS Servers: 8.8.8.8             
                      114.114.114.114 
#禁用systemd-resolved服务
root@ubuntu:~# systemctl disable systemd-resolved.service
Removed /etc/systemd/system/dbus-org.freedesktop.resolve1.service.
Removed /etc/systemd/system/multi-user.target.wants/systemd-resolved.service.
root@ubuntu:~# systemctl stop systemd-resolved
#删除链接文件
rm /etc/resolv.conf
#重新配置链接文件
root@ubuntu:~# vim /etc/resolv.conf
nameserver 8.8.8.8
nameserver 114.114.114.114
#dig查看dig输出
root@ubuntu:~# dig www.baidu.com
www.baidu.com.      284 IN  CNAME   www.a.shifen.com.
www.a.shifen.com.   125 IN  A   36.152.44.95
;; SERVER: 114.114.114.114#53(114.114.114.114)
###省略部分输出###

评价:不好说是systemd先进,还是耦合性太强,绑架了很多其他的设置,个人还是喜欢以前的松耦合。

网络管理

网络管理工具很多,systemd-networkd \network-manager

root@ubuntu:~# cd /etc/netplan/
root@ubuntu:/etc/netplan# ls
00-installer-config.yaml
root@ubuntu:/etc/netplan# cp 00-installer-config.yaml 00-installer-config.yamlbak
#对网卡ens33配置静态地址,默认是dhcp
root@ubuntu:/etc/netplan# vim 00-installer-config.yaml
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    ens33:
      addresses:
      - 192.168.98.133/24
      gateway4: 192.168.98.2
      nameservers:
        addresses:
        - 223.5.5.5
        - 223.6.6.6
root@ubuntu:/etc/netplan# netplan apply

netplan的yaml配置文件含义:

配置项 作用
renderer 网络管理方案(networkd或者NetworkManager,默认是networkd管理--systemd-networkd),指定后可以用对应的工具管理
enp33 网络接口名称。
dhcp4、dhcp6 接受IPv4和IPv6的dhcp,yes或no。
addresses 接口的静态地址
gateway4 IPv4网管地址。
Nameservers DNS地址

使用NetworkManager管理网络

#禁用停止system-networkd服务
systemctl disable systemd-networkd.service
systemctl mask systemd-networkd.service
systemctl stop systemd-networkd.service

#注意如果netplan没有指定renderer: NetworkManager,nmcli和nmtui不起作用
#安装NetworkManager服务
apt -y install network-manager
#管理命令
nmcli
#gui
nmtui
# ubuntu20 服务
systemctl status NetworkManager
登陆评论: 使用GITHUB登陆