Linux 部署本地apt仓库及NFS共享服务

发布于:2025-07-13 ⋅ 阅读:(20) ⋅ 点赞:(0)

1 部署本地apt仓库

1.1 概述

Ubuntu系统中,APT(AdvancedPackageTool)是一种强大的软件包管理工具,它允许用户通过简单的命令来安装、更新、升级和删除软件包。

在某些情况下,如公司内网环境或无法直接访问外部源的情况下,就需要搭建自己的APT源。

1.2 APT环境搭建

1.2.1 安装apt-mirror软件

apt-mirror是一个用于同步远程APT仓库到本地的工具,它可以根据mirror.list配置文件中的设置,自动下载并更新软件包和索引文件。

在Ubuntu上安装apt-mirror的命令如下:

# 更新软件包列表
apt-get update
# 安装
apt-get install apt-mirror

1.2.2 修改配置文件

apt-mirror的配置文件位于==/etc/apt/mirror.list==。使用文本编辑器打开该文件,根据需要进行修改。

主要配置项包括同步的远程APT仓库地址、本地存储路径等。

在这里插入图片描述

这里用了jammy说明系统内核是2022,可以用lsb_release -a看看自己系统的内核,然后百度一下将jammy换成什么。

如果是2020就把所有jammy换成focal,如果是2023就全换成lunar,后面配置source.list的时候记得也换。

1.2.3 同步远程APT仓库

完成配置文件修改后,运行命令同步远程APT仓库到本地。

apt-mirror

1.2.4 配置本地APT源

在搭建好本地APT源后,需要将其配置为Ubuntu的软件源。

编辑/etc/apt/sources.list文件,添加本地APT源的地址。

deb file:/var/spool/apt-mirror/mirror ubuntu main restricted universe multiverse
deb-src file:/var/spool/apt-mirror/mirror ubuntu main restricted universe multiverse

1.2.5 更新本地APT源

完成配置后,运行以下命令更新本地APT源:

apt-get update

这将从本地APT源获取最新的软件包和索引文件信息。

1.3 对外部署apt源

  • apt源对外开放需要使用http或tftp工具,这里使用nginx进行对外开放。
apt-get install nginx
  • 修改nginx配置文件

在这里插入图片描述

root后面跟镜像存放的实际路径,配合客户端的sources.list文件配置,需要把目录指向到dists、pool所在的路径下。

  • 重启并应用nginx
ln -s /etc/nginx/sites-available/apt-mirror /etc/nginx/sites-enabled/
systemctl restart nginx

1.4 客户端配置

客户端配置sources.list文件,指定apt仓库源:

在这里插入图片描述

更新软件列表:

apt-get clean
apt-get update

2 部署NFS共享服务

2.1 NFS 共享存储服务

NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。

通过使用NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。

对于大多数负载均衡群集来说,使用 NFS 协议来共享数据存储是比较常见的做法,NFS 也是 NAS 存储设备必然支持的一种协议。

2.2 使用NFS发布共享资源

NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。

在Ubuntu系统中,需要安装NFS服务端软件和nfs客户端软件。

在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind软件包来提供 NFS共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。

2.3 工作原理

客户端通过网络连接到NFS服务器。

客户端发起文件访问请求(如读取、写入文件)。

服务器接收到请求后,根据请求内容执行相应的操作(如从文件系统中读取数据、写入数据到文件系统等)。

服务器将操作结果返回给客户端。

2.4 NFS的配置与使用

NFS的配置通常涉及设置服务器端的共享目录和客户端的挂载点。

在配置过程中,需要确保RPC(远程过程调用协议)服务正常运行,因为NFS是基于RPC来实现网络文件系统共享的。

客户端通过挂载命令将NFS服务器上的共享目录挂载到本地文件系统中,之后就可以像访问本地文件一样访问这些共享文件了。

2.4.1 环境

IP地址 功能
192.168.40.131 共享主机,简称server
192.168.40.132 客户机,简称client

2.4.2 共享主机设置

  • 安装NFS服务器软件包
# 更新软件列表
apt update
# 更新所有软件,这一步可以不做
apt upgrade
# 安装NFS服务器软件包
apt install nfs-kernel-server
  • 调整服务的自启动状态
# nfs-kernel-server开机自启动
update-rc.d nfs-kernel-server enable
# rpcbind开机自启动
systemctl enable rpcbind
  • 设置共享目录
    • 格式:目录位置 客户机地址(权限选项)
mkdir /test/share
# NFS的配置文件,内容默认为空(无任何共享)
vim /etc/exports
# 将/test/share文件共享给所有人,并给予权限
/test/share * rw,sync,no_root_squash,no_subtree_check,insecure)

rw:表示允许读写(ro 为只读)

sync:表示同步写入

no_root_squash:表示当客户机以root 身份访问时赋予本地 root 权限

no_subtree_check:禁用子树检查,提高性能

insecure:允许非安全端口访问

# 共享给指定网段
/test/share 192.168.40.0/24(rw,sync,no_root_squash)
# 共享给多个客户机
/test/share 192.168.40.132(rw) 192.168.40.133(ro)
  • 启动NFS服务程序
systemctl start nfs-kernel-server
systemctl restart nfs-kernel-server
systemctl status nfs-kernel-server
  • 查看本机的NFS共享目录
showmount -e
  • 关闭防火墙(如果有的话)
systemctl stop firewalld
systemctl disable firewalld

2.4.3 客户机设置

NFS 协议的目标是提供一种网络文件系统,因此对NFS 共享的访问也使用 mount 命令来进行挂载,对应的文件系统类型为 nfs。

既可以手动挂载,也可以加入 fstab 配置文件来实现开机自动挂载。

  • 若要正常访问 NFS 共享资源,客户机中需要安装客户端软件
apt install nfs-common
  • 查看 NFS 服务器端共享了哪些目录
showmount -e 192.168。40.131
  • 客户机手动挂载 NFS 共享目录
mkdir /test/131share
mount 192.168.40.131:/test/share /test/131share
  • 查看挂载
df -hT
tail -1 /etc/mtab

2.4.4 测试

  • 在客户机创建文件
echo "客户机创建的文件" > /test/131share/132.txt
  • 在服务器上查看
ls /test/share

2.4.5 自动挂载设置

  • vim /etc/fstab
# 客户机设置开机自动挂载
192.168.40.131:/test/share /test/131share nfs defaults,_netdev 0 0

将文件系统类型设为nfs

挂载参数建议添加_netdev(设备需要网络)

若添加 soft、intr 参数可以实现软挂载,允许在网络中断时放弃挂载

2.4.6 强制卸载NFS

NFS 客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端 NFS服务突然间停掉了,那么在客户端就会出现执行 df -h 命令卡死的现象。

这个时候使用umount 命令是无法直接卸载的,需要加上 -lf 才能卸载。当出现卡死现象时,要重新开一个终端,执行 cat /etc/rc.local 命令,查看挂载点。

然后使用 umount 命令卸载,其中-l 表示解除正在繁忙的文件系统,-f 表示强制。

umount -lf /test/131share

网站公告

今日签到

点亮在社区的每一天
去签到