Linux命令-showmount(显示 NFS 服务器导出的目录)

Linux命令-showmount(显示 NFS 服务器导出的目录)

快速参考

showmount 是用于显示 NFS 服务器导出目录的命令行工具。它查询指定 NFS 服务器的导出列表,帮助客户端了解哪些目录可以挂载。showmount 既可以查看本地 NFS 服务器的导出,也可以查看远程服务器的导出。

核心概念 :NFS 服务器通过 /etc/exports 定义导出的目录;客户端使用 showmount 查看可用导出。

基本语法

bash 复制代码
# 基本语法
showmount [选项] [主机]

# 查看本地服务器导出的目录
showmount -e localhost

# 查看远程服务器导出的目录
showmount -e nfs-server.example.com

# 查看所有挂载了服务器导出的客户端
showmount -a nfs-server.example.com

安装 showmount

bash 复制代码
# showmount 是 nfs-common 包的一部分
# Debian/Ubuntu
sudo apt update
sudo apt install nfs-common

# RHEL/CentOS
sudo yum install nfs-utils

# Arch Linux
sudo pacman -S nfs-utils

# 验证安装
which showmount
showmount --version

常用选项

bash 复制代码
# -e, --exports  显示服务器的导出列表
showmount -e nfs-server

# -a, --all  显示所有客户端的挂载情况
showmount -a

# -d, --directories  显示被挂载的目录
showmount -d nfs-server

# -h, --help  显示帮助
showmount --help

# --no-headers  不显示标题行
showmount -e --no-headers nfs-server

# --version  显示版本
showmount --version

实际应用场景

bash 复制代码
# === 场景1:查看远程 NFS 服务器的可用导出 ===
# 1. 查看服务器导出了哪些目录
showmount -e 192.168.1.100

# 输出示例:
# Export list for 192.168.1.100:
# /shared      192.168.1.0/24
# /home        192.168.1.0/24
# /var/backups *.example.com

# 2. 挂载远程导出的目录
sudo mkdir -p /mnt/nfs_shared
sudo mount -t nfs 192.168.1.100:/shared /mnt/nfs_shared

# 3. 验证挂载
df -h | grep nfs

# === 场景2:在 NFS 服务器上查看谁挂载了目录 ===
# 1. 查看所有客户端的挂载
showmount -a

# 输出示例:
# All mount points on server:
# 192.168.1.101:/shared
# 192.168.1.102:/home

# 2. 查看哪些目录被挂载了
showmount -d

# 输出示例:
# Directories on server:
# /shared             192.168.1.101
# /home               192.168.1.102,192.168.1.103

配置 NFS 服务器

bash 复制代码
# === 在服务器端配置 NFS 导出 ===

# 1. 安装 NFS 服务器软件包
sudo apt install nfs-kernel-server   # Debian/Ubuntu
sudo yum install nfs-utils          # RHEL/CentOS

# 2. 编辑 /etc/exports
sudo vim /etc/exports

# 添加以下行:
# /shared      192.168.1.0/24(rw,sync,no_subtree_check)
# /home        192.168.1.100(rw,sync)
# /var/backups *.example.com(ro,sync)

# 参数说明:
# rw       :读写权限
# ro       :只读权限
# sync     :同步写入(更安全)
# async    :异步写入(更快)
# no_root_squash :允许 root 用户访问(不安全)
# root_squash   :将 root 映射为 anonymous(安全)
# no_subtree_check :不检查父目录权限(提高性能)

# 3. 导出目录
sudo exportfs -a   # 导出 /etc/exports 中所有目录
sudo exportfs -r   # 重新导出所有目录

# 4. 查看导出列表
showmount -e localhost

# 5. 启动 NFS 服务
sudo systemctl enable nfs-kernel-server   # Debian/Ubuntu
sudo systemctl start nfs-kernel-server

sudo systemctl enable nfs-server          # RHEL/CentOS
sudo systemctl start nfs-server

客户端挂载 NFS 共享

bash 复制代码
# === 在客户端挂载 NFS 共享 ===

# 1. 查看服务器导出的目录
showmount -e nfs-server

# 2. 创建本地挂载点
sudo mkdir -p /mnt/nfs_shared

# 3. 挂载 NFS 共享
sudo mount -t nfs nfs-server:/shared /mnt/nfs_shared

# 4. 使用 NFSv4 挂载(推荐)
sudo mount -t nfs4 nfs-server:/shared /mnt/nfs_shared

# 5. 持久化挂载(写入 /etc/fstab)
sudo vim /etc/fstab
# 添加以下行:
# nfs-server:/shared  /mnt/nfs_shared  nfs4  defaults,timeo=100,retrans=5  0 0

# 6. 验证挂载
df -h | grep nfs

故障排查

bash 复制代码
# 问题1:showmount -e 报错 "Connection refused"
# 原因:NFS 服务器未运行
# 解决:在服务器上启动 NFS 服务
sudo systemctl start nfs-kernel-server

# 问题2:showmount -e 报错 "No route to host"
# 原因:防火墙阻止 NFS 端口
# 解决:在服务器上开放 NFS 端口
sudo ufw allow from 192.168.1.0/24 to any port nfs

# 问题3:可以 showmount 但无法挂载
# 原因:权限不足或导出配置错误
# 解决:检查服务器 /etc/exports 配置
sudo exportfs -v

# 问题4:挂载后无法写入
# 原因:权限或 NFS 选项配置错误
# 解决:检查导出权限
showmount -e nfs-server
# 确保有 rw 选项

总结

核心价值showmount 是 NFS 客户端和服务器的关键工具,用于查看可用的 NFS 导出。
常用组合

  • showmount -e server:查看服务器的导出列表
  • showmount -a:查看所有客户端的挂载
  • sudo exportfs -a:导出 NFS 目录
  • sudo mount -t nfs server:/path /mnt:挂载 NFS 共享
    注意 :NFS 配置需要注意权限和安全性,避免 no_root_squash 等不安全选项。
相关推荐
Akamai中国1 天前
Linode接口及默认防火墙现已全面开放使用
服务器·人工智能·云计算·云服务
椿.湫1 天前
lvs技术
服务器·网络·lvs
nxb5561 天前
haporxy概述,实验环境设定,haproxy安装及配置参数,socat日更新工具、基于cookie的会话保持
linux·haproxy·socat
撩妹帝九歌1 天前
使用VHF框架实现一个虚拟HID键盘
linux·运维·计算机外设
January丶1 天前
Ubuntu设置静态IP及修改主机名
linux
风华同学1 天前
【环境搭建篇】VMware Fusion虚拟机安装Ubuntu 26.04
linux·运维·ubuntu
花无缺pize1 天前
vLLM框架:LLM推理的高效机制
服务器·人工智能·vllm
tianyu2341 天前
Docker 数据目录迁移指南
linux·docker·容器·eureka·centos
鲜花飘飘扬1 天前
Linux标准大页没有使用案例分享
linux·运维·服务器
snowfoootball1 天前
Windows ↔ Linux 常用快捷键速查及宝塔服务器端常用操作
linux·运维·服务器