当前位置:   article > 正文

【跟我一起学Linux之Ubuntu】-概述与安装配置笔记_ubuntu 10.8 源

ubuntu 10.8 源

一、Debian与Ubuntu简介

1.1:Debian简介:

是从1993 年,由lan Murdockk(伊恩·默多克) 发起的,因为受到当时 Linux 与 GNU 的鼓舞,目标是成为⼀个公开的发行版,经过二十几年的迭代更新,Debian 从⼀个小型紧密的自由软件骇客(hacker)小组,逐渐成长成今日庞大且运作良好的开发者与用户社群,Debian 的名字是由 Debian 的创始人 Ian Murdock (伊恩·默多克) 和他的爱妻 Debra(黛布拉) 两⼈的名字组合而成的。

Debian 是由⼤约⼀千个分布在世界各地的开发者⽆偿地利⽤他们的业余时间开发的,⽽这些开发者实际上⼤部分都没⻅过⾯,彼此之间的通讯⼤多是通过电⼦邮件(lists.debian.org 上的邮件列表)和 IRC(irc.debian.org上的 #debian 频道)来完成的,目前Debian 提供59000多个软件包的维护与更新。

Debian官⽹:https://www.debian.org/
官⽅镜像地址:https://www.debian.org/mirror/list
清华⼤学下载地址:https://mirrors.tuna.tsinghua.edu.cn/debian-cd/10.1.0-live/amd64/iso-hybrid/
  • 1
  • 2
  • 3

在这里插入图片描述

1.2:Ubuntu简介:

Ubuntu (友帮拓、优般图、乌班图) 早期是⼀个开源的GNU/Linux操作系统,Ubuntu 是基于Debian GNU/Linux,它⽀持x86、amd64(即x64)和 ppc架构,由全球化的专业开发团队(Canonical Ltd)打造的,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”⼀词,类似儒家“仁爱”的思想,意思 是“⼈性”、“我的存在是因为大家的存在”,是非洲传统的⼀种价值观, Ubuntu基于Debian发行版和GNOME桌面环境,而从11.04版起,Ubuntu 发行版放弃了Gnome桌面环境,改为Unity,与Debian的不同在于它每6个月会发布⼀个新版本,Ubuntu的目标在于为⼀般用户提供⼀个最新的、同时又相当稳定的主要自由软件构建而成的操作系统,Ubuntu具有庞大的社区力量,用户可以方便地从社区获得帮助,Ubuntu对GNU/Linux的普及 特别是桌面普及作出了巨大贡献,由此使更多人共享开源的成果与精彩。

Canonical公司是⼀个私营公司,由南非的企业家马克·沙特尔沃思(Mark Shuttleworth)创建,主要为了促进开源软件项目,Canonical在马恩岛登记注册,其雇员分布在世界各地,其主要办事处在伦敦,在蒙特利尔也有办事处, Canonical公司⽀持并创建了⼏个项目,主要都是自由/开源软件(FOSS)或 是⼀些旨在改善自由软件开发者和贡献者的⼯具。
http://www.techweb.com.cn/business/2013-08-20/1318187.shtml (有兴趣伙伴可以看看)#ubuntu公司目前并未实现盈利。。

Ubuntu是各种公有云上最受欢迎的操作系统,这是因为Ubuntu与各大云运营商密切合作,针对云服务商的基础架构优化内核和系统,加快安全更新速度,并最大限度降低用户默认需要的网络或存储成本。

https://cn.ubuntu.com/       #中⽂官⽹ 
https://ubuntu.com/download  #英⽂官⽹
  • 1
  • 2

1.3:Ubuntu 历史发行版本:

Ubuntu没有像其它软件—样有1.0版本,是因为其第一个版本是发布于2004年,所以Ubuntu的生日是2004年的10月20日。

ubuntu的版本号有个固定的特征,其使用一个形容词和一个动物名称组成,并且形容词和名词的首字母都是一致的,Ubuntu版本的命名规则是根据正式版发布的年月命名,Ubuntu 16.04也就意味着2016年4月发布的Ubuntu,研发人员与用户可从版本号码就知道正式发布的时间。

每两年的4月份,都会推出一个长期支持版本(LTS),其支持期长达五年,而非LTS版本的支持期通常只有半年。

https://baike.baidu.com/item/ubuntu       #Ubuntu历史版本⼀览表
  • 1

|  |  |  |
|--|--| -- |
|  |  |  |
在这里插入图片描述

1.4:Ubuntu 使用场景:

Ubuntu系统在物联网、桌面系统、云环境、服务器系统与容器有广泛使用场景,如下:

1.4.1:Ubuntu 桌面系统:

Ubuntu 作为个人电脑即快速又安全、开源、免费、有数以千计的应用程序可供选择。从工作学习、到娱乐游戏,无所不能。

1.4.1.1:Ubuntu 桌面系统简介:

在这里插入图片描述

1.4.1.2: 基于Ubuntu的优麒麟:

在这里插入图片描述

canonical,工业和信息化部软件与集成电路促进中心(cSIP)以及国防科学技术大学(NUDT)携手打造,目前,开发团队正在与开源社区合作打造ubuntu的核心功能,以更好地适应中国用户,除了ubuntu软件中心推出的本土化版本以外,优麒麟还带最常用的中文程序。

1.4.1.3:基于Ubuntu的Elementary OS:

Elementary os系统是一款基于ubuntu精心打磨美化的桌面Linux发行版,号称“最漂亮的Linux系统”,它最早是ubuntu的一个美化主题项目,后来太受欢迎演变成了独立的发行版,Elementary oS由设计师主导开发,风格与macos相似,它借鉴了chromeos的菜单设计,系统核心依然是ubuntu并完全兼容所有ubuntu软件包,elementary OS从界面外观到系统设计都很精美,视觉效果很好!
在这里插入图片描述

1.4.1.4:基于Ubuntu的其他分支:

除了标准Ubuntu版本之外,Ubuntu官方还有几大主要分支,分别是EdubuntuKubuntuLubuntuMythbuntuUbuntu MATEUbuntuGNOMEUbuntu KylinUbuntu StudioXubuntu

  • Edubuntu 是ubuntu的教育发行版,专注于学校(教育)的需求,是由ubuntu社区K12-LTSP社区合作开发的,适合儿童、学生、教师使用的基础发行版,其内置了大量适合教学的应用软件瞭游。
  • Kubuntu是使用KDE桌面管理器取代GNOME桌面管理器作为其默认的桌面管理器的版本。Kubuntu的推出,为喜爱KDE桌面环境的使用者的安装使用带来了很大的便利。
  • Lubuntu是一个后起之秀,以轻量级桌面环境LXDE替代ubuntu默认的unityo由于LXDE是一个轻量级桌面环境,以Lubuntu需的计算机资源很少,十分适合追求简洁速度,以及还在使用老旧硬件的朋友选用。
  • Mythbuntu是一个用来实现媒体中心的Ubuntu发行版本,其核心组件是MythTV,以Mythbuntu可以视为ubuntu MythTv的结合体。
  • ubuntu GNOME是采用GNOME3作为ubuntu默认桌瞭管理器的发行版本。由于ubuntu的默认桌环境是unity,为了满足Linux用户的不同需求和使用习惯,ubuntu GNOME项目应运而生。
  • ubuntu Kylin(优麒麟)是一个专门为中文用户定制的ubuntu版本,预置了大量中国用户熟悉的应用,是开箱即用的ubuntu官方中国定制版本,适合中国用户使用。
  • ubuntu studio则是–个为专业多媒体制作而打造的ubuntu版本,可以编辑和处理音频、视频和图形图像等多媒体文件,对于多媒体专业人士而言,是一个鱼和熊掌兼得的好选择。
  • xubuntu采用了小巧和高效的Xfce作为桌环境,界简约,类似于GNOME2,功能全惇,系统资源消耗较小,是追求速度和低配置计算机用户的福音,同时也为老旧计算机提供了发挥余热的机会。
1.4.1.5:基于Debian的deepin:

Deepin:基于debain的发行版,Deepin原名Linux deepin、deepin os、深度系统、深度操作系统,在2014年4月改名Deepin,由武汉深之度科技有限公司所开发,被誉为"最美国产操作系统",其以桌面应用为主的开源GNU/Linux操作系统,支持笔记本、台式机和一体机。
在这里插入图片描述
在这里插入图片描述

1.4.1.6:其他Linux发行版:
http://www.distrowatch.org/index.php?dataspan=2018
  • 1

在这里插入图片描述
在这里插入图片描述

1.4.2:Ubuntu与云环境:

   https://cn.ubuntu.com/cloud
  • 1

在这里插入图片描述

1.4.2.1:Ubuntu与私有云

ubuntu在私有云环境⼤量在openstack、容器与kubernetes环境使用。

openstack解决方案:
在这里插入图片描述
openstack客户:
在这里插入图片描述
ubuntu与kubernetes:
在这里插入图片描述

1.4.2.2:Ubuntu与公有云:

Ubuntu是各种公有云上最受欢迎的操作系统,这是因为我们与各大云运营
商密切合作,针对他们的基础架构优化内核和系统,加快安全更新速度,
并最大限度降低用户默认需要的网络或存储成本。
在这里插入图片描述

1.4.3:Ubuntu server系统:

Ubuntu Server 可让您的公共或私有数据中心在经济和技术上都具有出色的可扩展性。无论是部署 OpenStack 云、Hadoop 集群还是 50,000 个节点的大型渲染场,Ubuntu Server 都能提供性价比最佳的横向扩展能力。

1.4.3.1:Ubuntu Server 18.04 LTS 新增功能:
https://wiki.ubuntu.com/BionicBeaver/ReleaseNotes/
  • 1

由 Canonical 提供到 2023 年的长期支持
可在所有主流架构上运行 - x86、x86-64、ARM v7、ARM64、POWER8 和
IBM s390x (LinuxONE)
占用空间更小、启动速度更快的全新 ubuntu-minimal 映像
通过 chrony 实现快速准确的时间同步 新的默认服务器安装程序 ISO 带来
全新界面和更快的安装速度
支持 ZFS(非常适合服务器和容器的新⼀代卷管理/文件系统)
LXD 3.0 - 提供包括集群、Qos 和资源控制(CPU、内存、块 I/O/ 图形处
理器和存储配额)等在内的多种 Linux 容器
更新了 LXD (v3.0)、DPDK (v17.11.1)、Postgresql (v10.3)、
Libvirt (v4.0)、NGINX (v1.13)、Qemu (v2.11.1)、Docker
(v17.03)、Puppet (v4.10)、MySQL (v5.7)、PHP (v7.2) 等
安装 snap 来支持简单的应用程序安装和发布管理
Linux 4.15 内核
获得 AWS、Microsoft Azure、Joyent、IBM、Google Cloud
Platform 和 Rackspace 客户机认证
通过 netplan.io 轻松配置网络连接

1.4.3.2:Ubuntu Server 19.10 新增功能:
https://wiki.ubuntu.com/EoanErmine/ReleaseNotes?_ga=2.36184999.620886555.1573809180-329374192.1565688951
  • 1

由canonical提供9个月的支持Linux 5.3内核
更新为qemu (v4.0), libvirt (v5.4) , mysql (v8.0),
postgresql (v11)等
新的修复程序集和对ubuntu server安装程序的刷新
新的Ubuntu优势体验

1.4.4:Ubuntu与容器环境:

Ubuntu是容器的首选平台,从LXD到Kubernetes再到Docker,Canonical
与行业领先的公司合作,提供全方位的技术和服务,帮助用户在公有云、 私有云和混合云或裸机云上大规模运行容器。

https://github.com/moby/moby/blob/master/CHANGELOG.md      #docker的历史版本更新记录
  • 1
1.4.4.1:企业级Docker:

与Docker Inc.密切合作,在Ubuntu上提供商业支持的集成式Docker引擎。
Docker引擎的映像以snap包的形式发布,并会自动进行事务性更新。
Canonical为CS Docker引擎提供1级和2级技术支持,Docker Inc.则负责3
级支持。

1.4.4.2:Canonical的Kubernetes发行版:

内置弹性扩展能力:
Canonical的Kubernetes简单易用,而且本身具有弹性。规模化成本效益:
Canonical的Kubernetes使用Juju进行建模,并拥有管理持久性集群所需的所有操作脚本和工具,包括升级和弹性扩展。
随时可用的分析功能:
可轻松与Prometheus集成以进行监控,与ceph集成以进行存储,以及与Elastic Stack(包括Kibana)集成以进行分析和可视化。

####

1.5:Ubuntu镜像下载:

把Ubuntu说的这么好,倒是在哪里可以下载到呀?
  • 1
http://cdimage.ubuntu.com/releases/   #ubuntu server(服务器版)
http://releases.ubuntu.com/   #ubuntu desktop(桌⾯版)
http://cdimage.ubuntu.com/daily-live/current/   #20.04每日构建
  • 1
  • 2
  • 3

1.5.1:系统镜像版本区别:

详情:https://packages.ubuntu.com/search?lang=zh-cn&arch=any&keywords=libfuse-dev

ubuntu-18.04.3-live-server-amd64.iso    #带live,ISO镜像提供不安装就可以试用系统的功能

ubuntu-18.04.3-server-amd64.iso   #不带live,不可用试用,但是可以直接进行系统安装
  • 1
  • 2
  • 3

1.5.2:不同CPU指令集的ISO镜像:

CPU架构     安装包标识    备注 
镜像名称⽰例:
x86---------->i386      #32位,server版已不再⽀持32位
ubuntu-16.04.6-desktop-i386.iso
x86-64------->amd64     #64位
ubuntu-18.04.3-server-amd64.iso
ARM v7------->ARM64     #arm平台
ubuntu-18.04.3-server-arm64.iso
IBM s390x-------->s390x #IBM System z
ubuntu-18.04.3-server-s390x.iso
POWER------->PPC64el    #PowerPC
ubuntu-18.04.3-server-ppc64el.iso
preinstalled-server-arm64+raspi3  #预安装的树莓派系列
ubuntu-18.04.3-preinstalled-server-arm64+raspi3.img.xz:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

二、Ubuntu Server版安装及使用

Ubuntu 18.04 server版本与Desktop版的安装介绍

https://help.ubuntu.com/   #官方文档
  • 1

2.1:Ubuntu server 版本安装

这里 ubuntu 18.04服务器版本安装

2.1.1:选择安装语言:

在这里插入图片描述

2.1.2:安装界面传递内核参数:

F6选项
F6其他选项设置

2.1.3:选择安装过程语言:

Hong kong香港(中国)
在这里插入图片描述

2.1.4:地区设置:

在这里插入图片描述

2.1.5:键盘选择:

不进行探测,手动设置
在这里插入图片描述

2.1.6:选择键盘:

建议美式键盘
在这里插入图片描述

2.1.7:键盘确认:

在这里插入图片描述

2.1.8:配置主机名:

以下自定义,可自行设置
在这里插入图片描述

2.1.9:创建新的普通系统用户:

在这里插入图片描述

2.1.1:再次确认新账户名称:

在这里插入图片描述

2.1.11:设置用户密码:

在这里插入图片描述

2.1.12:确认账户密码:

在这里插入图片描述

2.1.13:确认使用密码:

在这里插入图片描述

2.1.14:确认时区:

在这里插入图片描述

2.1.15:手动分区:

在这里插入图片描述

2.1.16:选择磁盘:

在这里插入图片描述

2.1.17:确认使用磁盘:

在这里插入图片描述

2.1.18:对磁盘分区:

在这里插入图片描述

2.1.19:创建新分区:

在这里插入图片描述

2.1.20:指定分区大小:

在这里插入图片描述

2.1.21:选择分区类型:

分区类型为主分区
在这里插入图片描述

2.1.22:分区完成:

文件系统类型可以选择ext4/xfs/等
在这里插入图片描述

2.1.23:完成分区并写入数据:

在这里插入图片描述

2.1.24:确认写入磁盘:

在这里插入图片描述

2.1.25:是否使用代理

在这里插入图片描述

2.1.26:系统安装过程中:

在这里插入图片描述

2.1.27:是否自动更新:

在这里插入图片描述

2.1.28:选择安装组件:

在这里插入图片描述

2.1.29:写入grub引导:

在这里插入图片描述

2.1.30:确认重启服务器:

在这里插入图片描述

2.1.31:系统登录界面:

在这里插入图片描述

2.2:Ubuntu server系统基础配置:

官方使用文档:https://help.ubuntu.com

2.2.1:更改主机名:

~$ cat /etc/hostname 
ubuntu-node.example.com
  • 1
  • 2

2.2.2:更改网卡名称为eth*:

如果在安装系统之前没有传递内核参数将网卡名称更改为eth*,则可以在安装系统之后使用以下方式修改:

~$ sudo vim /etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="" 
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
~$ sudo update-grub
Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-55-generic 
Found initrd image: /boot/initrd.img-4.15.0-55-generic 
done
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
~$ sudo reboot
  • 1

2.2.3:配置允许root远程登陆:

默认情况下,ubuntu不允许root用户远程ssh,如果有实际场景需要允许 root用户远程ssh,则需要设置root密码,并编辑/etc/ssh/sshd_config 文件修改如下:

~$ sudo apt-get install openssh-server
~$ sudo vim  /etc/ssh/sshd_config
 32 #PermitRootLogin prohibit-password #默认为禁⽌登录 
 33 PermitRootLogin yes #改为允许登录

 57 #PasswordAuthentication yes
 58 PasswordAuthentication yes #打开密码认证,其实默认就是允许通过密码认证登录

~$ sudo su - root  #切换到root⽤⼾环境
~# passwd   #设置密码
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

~# systemctl  restart  sshd    #重启ssh服务并测试root⽤⼾远程ssh连接
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

2.2.4:ubuntu 18.04网络配置:

https://netplan.io/ #官方文档

Ubuntu 从 17.10版本 开始,已放弃在 /etc/network/interfaces 里固定 IP的配置,而是改成 netplan 方式,配置文件是:/etc/netplan/01-netcfg.yaml
ubuntu 17.04及之前的静态IP配置方式:

~# cat /etc/network/interfaces
root@qiudaoyu:~# cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8) auto lo
iface lo inet loopback

auto eth0    #⽹卡自启动,写自己要配置IP的实际⽹卡名称
iface eth0 inet static  #配置静态IP,写⾃⼰要配置IP的实际⽹卡名称 
address 172.18.3.12  #IP地址
netmask 255.255.0.0  #掩码
gateway 172.18.0.1   #⽹关
dns-nameservers 223.6.6.6  #阿里云DNS
dns-nameservers 223.5.5.5

#重启⽹络服务
~# /etc/init.d/networking  restart
~# systemctl  restart networking.service
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
2.2.4.1:单网卡静态IP地址:

ubuntu 18.04配置静态IP地址

~#sudo vim /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
      addresses: [172.18.3.18/16]
      gateway4: 172.18.0.1
      nameservers:
        addresses: [223.6.6.6]

# sudo  netplan apply
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
# vim ~/.vimrc   #取消vim ⾃动缩进功能 
set paste
  • 1
  • 2
2.2.4.2:配置多网卡静态IP:

ubuntu 18.04配置多网卡静态IP以及静态路由

~# sudo vim   /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
      addresses: [172.18.3.18/16]
      gateway4: 172.18.0.1 
      nameservers: 
        addresses: [223.6.6.6] 
    eth1:
      dhcp4: no
      dhcp6: no
      addresses: [10.20.3.18/16] 
      routes:
        - to: 172.20.0.0/16 
          via: 10.20.0.1
        - to: 10.20.0.0/16 
          via: 10.20.0.1
        - to: 10.2.0.0/16 
          via: 10.20.0.1
        - to: 10.8.0.0/16 
          via: 10.20.0.1
          
~# sudo netplan apply
  • 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
2.2.4.3:单网卡桥接:

ubuntu 18.04的单网卡桥接配置

root@s1:~# cat /etc/netplan/01-netcfg.yaml
~# sudo cat /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
  bridges:
    br0:
     dhcp4: no
     dhcp6: no
     addresses: [172.18.3.18/16]
     gateway4: 172.18.0.1 
     nameservers: 
     addresses: [223.6.6.6] 
     interfaces:
       - eth0

~# sudo netplan apply
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
2.2.4.4:多网卡桥接:

ubuntu 18.04多⽹卡的桥接配置,将br0和br1分别桥接到eth0和eth1。

~# sudo cat /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
    eth1:
      dhcp4: no
      dhcp6: no
      
  bridges:
    br0:
     dhcp4: no
     dhcp6: no
     addresses: [172.18.3.18/16] 
     gateway4: 172.18.0.1 
     nameservers: 
       addresses: [223.6.6.6] 
     interfaces:
       - eth0
    br1:
     dhcp4: no
     dhcp6: no
     addresses: [10.20.3.18/16]
     routes:
       - to: 172.20.0.0/16 
         via: 10.20.0.1
       - to: 10.20.0.0/16 
         via: 10.20.0.1
       - to: 10.2.0.0/16 
         via: 10.20.0.1
       - to: 10.8.0.0/16 
         via: 10.20.0.1 
     interfaces:
       - eth1
  • 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
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
2.2.4.4:双网卡绑定:

七种bond模式说明:

第⼀种模式:mod=0,即:(balance-rr) Round-robin policy(平衡抡循环策略)
特点:传输数据包顺序是依次传输(即:第1个包⾛eth0,下⼀个包就⾛eth1….⼀直循环下去,直到最后⼀个传输完毕),此模式提供负载平衡和容错
能⼒。

第⼆种模式:mod=1,即: (active-backup) Active-backup policy(主-备份策略)
特点:只有⼀个设备处于活动状态,当⼀个宕掉另⼀个⻢上由备份转换为主设备。mac地址是外部可⻅得,从外⾯看来,bond的MAC地址是唯⼀的,以避免
switch(交换机)发⽣混乱。此模式只提供了容错能⼒;由此可⻅此算法的优点是可以提供⾼⽹络连接的可⽤性,但是它的资源利⽤率较低,只有⼀个接⼝处于
⼯作状态,在有 N 个⽹络接⼝的情况下,资源利⽤率为1/N。

第三种模式:mod=2,即:(balance-xor) XOR policy(平衡策略)
特点:基于指定的传输HASH策略传输数据包。缺省的策略是:(源MAC地址 XOR⽬标MAC地址) % slave数量。其他的传输策略可以通过xmit_hash_policy
选项指定,此模式提供负载平衡和容错能⼒。

第四种模式:mod=3,即:broadcast(⼴播策略)
特点:在每个slave接⼝上传输每个数据包,此模式提供了容错能⼒。

第五种模式:mod=4,即:(802.3ad) IEEE 802.3adDynamic link aggregation(IEEE 802.3ad 动态链接聚合)
特点:创建⼀个聚合组,它们共享同样的速率和双⼯设定。根据802.3ad规范将多个slave⼯作在同⼀个激活的聚合体下。
必要条件:
条件1:ethtool⽀持获取每个slave的速率和双⼯设定。
条件2:switch(交换机)⽀持IEEE 802.3ad Dynamic link aggregation。
条件3:⼤多数switch(交换机)需要经过特定配置才能⽀持802.3ad模式。

第六种模式:mod=5,即:(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡)
特点:不需要任何特别的switch(交换机)⽀持的通道bonding。在每个slave上根据当前的负载(根据速度计算)分配外出流量。如果正在接受数据的slave
出故障了,另⼀个slave接管失败的slave的MAC地址。
该模式的必要条件:
ethtool⽀持获取每个slave的速率

第七种模式:mod=6,即:(balance-alb) Adaptive load balancing(适配器适应性负载均衡)
特点:该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡(receive load balance, rlb),⽽且不需要任何switch(交换机)的⽀
持。
  • 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
  • 32

ubuntu 18.04的双网卡绑定配置。

需要提前安装好bridge命令
~# sudo vim /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on
your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
    eth1:
      dhcp4: no
      dhcp6: no

   bonds:
     bond0:
       interfaces:
         - eth0
         - eth1
       addresses: [172.18.3.18/16]
       gateway4: 172.18.0.1
       nameservers:
         addresses: [223.6.6.6,223.5.5.5]
       parameters:
         mode: active-backup
         mii-monitor-interval: 100

~# sudo netplan apply
  • 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
2.2.4.5:双网卡绑定+桥接:

网卡绑定用于提供网卡接口冗余以及高可用和端口聚合功能,桥接网卡再给需要桥接设备的服务使用。

~# sudo cat /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on
your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
    eth1:
      dhcp4: no
      dhcp6: no

  bonds:
    bond0:
      interfaces:
        - eth0
        - eth1
      #addresses: [172.18.3.18/16]
      #gateway4: 172.18.0.1
      #nameservers:
      # addresses: [223.6.6.6,223.5.5.5]
      parameters:
        mode: active-backup
        mii-monitor-interval: 100

   bridges:
     br0:
      dhcp4: no
      dhcp6: no
      addresses: [172.18.3.18/16]
      gateway4: 172.18.0.1
      nameservers:
        addresses: [223.6.6.6,223.5.5.5]
      interfaces:
        - bond0

~#reboot
  • 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
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
2.2.4.6:内外多网卡绑定:

多网络情况下实现网卡绑定。

~# sudo cat  /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
    eth1:
      dhcp4: no
      dhcp6: no
    eth2:
      dhcp4: no
      dhcp6: no
    eth3:
      dhcp4: no 
      dhcp6: no
      
  bonds:
    bond0:
      interfaces:
        - eth0
        - eth1
      addresses: [172.18.3.18/16]
      gateway4: 172.18.0.1
      nameservers:
        addresses: [223.6.6.6,223.5.5.5] 
      parameters:
        mode: active-backup 
        mii-monitor-interval: 100
        
    bond1:
      interfaces:
        - eth2
        - eth3
      addresses: [10.20.3.18/16] 
      parameters:
        mode: active-backup 
        mii-monitor-interval: 100 
      routes:
        - to: 172.20.0.0/16 
          via: 10.20.0.1
        - to: 10.20.0.0/16 
          via: 10.20.0.1
        - to: 10.2.0.0/16 
          via: 10.20.0.1
        - to: 10.8.0.0/16 
          via: 10.20.0.1
  • 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
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
2.2.4.7:内网多网卡绑定+桥接:
~# sudo cat  /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2 
  renderer: networkd 
  ethernets: 
    eth0: 
      dhcp4: no 
      dhcp6: no 
    eth1: 
      dhcp4: no 
      dhcp6: no 
    eth2: 
      dhcp4: no 
      dhcp6: no 
    eth3: 
      dhcp4: no 
      dhcp6: no
      
  bonds:
    bond0:
      interfaces:
        - eth0
        - eth1
      parameters:
        mode: active-backup 
        mii-monitor-interval: 100

    bond1:
      interfaces:
        - eth2
        - eth3
      parameters:
        mode: active-backup 
        mii-monitor-interval: 100

  bridges:
    br0:
     dhcp4: no
     dhcp6: no
     addresses: [172.18.3.18/16] 
     gateway4: 172.18.0.1 
     nameservers:
       addresses: [223.6.6.6,223.5.5.5]
     interfaces: 
       - bond0

    br1:
     dhcp4: no
     dhcp6: no
     interfaces:
       - bond1
     addresses: [10.20.3.18/16] 
     routes:
       - to: 172.20.0.0/16 
         via: 10.20.0.1
       - to: 10.20.0.0/16 
         via: 10.20.0.1
       - to: 10.2.0.0/16 
         via: 10.20.0.1
       - to: 10.8.0.0/16 
         via: 10.20.0.1
  • 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
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63

2.3:Ubuntu软件包管理:

在ubuntu安装、升级、卸载软件包等常规操作。

2.3.1:修改软件仓库:

阿里云仓库地址:https://opsx.alibaba.com/mirror
华为:https://mirrors.huaweicloud.com/
中科大:http://mirrors.ustc.edu.cn/help/ubuntu.html
清华:https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/

2.3.2:apt/apt-get:

# apt list  #apt列出仓库软件包,等于yum list
# apt search NAME  #搜索安装包
# apt show apache2  #查看某个安装包的详细信息
# apt install apache2 #在线安装软件包
# apt remove apache2  #卸载单个软件包但是保留配置⽂件
# apt autoremove apache2  #删除安装包并解决依赖关系
# apt update  #更新本地软件包列表索引,修改了apt仓库后必须执⾏
# apt purge apache2  #卸载单个软件包删除配置⽂件
# apt upgrade  #升级所有已安装且可升级到新版本的软件包
# apt full-upgrade  #升级整个系统,必要时可以移除旧软件包。
# apt edit-sources  #编辑source源⽂件
# apt-cache madison nginx  #查看仓库中软件包有哪些版本可以安装
# apt install nginx=1.14.0-0ubuntu1.6  #安装软件包的时候指定安装具体的版本
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2.3.3:设置oracle JDK环境:

# pwd
/usr/local/src

解压⼆进制⽂件并设置软连接:
# tar xf jdk-8u212-linux-x64.tar.gz
# ln -sv /usr/local/src/jdk1.8.0_212 /usr/local/jdk

配置环境变量:
# vim /etc/profile
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar

重新导⼊环境变量并验证:
# source /etc/profile
# java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixedmode)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

2.3.4:安装OpenJDK:

# apt install openjdk-8-jdk
  • 1

2.3.5:安装常用系统命令:

# apt purge ufw lxd lxd-client lxcfs liblxc-common 
# apt install iproute2 ntpdate tcpdump telnet traceroute nfs-kernel-server nfs-common lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev vim ntpdate  traceroute gcc g++ make libsensors4 openssh-server iotop unzip zip
  • 1
  • 2

2.3.6:系统资源限制优化:

#cat /etc/security/limits.conf
#root账⼾的资源软限制和硬限制
root soft core unlimited
root hard core unlimited
root soft nproc 1000000
root hard nproc 1000000
root soft nofile 1000000
root hard nofile 1000000
root soft memlock 32000
root hard memlock 32000
root soft msgqueue 8192000
root hard msgqueue 8192000

#其他账⼾的资源软限制和硬限制
* soft core unlimited
* hard core unlimited
* soft nproc 1000000
* hard nproc 1000000
* soft nofile 1000000
* hard nofile 1000000
* soft memlock 32000
* hard memlock 32000
* soft msgqueue 8192000
* hard msgqueue 8192000
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

2.3.7:内核参数优化:

# cat /etc/sysctl.conf
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.ip_forward = 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of
the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the
core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

# Controls the default maxmimum size of a mesage queue
kernel.msgmnb = 65536

# # Controls the maximum size of a message, in bytes
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736

# # Controls the maximum number of shared memory segments,
in pages
kernel.shmall = 4294967296

# TCP kernel paramater
net.ipv4.tcp_mem = 786432  1048576   1572864
net.ipv4.tcp_rmem = 4096   87380     4194304
net.ipv4.tcp_wmem = 4096   16384     4194304
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_sack = 1

# socket buffer
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 20480
net.core.optmem_max = 81920

# TCP conn
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 15

# tcp conn reuse
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 1

net.ipv4.tcp_max_tw_buckets = 20000
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syncookies = 1

# keepalive conn
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.ip_local_port_range = 10001 65000

# swap
vm.overcommit_memory = 0
vm.swappiness = 10

#net.ipv4.conf.eth1.rp_filter = 0
#net.ipv4.conf.lo.arp_ignore = 1
#net.ipv4.conf.lo.arp_announce = 2
#net.ipv4.conf.all.arp_ignore = 1
#net.ipv4.conf.all.arp_announce = 2
  • 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
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87

2.3.8:dpkg安装包管理器:

帮助参看:man dpkg
rpm:RPM(Red Hat Package Manager), 是基于Red hat的Linux Distribution的包管理系统,同时也指rpm包本身,RPM用于rpm包的管理
(诸如安装、卸载、升级等)

"dpkg "是"Debian Packager "的简写, 为 "Debian"专门开发的套件管理系统,方便软件的安装、更新及移除.
所有源自“Debian”的“Linux ”发行版都使用 “dpkg”,
例如 “Ubuntu”、“Knoppix ”等。

# dpkg -i gitlab-ce_11.9.8-ce.0_amd64.deb  #安装某个deb软件包
# dpkg -r gitlab-ce  #卸载某个包保留配置⽂件
# dpkg -r -P gitlab-ce  #卸载某个包不保留其配置⽂件 (很全包括卸载配置文件)
# dpkg -I gitlab-ce_11.9.8-ce.0_amd64.deb   #查看该包详细信息
# dpkg -c gitlab-ce_11.9.8-ce.0_amd64.deb   #查看包内的⽂件及⽬录内容
# dpkg -s gitlab-ce_11.9.8-ce.0_amd64.deb   #列出该包的状态,包括详细信息,类似rpm –qi 
# dpkg -S gitlab-ce_11.9.8-ce.0_amd64.deb   #搜索包含gitlab-ce的包,类似rpm –qf
# dpkg -c gitlab-ce_11.9.8-ce.0_amd64.deb   #列出该包中所包含的文件,类似rpm –qpl (不需要安装直接显示其内容)
# dpkg --unpack gitlab-ce_11.9.8-ce.0_amd64.deb  #解开gitlab-ce 包的内容
# dpkg --unpack gitlab-ce_11.9.8-ce.0_amd64.deb  #解开gitlab-ce 包的内容

# dpkg -l zlib1g:amd64    #显示该软件包的简要说明 
# dpkg -l #列出本机已经安装的所有软件包,类似rpm -qa
注意:一般建议不要轻易使用dpkg卸载软件包。因为删除包时,其它相关依赖它的包不会卸载,并且可能无法再正常运行
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

2.3.9: apt管理包系统

Debian 使用 apt 工具集来管理包系统,apt-get 是其中一个常用的命令行工具,另外一款较为流行的命令行与 GUI 兼顾的工具是 aptitude ,之前最常用的 Linux 包管理命令都被分散在了 apt-get、apt-cache 和 apt-config 这三条命令中。

早在 2014 年apt 命令发布第一个稳定版,Ubuntu 16.04 引入新特性之一便是 apt 命令,apt 命令解决了 命令过于分散的问题,它包括 apt-get 命令出现以来使用最广泛的功能选项,以及 apt-cache 和 apt-config 命令中很少用到的功能。在使用 apt 命令时,用户不必再由 apt-get 转到 apt-cache 或 apt-config,提供管理软件包所需的必要选项。

apt 相当于 apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。
apt 具有更精减但足够的命令选项,而且参数选项的组织方式更为有效。此外,启用的几个特性也非常有帮助。例如:可以在使用 apt 命令安装或删除程序时看到进度条,apt 还会在更新存储库数据库时提示用户可升级的软件包个数。
apt 与 apt-get 有一些类似的命令选项,但它并不能完全向下兼容 apt-get 命令,也即可用 apt 替换部分 apt-get 系列命令,但不是全部。

apt 命令用法 查看帮助:apt help

在这里插入图片描述

apt 特有的命令:

apt list           #列出包含条件的包(已安装,可升级等)  
apt edit-sources  #编辑源列表
  • 1
  • 2

apt命令操作(如安装和删除软件包)日志文件:/var/log/dpkg.log

apt 包索引配置文件

/etc/apt/sources.list 
/etc/apt/sources.list.d
  • 1
  • 2

可以修改上面文件为国内的安装软件源,提高速度! 参考链接:

推荐阅读
相关标签