文章目录

  • 一、使用SSH远程连接Ubuntu
    • 1.查看IP地址
    • 2. 使用SSH连接
  • 二、安装配置Cockpit
    • 1.安装Cockpit
    • 2.使用Cockpit管理
      • A、存储
      • B、网络
      • C、Podman容器
      • D、Ubuntu中运行CentOS容器
        • a.关闭防火墙
        • b. 运行容器
        • c.设置更新源为国内镜像
        • c.安装所需软件
        • d.修改podman网络模式
        • e.在容器中开启ssh服务
        • f.让容器启动即运行SSH服务
        • g.开机让容器自动运行
      • E、虚拟机
      • F、解决“软件更新”页面更新应用报错

前面的博客详细介绍了Ubuntu 21.10的安装,本文介绍一下配置以及使用Cockpit管理。

一、使用SSH远程连接Ubuntu

服务器版本的Ubuntu默认是没有图形界面的,控制台的字符缓冲区也比较小,不能滑动输出,所以最好使用SSH远程连接到Ubuntu来操作。

1.查看IP地址

ifconfig

该命令可能没有安装,使用

sudo apt install net-tools

进行安装

2. 使用SSH连接

二、安装配置Cockpit

Cockpit是Linux下非常好用,非常强大的管理工具,在笔者前面的博客中有一系列介绍Cockpit的文章,但都是在CentOS8下的使用情况,Ubuntu下的Cockpit怎么样呢?是否有所不同呢?

1.安装Cockpit

sudo apt install cockpit
sudo systemctl enable --now cockpit.socket

2.使用Cockpit管理

下图是安装好Cockpit后,进入Cockpit的页面,可以看到默认是限制访问模式的,可以打开管理员权限。

输入密码验证通过即可使用管理员模式

但是与CentOS下的功能少了很多。下面介绍一下部分差异以及解决办法:

A、存储

存储页面中设备只有创建RAID设备,没有“创建卷组”也没有“创建VOD设备”。


上图是Ubuntu的设备菜单,下图是CentOS 8的设备菜单

要想让Ubuntu中的Cockpit支持“创建卷组”,需要手动安装udisks2-lvm2组件,Ubuntu默认是没有安装的。

sudo apt install udisks2-lvm2

然后重新启动相关服务:

sudo systemctl restart udisks2.service
sudo systemctl daemon-reload
sudo systemctl restart cockpit.socket
sudo systemctl restart cockpit.service

然后重新登录cockpit即可看到卷组了,也可以创建卷组。

其实在详细安装Ubuntu 21.10一文中提到的商家安装的系统中只有200G的空间可使用,剩余空间不可使用的情况,如果当时我知道可以通过这种方式来处理剩余的空间,也不至于重新安装系统。

B、网络

Ubuntu中的Cockpit没有防火墙相应的设置,不能在Cockpit页面设置防火墙。

这是因为Cockpit使用的是firewalld服务来进行防火墙设置的,而Ubuntu默认是使用ufw来设置防火墙的,所以并没有安装firewalld服务。如果想要在Cockpit页面设置防火墙,就必须安装firewalld服务。需要注意的是如果安装了firewalld服务,就会有两个防火墙,如果都开启,则两个都会生效。

使用下面的命令安装firewalld服务:

sudo apt install firewalld

安装了firewalld服务后,刷新Cockpit页面就不能访问了。
使用

sudo systemctl status firewalld

查看防火墙状态:

witton@witton:~$ sudo systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)Active: active (running) since Fri 2021-11-19 09:56:46 UTC; 3min 0s agoDocs: man:firewalld(1)Main PID: 5717 (firewalld)Tasks: 2 (limit: 4588)Memory: 23.4MCPU: 686msCGroup: /system.slice/firewalld.service└─5717 /usr/bin/python3 /usr/sbin/firewalld --nofork --nopidNov 19 09:56:45 witton systemd[1]: Starting firewalld - dynamic firewall daemon...
Nov 19 09:56:46 witton systemd[1]: Started firewalld - dynamic firewall daemon.

使用下面命令停止firewalld防火墙

sudo systemctl stop firewalld

进入Cockpit网络页面,可以看到防火墙功能了。

点编辑规则和区域

可以看到系统自动帮我们添加了SSH服务,dhcpv6-client服务和cockpit服务所需要的端口

