当前位置: 首页 > news >正文

[Linux入门] Linux 部署本地 APT 仓库及 NFS 共享服务全攻略

目录

一、本地 APT 仓库搭建

为什么需要本地 APT 仓库?

搭建步骤

1️⃣安装 apt-mirror 工具

2️⃣配置 mirror.list 文件

3️⃣同步远程仓库

4️⃣配置本地 APT 源

5️⃣更新本地 APT 源

6️⃣对外提供 APT 源服务(可选)

二、NFS 共享服务部署

1️⃣NFS 工作原理

2️⃣部署步骤

<1> 环境准备

<2> 服务端配置

<3> 客户端配置

<4> 测试共享功能

注意事项


在企业内网环境或网络受限场景中,本地 APT 仓库和 NFS 共享服务是提升效率的重要工具。本文将详细介绍如何在 Linux 系统中搭建这两项服务,适合初学者跟随操作。

一、本地 APT 仓库搭建

APT(Advanced Package Tool)是 Ubuntu 系统中强大的软件包管理工具,当无法直接访问外部源时,搭建本地 APT 仓库能显著提升软件安装效率。

为什么需要本地 APT 仓库?

  • 内网环境需求:企业内网或离线环境下,无法直接使用官方 APT 源,本地仓库可实现内网软件快速分发
  • 突破访问限制:部分外部源在国内访问不稳定,本地仓库可缓存资源,确保软件安装不受网络影响

搭建步骤

1️⃣安装 apt-mirror 工具

apt-mirror 是同步远程 APT 仓库到本地的专用工具,执行以下命令安装:

bash

sudo apt-get update
sudo apt-get install apt-mirror
2️⃣配置 mirror.list 文件

apt-mirror 的配置文件位于/etc/apt/mirror.list,使用文本编辑器(如 vim)打开修改:

bash

sudo vim /etc/apt/mirror.list

以下是一个示例配置文件:

conf

# 设置缓存数据的基础存储路径
set base_path /var/spool/apt-mirror/
# 软件包和元数据的存储路径
set mirror_path $base_path/mirror
# 模板文件路径
set skel_path $base_path/skel
# 日志和状态文件路径
set var_path $base_path/var
# 架构设置(64位系统用amd64)
set defaultarch amd64# 同步的远程仓库地址(以阿里云为例)
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# 设置本地存储路径
clean_path $base_path/clean

注意:jammy对应 Ubuntu 22.04 版本,其他版本需替换:20.20 用focal,20.23 用lunar,可通过lsb_release -a查看系统版本后对应修改。

3️⃣同步远程仓库

配置完成后,执行以下命令开始同步远程仓库到本地:

bash

apt-mirror

同步过程耗时根据网络速度和仓库大小而定,建议在空闲时间执行。

4️⃣配置本地 APT 源

编辑系统源配置文件,将本地仓库设置为软件源:

bash

sudo vim /etc/apt/sources.list

添加本地源地址(与配置文件路径对应):

conf

deb file:/var/spool/apt-mirror/mirror/ubuntu/ jammy main restricted universe multiverse
deb-src file:/var/spool/apt-mirror/mirror/ubuntu/ jammy main restricted universe multiverse
5️⃣更新本地 APT 源

使配置生效:

bash

sudo apt-get update
6️⃣对外提供 APT 源服务(可选)

如需让内网其他机器使用该仓库,可通过 Nginx 发布:

  1. 安装 Nginx:

bash

sudo apt-get install nginx

  1. 创建 Nginx 配置文件:

bash

sudo vim /etc/nginx/sites-available/apt-mirror

配置内容:

nginx

server {listen 80;server_name 你的服务器IP;root /var/spool/apt-mirror/mirror/mirrors.aliyun.com;autoindex on;location / {allow all;}
}

  1. 启用配置并重启 Nginx:

bash

sudo ln -s /etc/nginx/sites-available/apt-mirror /etc/nginx/sites-enabled/
sudo systemctl restart nginx

  1. 客户端配置:在客户端的/etc/apt/sources.list中添加:

conf

deb http://服务器IP/ubuntu/ jammy main restricted universe multiverse

二、NFS 共享服务部署

NFS(Network File System)是基于 TCP/IP 的网络文件系统协议,允许客户端像访问本地文件一样访问远程服务器的共享资源,常用于集群环境的数据共享。

1️⃣NFS 工作原理

  1. 客户端通过网络连接 NFS 服务器
  2. 客户端发起文件访问请求(读 / 写)
  3. 服务器执行相应操作并返回结果
  4. 依赖 RPC(远程过程调用)机制实现远程到本地的映射

2️⃣部署步骤

