发行版差异

CentOS

网络配置

位置

配置网卡参数

网卡的配置文件位于/etc/sysconfig/network-scripts/目录下,文件名通常为ifcfg-<interface_name>。

配置文件修改

以下是一个典型的静态IP配置:

TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="ens33"
UUID="some-uuid-value"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.1.100"
PREFIX="24"
GATEWAY="192.168.1.1"
DNS1="8.8.8.8"
DNS2="8.8.4.4"

TYPE: 网络接口类型。

BOOTPROTO: 启动协议,设置为”none”表示静态IP,“dhcp”表示动态IP。

DEFROUTE: 是否为默认路由。

IPV4_FAILURE_FATAL: IPv4配置失败是否致命。

IPV6INIT: 是否启用IPv6。

NAME: 网络接口的逻辑名称。

UUID: 网络接口的唯一标识符。

DEVICE: 设备名称。

ONBOOT: 系统启动时是否激活网络接口。

IPADDR: 设定的静态IP地址。

PREFIX: 子网掩码的长度。

GATEWAY: 默认网关。

DNS1 和 DNS2: 指定的DNS服务器地址。

应用配置

修改配置文件后,需要重启网络服务或者接口来应用新的配置:

sudo systemctl restart network

或者重启单个接口:

sudo ifdown ens33 && sudo ifup ens33

防火墙配置

构成

iptables防火墙策略
  • 由内核层面的netfilter网络过滤器处理
firewalld防火墙策略
  • 交由内核层面的nftables包过滤框架处理

  • 支持动态更新技术

  • 加入区域的概念

zone区域原理
  • drop(丢弃):任何接收的数据包都会被丢弃,没有任何恢复。仅能有发送出的网络连接
  • block(限制):任何接收的网络连接都能被IPV4的icmp-host-prohibited信息和IPV6的icmp6-adm-prohidited信息所拒绝
  • public(公共):在公共区域使用,不能相信网络内的其他计算机不会对你的计算机造成危险,只能接受经过选区的连接
  • external(外部):特别是为路由器启用了伪装功能的外部网。你不能信任来自网络的其他计算,不能相信它们不会对你的计算机造成危害,只能接收经过选择的连接。
  • dmz(非军事区):用于你的非军事区内的计算机,此区域内可公开访问,可以有限地进入你的内部网络,仅仅接收经过选择的连接
  • work(工作):用于工作区。你可以基本相信网络内的其他计算机不会危害你的计算机。仅仅接收经过选择的连接
  • home(家庭):用于家庭网络。你可以基本信任网络内的其他计算机不会危害你的计算机。仅接收经过选择的连接
  • internal(内部):于内部网络。你可以基本上信任网络内的其他计算机不会威胁你的计算机。仅仅接受经过选择的连接。
  • trusted(信任):可接受所有的网络连接。

基本使用

状态命令
启动
systemctl start firewalld
关闭
systemctl stop firewalld
查看状态
systemctl status firewalld
开机禁用
systemctl disable firewalld
开机启用
systemctl enable firewalld
管理防火墙规则
查看版本
firewalld-cmd --version
查看帮助
firewalld-cmd --help
显示状态
firewalld-cmd --state
查看所有开发的端口
firewalld-cmd --zone=public--list-ports
更新防火墙规则
firewalld-cmd --reload
端口管理
  • 添加80端口,协议为 TCP

     firewall - cmd -- zone = public -- add - port =80/tcp
  • 查询80端

     firewall - cmd -- zone = public -- query - port =80/tcp
  • 删除80端口

    - firewall - cmd -- zone = public -- remove - port =80/tcp

Ubuntu

dpkg 是 Debian 系的底层软件包管理器,本身不处理依赖关系解析;apt-get 是其上层的包管理工具,负责依赖关系的处理;apt 则是 apt-get 的改进版本,整合了部分 apt-cache 的功能并提供更友好的用户体验,日常使用推荐优先使用 apt。

dpkg

dpkg (Debian Package) 是 Debian 系 Linux 发行版(例如 Ubuntu、Debian 等)的底层软件包管理器。它负责安装、构建、删除和管理 .deb 软件包。dpkg 本身并不处理依赖关系的解析,它依赖于 apt、aptitude 等更高级的工具来管理依赖关系。

以下是一些常用的 dpkg 命令及其功能:

  • dpkg -i <package.deb>: 安装一个 .deb 软件包。
  • dpkg -r <package>: 删除一个已安装的软件包(保留配置文件)。
  • dpkg -P <package>: 完全删除一个已安装的软件包(包括配置文件)。
  • dpkg -l <pattern>: 列出所有已安装的软件包,可以使用 pattern 进行过滤。 这类似于 apt list --installed,但 dpkg -l 提供更详细的信息。
  • dpkg -s <package>: 显示一个软件包的详细信息,无论它是否已安装。
  • dpkg -L <package>: 列出一个已安装软件包的所有文件。
  • dpkg -S <file>: 查找哪个软件包包含指定的文件。
  • dpkg --configure <package>: 配置一个软件包,这通常在安装过程中被打断时使用。

apt-get

apt-get 是 Debian 和 Ubuntu 等 Linux 发行版中一个强大的命令行包管理工具。虽然现在推荐使用 apt 命令,因为它提供了更友好的用户体验,但 apt-get 仍然被广泛使用,并且在一些情况下可能仍然是必要的。