此时使用

sudo systemctl status firewalld

查看防火墙状态就是开启的了。

firewalld相对ufw来说,要复杂得多,如果习惯使用firewalld服务来做防火墙或者希望使用Cockpit来管理防火墙则可以安装firewalld服务;否则可以直接使用Ubuntu默认的utfw来管理防火墙。一般来说二者选其一即可。

C、Podman容器

Ubuntu的Cockpit也没有Podman页面,需要安装cockpit-podman:

sudo apt install cockpit-podman

安装完成后,重新登录Cockpit就会出现podman容器。


此时点击“获取镜像”,在搜索镜像对话框中,可以看到没有任何镜像源可以使用。

需要编辑/etc/containers/registries.conf文件,在文件最后添加如下内容即可:

unqualified-search-registries= ['docker.io', 'registry.fedoraproject.org', 'quay.io', 'registry.access.redhat.com', 'registry.centos.org']

然后重启cockpit服务:

sudo systemctl restart cockpit.service

重新登录cockpit,就可以看到镜像源了。

D、Ubuntu中运行CentOS容器

我们尝试下载CentOS 7.9.2009版本,并做一些配置。

a.关闭防火墙

在Ubuntu中,如果不关闭防火墙,就运行容器,容器中的系统很可能不能正确解析DNS,所以如果此时安装软件可能会出现错误:Could not resolve host


所以一定要先关闭防火墙,再运行容器(如果防火墙设置正确,可以不关闭防火墙)
网上也有说在/etc/resolve.conf文件中添加DNS或者nameserver的,但是笔者尝试后未成功,因为容器中不能重启网络服务,所以使用重启容器的方式,但是重启容器后,之前修改的内容就变回原来的了。

DNS1=8.8.8.8
DNS2=8.8.4.4

b. 运行容器

首先设置好端口的映射,主机端口2022映射到容器中的22

c.设置更新源为国内镜像

这里以设置CentOS的国内镜像为腾讯的镜像为例,可以打开https://mirrors.tencent.com/help/centos.html,可以看到CentOS 5~8 的镜像配置文件获取方法。
需要注意的是,该方法适用于直接运行于要设置镜像的系统,我们这里是设置容器中的CentOS,容器中的CentOS系统没有wget命令,当然可以先安装wget。
这里笔者使用在主机Ubuntu系统中获取,然后复制到容器系统中的方法。

下载镜像配置文件

cd ~
sudo wget -O CentOS-Base7.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo

查看容器ID,然后复制到指定目录

sudo podman ps
sudo podman cp CentOS-Base7.repo af476904e658:/etc/yum.repos.d/CentOS-Base.repo

c.安装所需软件

设置好国内镜像源后,就可以快速的安装所需软件了

yum install net-tools
yum install gcc
yum install gdb

d.修改podman网络模式

在Ubuntu中如果想让容器中的系统可以安装、更新软件,外部访问容器内的端口,最简单的方式就是彻底关闭防火墙。但是CentOS8中却可以打开防火墙,这是怎么回事呢?

CentOS 8中使用podman启动容器时,会自动创建一个网桥,cni-podman0,然后podman容器中的系统会自动使用这个网桥与外界进行通信,包括访问外部网络以及外部网络访问容器。

但是Ubuntu中却不行,最主要的不同是两个系统使用的网络模式不同,CentOS 8中使用的是桥接模式,而Ubuntu中使用的ptp模式。具体使用的何种网络模式,可以参见/etc/cni/net.d下的文件,Ubuntu中是87-podman-ptp.conflist,而CentOS8中是87-podman-bridge.conflist。

87-podman-ptp.conflist文件内容如下:

{"cniVersion": "0.4.0","name": "podman","plugins": [{"type": "ptp","Documentation": "/usr/share/doc/containernetworking-plugins/main_ptp.md","ipMasq": true,"ipam": {"type": "host-local","Documentation": "/usr/share/doc/containernetworking-plugins/ipam_host-local.md","subnet": "172.16.16.0/24","routes": [{ "dst": "0.0.0.0/0" }]}},{"type": "portmap","Documentation": "/usr/share/doc/containernetworking-plugins/meta_portmap.md","capabilities": { "portMappings": true }},{"type": "firewall","Documentation": "/usr/share/doc/containernetworking-plugins/meta_firewall.md","backend": "iptables"}]
}