<1> 环境准备
  • 两台服务器:服务端(192.168.204.133)和客户端(192.168.204.137)
  • 确保局域网互通(可通过 ping 测试)
  • 操作系统:Ubuntu(本文以 Ubuntu 为例)
<2> 服务端配置
  1. 安装 NFS 服务端软件:

bash

sudo apt update
sudo apt upgrade
sudo apt install nfs-kernel-server

  1. 设置自启动:

bash

sudo systemctl enable rpcbind
sudo systemctl enable nfs-kernel-server

  1. 创建共享目录并配置权限:

bash

mkdir /root/testnfs  # 创建共享目录
sudo vim /etc/exports  # 编辑NFS配置文件

在配置文件中添加:

conf

/root/testnfs *(rw,sync,no_root_squash,no_subtree_check,insecure)

  • 配置格式:共享目录 客户机地址(权限选项)
  • 权限说明:
    • rw:读写权限(ro为只读)
    • sync:同步写入磁盘
    • no_root_squash:客户端 root 用户保留权限(默认会降权)
    • *:允许所有客户机访问(也可指定 IP 或网段,如 192.168.7.0/24)

  1. 启动 NFS 服务:

bash

sudo systemctl start nfs-kernel-server
# 查看服务状态
sudo systemctl status nfs-kernel-server

  1. 关闭防火墙(测试环境,生产环境需配置规则):

bash

sudo systemctl stop firewalld
sudo systemctl disable firewalld
<3> 客户端配置
  1. 安装 NFS 客户端软件:

bash

sudo apt install nfs-common

  1. 查看服务端共享目录:

bash

showmount -e 192.168.204.133

输出应显示:/root/testnfs *

  1. 手动挂载共享目录:

bash

# 创建本地挂载目录
mkdir /root/testnfs
# 挂载NFS共享
sudo mount 192.168.204.133:/root/testnfs /root/testnfs

  1. 验证挂载结果:

bash

tail -1 /etc/mtab  # 查看挂载信息

  1. 设置开机自动挂载:编辑/etc/fstab添加:

conf

192.168.204.133:/root/testnfs /root/testnfs nfs defaults,_netdev 0 0

  • _netdev:表示需要网络的设备,避免开机时网络未就绪导致挂载失败
<4> 测试共享功能
  1. 在客户端创建测试文件:

bash

touch /root/testnfs/testfile.txt

  1. 在服务端查看:

bash

ls /root/testnfs/

若能看到testfile.txt,说明共享成功。

注意事项

  • 卸载 NFS 挂载:sudo umount /root/testnfs
  • 强制卸载(当客户端卡死时):sudo umount -lf /root/testnfs
  • 权限问题:确保共享目录的本地权限与 NFS 配置权限一致
  • 网络问题:NFS 依赖稳定的网络连接,网络中断可能导致客户端操作卡死
http://www.lryc.cn/news/604100.html

相关文章:

  • 算法精讲:二分查找(一)—— 基础原理与实现
  • 7.28学习日志
  • ICT模拟零件测试方法--晶体管测试
  • 智能Agent场景实战指南 Day 23 : Agent安全与隐私保护
  • k8s搭建nfs共享存储
  • Ubuntu20.04安装和配置Samba实现Win11下共享文件夹
  • 工作中使用git可能遇到的场景
  • Leetcode 08 java
  • Linux笔记6——常用命令-5
  • 【核心技术一】Python异步编程深度解析
  • 基于springboot的零食商城的设计与实现/零食销售系统的设计与实现
  • 第2章 AB实验的关键问题
  • 全自动植树机solidwoeks图纸cad【7张】三维图+设计说明说
  • sqli-labs通关笔记-第25关GET字符注入(过滤or和and 脚本法)
  • QWebEngineProfile setCachePath无效
  • 对College数据进行多模型预测(R语言)
  • 青少年软件编程图形化Scratch等级考试试卷(三级)2025年6月
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(11):文法+单词
  • 层次分析法(Analytic Hierarchy Process,AHP)简介与简单示例
  • Qt 多线程数据库操作优化
  • MOGA(多目标遗传算法)求解 ZDT1 双目标优化问题
  • 选用Java开发商城的优势
  • Python的魔术方法
  • 答题抽奖活动小程序技术复盘
  • ETF期权的交割日对股市有什么影响?
  • 津发科技带你了解皮肤电信号中的SCL与SCR
  • 智慧园区系统引领未来:一场科技与生活的完美融合
  • LaTeX 下载安装保姆级教程
  • MC0244多重堡垒
  • SAP-ABAP:Excel 文件内容解析到 ABAP 内表函数ALSM_EXCEL_TO_INTERNAL_TABLE运用详解