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

发布于:2025-07-30 ⋅ 阅读:(27) ⋅ 点赞:(0)

目录

一、本地 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 依赖稳定的网络连接,网络中断可能导致客户端操作卡死

网站公告

今日签到

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