87-podman-bridge.conflist文件内容如下:

{"cniVersion": "0.4.0","name": "podman","plugins": [{"type": "bridge","bridge": "cni-podman0","isGateway": true,"ipMasq": true,"hairpinMode": true,"ipam": {"type": "host-local","routes": [{ "dst": "0.0.0.0/0" }],"ranges": [[{"subnet": "10.88.0.0/16","gateway": "10.88.0.1"}]]}},{"type": "portmap","capabilities": {"portMappings": true}},{"type": "firewall"},{"type": "tuning"}]
}

如果想让Ubuntu也能像CentOS 8那样在启动容器时,自动创建一个桥接设备,那这里就需要把Podman的网络模式设置为桥接模式,最简单的方式,就是把上面的87-podman-bridge.conflist文件复制到/etc/cni/net.d目录下,把原来的87-podman-ptp.conflist进行改名即可。

e.在容器中开启ssh服务

容器安装后,一般是没有ssh服务的,如果想要远程连接容器中的系统,需要安装ssh服务

yum install openssh-server

然后尝试使用命令运行SSH服务:

/usr/sbin/sshd -D

可能会报错误:could not load host key

可以使用根据需要下面的命令来生成相应的密钥:

ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''

如果要修改SSH的监听端口,可以在/etc/ssh/sshd_config文件中进行修改

现在使用下面的命令来开启后台进程服务:

/usr/sbin/sshd -D&

要想远程连接容器中的SSH服务,还需要设置账号的密码,可以使用下面的命令来设置:

passwd

设置好后,就可以在外部使用SSH来连接容器了。

f.让容器启动即运行SSH服务

目前设置的SSH服务需要手动启动,比较麻烦,如果能够让SSH服务在容器启动时即自动启动那就省事多了。
网络上有的说可以使用ntsysv命令来查看服务(如果没有这个命令,可以使用yum install ntsysv来安装),然后让其自动生效,或者使用

sytemctl enable sshd.service

但是笔者尝试不起作用。

最简单的办法就是如果容器启动是执行/bin/bash,则直接在/etc/profile.d/目录中新建一个文件sshd.sh(/etc/profile.d/目录中的所有sh文件都会自动执行),文件内容如下:

#!/bin/bashif [[ `ps -e |grep sshd |grep -v "grep" |wc -l` == 0 ]]
then/usr/sbin/sshd &
fi

该文件是检测sshd进程数量,如果为0,则会启动sshd。

g.开机让容器自动运行

参见:开机自动运行容器

E、虚拟机

要想让cockpit管理虚拟机,需要安装cockpit-machines包:

sudo apt install cockpit-machines

安装完成后,重新登录cockpit即可看到虚拟机页面

同时还可以看到多了一个网络设备virbr0

F、解决“软件更新”页面更新应用报错

如果在“软件更新”页面出现报错:Cannot refresh cache whilst offline

可能是网络渲染器(render)有问题,需要修改/etc/netplan/00-installer-config.yaml文件,
在network组最后添加

render:NetworkManager

如:

# This is the network config written by 'subiquity'
network:ethernets:enp3s0:dhcp4: trueversion: 2renderer: NetworkManager

然后使用命令

sudo netplan apply

应用新的网络设置,也可以重启系统。