以下是一些常用的 apt-get 命令及其功能:

安装软件包

  • apt-get install <package>: 安装指定的软件包及其依赖项。
  • apt-get install <package1> <package2> ...: 同时安装多个软件包。
  • apt-get reinstall <package>: 重新安装指定的软件包。

更新软件包列表

  • apt-get update: 更新本地软件包列表,获取最新的软件包信息(但不安装任何更新)。 这是在安装或升级软件包之前必须执行的步骤。

升级软件包

  • apt-get upgrade: 升级所有已安装的软件包到最新版本。
  • apt-get dist-upgrade: 执行发行版升级,例如从 Ubuntu 20.04 升级到 Ubuntu 22.04. 这比 upgrade 更激进,可能会移除一些过时的软件包。

删除软件包

  • apt-get remove <package>: 删除指定的软件包(保留配置文件)。
  • apt-get purge <package>: 完全删除指定的软件包(包括配置文件)。
  • apt-get autoremove: 删除不再需要的依赖项。

下载软件包

  • apt-get download <package>: 下载指定的软件包但不安装。

清理

  • apt-get clean: 清除已下载的软件包缓存。
  • apt-get autoclean: 清除不再需要的已下载软件包缓存。

apt

安装软件包

  • apt install <package>: 安装指定的软件包及其依赖项。
  • apt install <package1> <package2> ...: 同时安装多个软件包。
  • apt reinstall <package>: 重新安装指定的软件包。

更新软件包列表

  • apt update: 更新本地软件包列表,获取最新的软件包信息(但不安装任何更新)。 这是在安装或升级软件包之前必须执行的步骤。

升级软件包

  • apt upgrade: 升级所有已安装的软件包到最新版本。
  • apt full-upgrade: 执行完全升级,可能会移除一些过旧的软件包。
  • apt dist-upgrade: 执行发行版升级,例如从 Ubuntu 22.04 升级到 Ubuntu 24.04。

删除软件包

  • apt remove <package>: 删除指定的软件包(保留配置文件)。
  • apt purge <package>: 完全删除指定的软件包(包括配置文件)。
  • apt autoremove: 删除不再需要的依赖项。

搜索软件包

  • apt search <keyword>: 搜索包含指定关键字的软件包。
  • apt show <package>: 显示指定软件包的详细信息。

清理

  • apt clean: 清除已下载的软件包缓存。
  • apt autoclean: 清除不再需要的已下载软件包缓存。

其他常用命令

  • apt list: 列出所有可用的软件包。
  • apt list --installed: 列出所有已安装的软件包。
  • apt list --upgradable: 列出所有可升级的软件包。
  • apt edit-sources: 编辑软件源列表。

apt 与 apt-get 的区别

apt 和 apt-get 都是用于管理软件包的命令行工具,apt 是 apt-get 的改进版本,旨在提供更友好的用户体验。 apt 整合了一些 apt-get 和 apt-cache 的功能,并提供了一些改进,例如更简洁的输出和进度条。 在大多数情况下,推荐使用 apt 而不是 apt-get。

总而言之,apt 是一个功能强大且易于使用的包管理工具,对于任何使用 Debian 或 Ubuntu 等 Linux 发行版的用户来说都是必不可少的。 掌握常用的 apt 命令可以极大地提高你的工作效率。

网络配置

18.04 版本以前

在Ubuntu18.04版本以后,Ubuntu引入netplan来管理网络环境。netplan是一种网络配置工具,使用YAML文件来定义网络接口和相关配置。

所以,在18.04版本以前,Ubuntu网络配置文件在/etc/network/interfaces中

以下是一个典型的静态IP配置:

auto eth0
iface eth0 inet static;
address  210.168.3.90;
gateway 192.168.3.1;
netmask 255.255.255.0
dns-nameservers 192.168.1.254 8.8.8.8
 #network 192.168.3.0;
#broadcast 192.168.3.255;

auto: 指定网卡。

iface: 启动协议,设置为”none”表示静态IP,“dhcp”表示动态IP。

address: 配置IPV4地址。

gateway: 网络接口的逻辑名称。

UUID: 网络接口的唯一标识符。

DEVICE: 设备名称。

ONBOOT: 系统启动时是否激活网络接口。

IPADDR: 设定的静态IP地址。

PREFIX: 子网掩码的长度。

GATEWAY: 默认网关。

DNS1 和 DNS2: 指定的DNS服务器地址。

重启网络服务

sudo service network-manager restart

18.04 版本以后

进入/etc/netplan/目录,列出该目录下的内容

cd /etc/netplan/
ls

利用vim编辑器打开xxx.yaml文件,进行编辑:

vim 01-network-manager-all.yaml

内容如下:(修改网卡名称、IP、网关后保存退出)

# Let NetworkManager manage all devices on this system
network:
    ethernets:
        ens32: 
            dhcp4: false
            addresses:
              - 192.168.3.88/24
            routes:
              - to: default
                via: 192.168.3.1
            nameservers:
              addresses: [8.8.8.8,8.8.4.4,192.168.3.1]
    version: 2

重启网络服务

systemctl restart NetworkManager.service

没有报错说明格式正确。