华子目录
- 什么是ubuntu
- 概述
- ubuntu版本简介
- 桌面版
- 服务器版
- 安装部署
- 部署后的设置
- 设置root密码
- 关闭防火墙
- 启用允许root进行ssh登录
- 更改apt源
- 安装所需软件
- 网络配置
- Netplan概述
- 配置详解
- 配置文件
- DHCP
- 静态IP设置
- 设置
- 软件安装
- 方法
- apt安装软件
- 作用
- 常用命令
- 配置apt源
- deb软件包安装
- 概念
- `dpkg`命令
什么是ubuntu
概述
ubuntu(乌班图)
属于debian
系列,debian是社区类Linux的典范,是迄今为止最遵循GNU
规范的Linux系统
debian
最早由lan Murdock
于1993年创建,分为三个版本分支(branch):stable,testing和unstable
debian
最具特色的是apt-get / dpkg
包管理方式,其实redhat
的yum
也是在模仿debian
的apt
方式,但在二进制文件发行方式中,apt
应该是最好的了。ubuntu server
是Ubuntu
操作系统的一个版本,是Ubuntu
家族的一员,被工程设计作为互联网的骨干系统,Ubuntu server
为公共或私有数据中心带来经济和技术上的可扩展性。
ubuntu版本简介
桌面版
- 网址:https://cn.ubuntu.com/download
- 桌面版是带有
GUI
界面,面向普通用户使用的操作系统,预装了可帮助用户执行日常基本活动的软件,如:视频,浏览器,文本处理,电子邮件和多媒体等
,对标Windows10
操作系统
服务器版
- 服务器版本用于托管网络服务器和数据库等应用程序,是专业人员使用的服务器操作系统
- 注意:
- 一般选择
LTS
长期更新版,LTS
为“长期支持
”版本每两年在4月发布一次,LTS
版本是Ubuntu
的“企业级
”版本,使用得最多。估计95%
的Ubuntu
安装得都是LTS
版 - 可以在
开源镜像站点
下载,如阿里开源镜像站
- 一般选择
安装部署
- 这里博主后期有时间再写,博主这里主要写
Ubuntu
在redhat
系列中的不同之处
部署后的设置
设置root密码
- 由于默认的root用户没有固定的密码,则可以通过下列方法更改并切换账户
- 第一种:
huazi@ubuntu:~$ sudo passwd root #以普通账户登录后执行命令修改root初始密码
[sudo] huazi 的密码: #普通账户的密码
新的密码: #新的root密码
无效的密码: 密码少于 8 个字符
重新输入新的密码: #再输入一遍
passwd:已成功更新密码
huazi@ubuntu:~$ su -l root #切换到root账户
密码:
root@ubuntu:~#
关闭防火墙
root@ubuntu:~# systemctl status firewalld #查看ufw防火墙状态
Unit firewalld.service could not be found.
root@ubuntu:~# systemctl status ufw
● ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: >
Active: active (exited) since Thu 2024-05-02 18:46:06 CST; 35min ago
Docs: man:ufw(8)
Main PID: 436 (code=exited, status=0/SUCCESS)
CPU: 5ms
5月 02 18:46:06 ubuntu systemd[1]: Starting Uncomplicated firewall...
5月 02 18:46:06 ubuntu systemd[1]: Finished Uncomplicated firewall.
root@ubuntu:~# systemctl stop ufw #关闭防火墙
root@ubuntu:~# systemctl disable ufw #设置开机不启动
Synchronizing state of ufw.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable ufw
Removed /etc/systemd/system/multi-user.target.wants/ufw.service.
启用允许root进行ssh登录
root@ubuntu:~# vim /etc/ssh/sshd_config
PermitRootLogin yes #将PermitRootLogin的参数设置为yes
root@ubuntu:~# systemctl restart ssh #重启ssh服务
更改apt源
- 先确定
Ubuntu
的时间版本,我这里是ubuntu 22.04 LTS
- 然后到阿里云镜像开源站的
Ubuntu
中选择对应的apt
源
root@ubuntu:~# vim /etc/apt/sources.list
deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
root@ubuntu:~# apt update #配置完需要更新apt源
安装所需软件
root@ubuntu:~# apt install tree gcc make net-tools openvswitch-switch -y
root@ubuntu:~# apt list tree #检查是否已安装
正在列表... 完成
tree/jammy,now 2.0.2-1 amd64 [已安装]
root@ubuntu:~# apt list gcc
正在列表... 完成
gcc/jammy,now 4:11.2.0-1ubuntu1 amd64 [已安装]
gcc/jammy 4:11.2.0-1ubuntu1 i386
root@ubuntu:~# apt list make
正在列表... 完成
make/jammy,now 4.3-4.1build1 amd64 [已安装]
make/jammy 4.3-4.1build1 i386
root@ubuntu:~# apt list net-tools
正在列表... 完成
net-tools/jammy,now 1.60+git20181103.0eebece-1ubuntu5 amd64 [已安装]
net-tools/jammy 1.60+git20181103.0eebece-1ubuntu5 i386
root@ubuntu:~# apt list openvswitch-switch
正在列表... 完成
openvswitch-switch/jammy-security,jammy-updates,now 2.17.9-0ubuntu0.22.04.1 amd64 [已安装]
N: 还有 1 个版本。请使用 -a 选项来查看它(它们)。
root@ubuntu:~# apt list nginx #未安装
正在列表... 完成
nginx/jammy-updates 1.18.0-6ubuntu14.4 amd64
N: 还有 2 个版本。请使用 -a 选项来查看它(它们)。
网络配置
Netplan概述
Netplan
:抽象网络配置生成器,是一个用于配置Linux网络的简单工具- 通过
Netplan
,你只需用一个YAML
文件描述每个网络接口需要配置成啥样即可,根据这个配置描述,Netplan
便可帮你生成所有需要的配置,不管你选用的底层管理工具是啥,都可以生成 Netplan
的特点和功能:YAML
语法:Netplan
使用YAML
文件格式来描述网络配置信息,YAML格式
旨在使文件易于编写,阅读和理解。您可以再每行结束时添加注释以方便自己和其他管理员查看文件- 多种网络选项:
Netplan
支持多种网络选项,包括IP地址
,子网掩码
,网关
,DNS设置
,静态路由
和DHCP客户端
等。您可以根据需要选择所需的选项并将其添加到配置文件中。 - 支持多个网络接口:
Netplan
支持管理多个网络接口。无论您使用有线或无线网络,或者使用虚拟网络接口,都可以在配置文件中指定各个接口的设置。 - 自动应用配置:当您修改
Netplan
配置文件后,Netplan会自动将其应用到相应的网络接口上。这意味着您无需手动执行命令即可生效所做的更改。 - 兼容性:
Netplan
可以与旧版网络管理工具共存,并且可以在Ubuntu16.04
及更高版本上运行。如果您已经使用ifupdown
或NetworkManager
进行网络配置,您可以继续使用这些工具,或者将其与Netplan
配置文件结合使用。
Netplan
目前支持一下两种网络管理工具
:NetworkManager
Systemd-networkd
- 一言以蔽之,从前你需要根据不同的管理工具编写网络配置,现在
Netplan
将管理工具差异性给屏蔽了。 你只需按照Netplan规范
编写YAML 配置
,不管底层管理工具是啥,一份配置走天下
配置详解
配置文件
#默认配置文件:/etc/netplan/*.yaml
#本机
root@ubuntu:/etc/netplan# ls
01-network-manager-all.yaml
DHCP
network:
ethernets:
ens33:
dhcp4: true
version: 2
renderer: networkd
静态IP设置
- 注意:
netplan
说明文件格式存储在下列路径下,该目录下有各种样例文件,可以提供帮助
root@ubuntu:~# cd /usr/share/doc/netplan/examples/
root@ubuntu:/usr/share/doc/netplan/examples# ls
bonding_router.yaml route_metric.yaml
bonding.yaml source_routing.yaml
bridge_vlan.yaml sriov_vlan.yaml
bridge.yaml sriov.yaml
dhcp_wired8021x.yaml static_multiaddress.yaml
dhcp.yaml static_singlenic_multiip_multigateway.yaml
direct_connect_gateway_ipv6.yaml static.yaml
direct_connect_gateway.yaml vlan.yaml
infiniband.yaml vrf.yaml
ipv6_tunnel.yaml vxlan.yaml
loopback_interface.yaml windows_dhcp_server.yaml
modem.yaml wireguard.yaml
network_manager.yaml wireless.yaml
offload.yaml wpa_enterprise.yaml
openvswitch.yaml
#静态IP范例
root@ubuntu:/usr/share/doc/netplan/examples# cat static.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0: #网卡名
addresses:
- 10.10.10.2/24 #静态IP地址/子网掩码
nameservers:
search: [mydomain, otherdomain] #域名
addresses: [10.10.10.1, 1.1.1.1] #dns解析地址1,dns解析地址2
routes:
- to: default
via: 10.10.10.1 #网关地址
- 查看本机IP信息
root@ubuntu:~# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.80.137 netmask 255.255.255.0 broadcast 192.168.80.255
inet6 fe80::d15c:c612:1728:5292 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:7b:35:87 txqueuelen 1000 (以太网)
RX packets 143547 bytes 207998539 (207.9 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 30913 bytes 2101187 (2.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (本地环回)
RX packets 265 bytes 28871 (28.8 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 265 bytes 28871 (28.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
root@ubuntu:~# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.80.137 netmask 255.255.255.0 broadcast 192.168.80.255
inet6 fe80::d15c:c612:1728:5292 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:7b:35:87 txqueuelen 1000 (以太网)
RX packets 143581 bytes 208001089 (208.0 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 30932 bytes 2103313 (2.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- 查看网关
root@ubuntu:~# route -n
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
0.0.0.0 192.168.80.2 0.0.0.0 UG 100 0 0 ens33
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens33
192.168.80.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
设置
root@ubuntu:~# vim /etc/netplan/01-network-manager-all.yaml
#清除已有内容,将静态IP范例文件内容拷贝到当前配置中,再修改,注意缩进格式
network:
version: 2
renderer: networkd
ethernets:
ens33:
addresses:
- 192.168.80.138/24
nameservers:
search: [mydomain, otherdomain]
addresses: [114.114.114.114]
routes:
- to: default
via: 192.168.80.2
root@ubuntu:~# netplan apply #重新应用
#然后需要用新配置的IP地址进行ssh连接:ssh root@192.168.80.138
#或者使用nmtui进行设置静态IP地址
root@ubuntu:~# nmtui
#或者使用nmcli命令修改静态IP地址
root@ubuntu:~# nmcli connection
NAME UUID TYPE DEVICE
有线连接 1 08ae1107-7a71-328c-8f61-fb3e8abf7e95 ethernet ens33
root@ubuntu:~# nmcli connection modify 有线连接\ 1 +ipv4.addresses 192.168.80.137/24
软件安装
方法
- 使用
apt
工具安装 - deb软件包安装(
dpkg
) - 自己下载程序源码编译安装
apt安装软件
作用
apt(advanced package tool)
是一个命令行包管理工具,适用于Ubuntu / Debian
Linuxapt
用于在Ubuntu / Debian
系统中从命令行安装,删除,更新和升级Debian
包,apt
克服了在apt-get
命令中注意到的问题和错误,使用apt
命令时,用户必须具有sudo
权限
常用命令
root@ubuntu:~# apt update #更新软件仓库信息,建议在安装或升级包之前执行该命令
root@ubuntu:~# apt list #列出所有可用的软件包
root@ubuntu:~# apt list 包名 #检查该包名有没有安装
root@ubuntu:~# apt list --installed #只列出已安装的包
root@ubuntu:~# apt list --upgradeable #只列出可升级的包
root@ubuntu:~# apt install 包名 -y #安装软件包
root@ubuntu:~# apt download 包名 #下载软件包但不安装
root@ubuntu:~# apt remove 包名 #删除软件包
root@ubuntu:~# apt upgrade #升级所有软件包
root@ubuntu:~# apt install 包名 --only-upgrade #要升级特定的安装包
root@ubuntu:~# apt full-upgrade #全面系统升级,请务必小心,因为它可能会删除已安装的软件包并安装更新的软件包
root@ubuntu:~# apt search 包名 #搜索软件包
root@ubuntu:~# apt show 包名 #查看软件包信息
root@ubuntu:~# apt clean #清除apt缓存
配置apt源
- 配置文件
root@ubuntu:~# vim /etc/apt/sources.list
-
推荐的apt源
-
修改:
- 打开文件:
vim /etc/apt/sources.list
- 将默认的源进行替换
- 最后需要更新软件列表
root@ubuntu:~# apt update
- 打开文件:
deb软件包安装
概念
deb
包时Debian,Ubuntu
等Linux
发行版的软件安装包,扩展名为.deb
,是类似于rpm
的软件包
dpkg
命令
- 格式
root@ubuntu:~# dpkg [选项] 包名
- 常用命令
root@ubuntu:~# dpkg -i 包名 #安装软件包
root@ubuntu:~# dpkg -I 包名 #查看软件包的详细信息
root@ubuntu:~# dpkg -c 包名 #查看软件包结构
root@ubuntu:~# dpkg -r 包名 #卸载软件包
- 注意:不推荐使用
deb
软件包,因为要解决软件包依赖问题
,安装也比较麻烦