配置与管理Ubuntu 21.10相关推荐

  1. 如何现在就用到 Ubuntu 21.10

    Ubuntu 21.10 "Impish Indri" 刚刚发布.如果你正在使用 Ubuntu 21.04,你应该有升级到 Ubuntu 21.10 的选项.然而,这种推出将是逐步 ...

  2. 从 Ubuntu 21.04 升级到 Ubuntu 21.10

    Ubuntu 21.10 "Impish Indri" 刚刚发布.如果你正在使用 Ubuntu 21.04,你应该有升级到 Ubuntu 21.10 的选项. 然而,这种推出将是逐 ...

  3. linux系统开发版下载,Ubuntu 21.10(Impish Indri)桌面开发版iso下载地址

    Ubuntu 21.10(Impish Indri)已经提供开发版iso下载了,用户可下载impish-desktop-amd64.iso.arm64.iso试用,这些iso都是每日构建版本,使用这些 ...

  4. Ubuntu 21.10安装国内源

    为什么要安装国内源?因为默认的软件更新源是国外的,在国内使用下载速度很慢.我们只需要把它默认更新软件的国外网址改成我们国内的镜像网址就行了. 首先将我们的原来的软件源备份:(这样就算改错了也能恢复) ...

  5. Linux为fluent配置环境变量,Ubuntu 9.10下安装Fluent lnx86-6.3.26成功

    操作系统Ubuntu 9.10 Fluent 6.3 GAMBIT2.3 for Linux 1 安装Fluent: 将压缩文件解压缩,并进入相应文件夹 sudo ./ Fluent_install- ...

  6. Ubuntu 21.10 ALC294 声卡无声音、音量只能最大或静音问题的解决办法

    问题描述: 问题一:(华硕 及其他 ALC294 声卡用户)安装Ubuntu系统后,增减声音,音量条显示正常,但是无法发出声音,但是更换音频设备为耳机则有声音. 问题二:解决问题一后,又出现这种情况: ...

  7. 【直通华为HCNA/HCNP系列R篇-10】OSPF路由配置与管理-王达-专题视频课程

    [直通华为HCNA/HCNP系列R篇-10]OSPF路由配置与管理-13051人已学习 课程介绍         本课程是按照由笔者编写.由华为公司指定作为ICT认证培训教材的<华为路由器学习指 ...

  8. 《Cisco交换机配置与管理完全手册》(第二版)前言和目录

    史上最具人气.最受好评的网络设备图书领域"四大金刚"的全新升级版本再现江湖了,他们分别是:<Cisco交换机配置与管理完全手册>(第二版).<H3C交换机配置与管 ...

  9. 《Cisco/H3C交换机高级配置与管理技术手册》目录

    备受业界关注,备受无数读者殷切期待的,我的2012年新作--<Cisco/H3C交换机高级配置与管理技术手册>,经过一年的艰辛编写,现终于胜利封笔.现应许多热心读者的要求,把本书的原始目录 ...

  10. 《H3C交换机配置与管理完全手册》(第二版)前言和目录

    史上最具人气.最受好评的网络设备图书领域"四大金刚"的全新升级版本再现江湖了,他们分别是:<Cisco交换机配置与管理完全手册>(第二版).<H3C交换机配置与管 ...

最新文章

  1. 手机网页 右边的空白区
  2. Vue CLI 3 多页应用项目的搭建
  3. 软件测试-PR在运行场景的时候报错测试机:localhost,连接失败!请检查执行器与压力机之间的网络连接,以及场景组中各个项目配置的路径
  4. c语言在管理系统中的应用,C语言应用——学生管理系统的制作
  5. boost::geometry模块使用 Karney 的直接方法
  6. oracle 扩展分区,Oracle 在线扩展分区
  7. 小米捐赠5亿启动“小米青年学者”项目 5年支持100所高校
  8. iPhone 12蓝色版疑似翻车:眼前的蓝不是蓝......
  9. es支持的操作及性能
  10. 全局拉普拉斯平滑之(1)Strucutre extraction from texture via relative total variation及稀疏矩阵求解
  11. 【笔记】OpenCV3 人脸识别
  12. 红米note4手机怎么屏幕录制视频
  13. 苹果系统备份文件服务器地址,iphone备份文件在哪 iphone备份文件位置介绍
  14. 业务范围(business area)
  15. 【01】什么是概率图模型?
  16. Python爬取北京地区短租房信息
  17. 西安~培养我的文艺范儿
  18. C++ nth_element排序算法
  19. java 解析hiveserver2日志 解析HiveSQL 获取表的使用次数 热度
  20. 聚类分析--基本原理、方法(Kmeans,层次聚类)

热门文章

  1. 臭名昭著的Java”
  2. Unity使用脚本模拟Button按下
  3. python文件加密
  4. 想成功就不要设定目标,你信吗?
  5. DataMatrix编码 关于libdmtx的使用
  6. 分布式光伏运维服务器,户用分布式光伏电站运维指导手册——运维及安全
  7. 【火电机组、风能、储能】高比例风电电力系统储能运行及配置分析(Matlab代码实现)
  8. 各类编程语言教程合集
  9. 从新品抽奖小程序思考微信工具型小程序的发展
  10. PDF文件编辑指南4:PDF文档加密和移除PDF文档密码方法