[实验] NFS 远程共享服务的搭建 (openSUSE Leap 15 版)

纪念:站主于 2020 年 1 月完成了此开源实验,并将过程中的所有命令经过整理和注释以后,形成以下教程

步骤一:规划拓扑

1.1 服务器列表

服务端 192.168.1.20
客户端 192.168.1.21

1.2 服务器列表简介

1) 服务器提供 NFS 服务将自己的目录分享
2) 客户端挂载和使用 NFS 服务将服务端分享的目录挂载在自己的目录上

步骤二:系统环境要求

1) 所有服务器的系统都需要是 openSUSE 15.1 版本
2) 所有服务器都要关闭防火墙
3) 所有服务器系统都要配置好可用的软件源(最好是软件数量最多的官方版本)
4) 需要按照拓扑图给对应的服务器配置好 IP 地址和主机名
5) 所有服务器都要可以相互 ping 通自己和对方的 IP 地址和主机名

步骤三:所有服务器安装 NFS 服务

3.1 所有服务器安装 NFS 服务

(分别在服务端和客户端上执行以下步骤)

# zypper install nfs-kernel-server
# zypper install nfs-client

3.2 设置所有服务器开机自启 NFS 服务

(分别在服务端和客户端上执行以下步骤)

# systemctl enable rpcbind
# systemctl enable nfsserver

3.3 所有服务器启动 NFS 服务

(分别在服务端和客户端上执行以下步骤)

# systemctl start rpcbind
# systemctl start nfsserver

步骤四:配置 NFS 服务

4.1 创建用于 NFS 服务的目录

4.1.1 创建被 NFS 服务共享的目录

(只在服务端上执行以下步骤)

# mkdir /nfsserver
4.1.2 创建用于挂载 NFS 服务分享目录的目录

(只在客户端上执行以下步骤)

# mkdir /nfsclient

4.2 配置服务端的 NFS 服务配置文件

4.2.1 在服务端上添加可被 NFS 服务挂载的选项

(只在服务端上执行以下步骤)

# vi /etc/exports

添加以下内容:

......
/nfsserver 192.168.1.21(rw,no_root_squash,no_subtree_check)

(补充:这里的 192.168.1.21 是客户端的 IP 地址)

4.2.2 让刚刚修改的 NFS 服务配置文件生效

(只在服务端上执行以下步骤)

# exportfs -a

4.3 配置客户端的 NFS 服务挂载文件

4.3.1 在客户端上添加开机挂载 NFS 的选项

(只在客户端上执行以下步骤)

# vi /etc/fstab

添加以下内容:

......
192.168.1.20:/nfsserver /nfsclient nfs  timeo=120,rw,soft,nolock  0 0
4.3.2 让刚刚修改的 NFS 服务挂载文件生效

(只在客户端上执行以下步骤)

# mount -a

步骤五:确认 NFS 服务是否搭建成功

(只在客户端上执行以下步骤)

# df -h | grep 192.168.1.20

(补充:如果出现了类似 “192.168.1.20:/nfsserver 38G 5.5G 31G 16% /nfsclient”,则代表 NFS 搭建成功了)

[内容] Linux 路由转发的设置

注意:

openSUSE & SUSE 搭配容器环境或者虚拟机环境可能只能使用永久路由转发才会实现路由转发

正文:

内容一:临时路由转发的设置

1.1 临时开启路由转发

# echo 1 > /proc/sys/net/ipv4/ip_forward
# echo 1 > /proc/sys/net/ipv6/conf/all/forwarding

或者:

# sysctl -w net.ipv4.ip_forward=1
# sysctl -w net.ipv6.conf.all.forwarding=1
# sysctl -w net.ipv4.route.flush=1
# sysctl -w net.ipv6.route.flush=1

(注意:此方法对 openSUSE & SUSE 无效)

1.2 临时停止路由转发

# echo 0 > /proc/sys/net/ipv4/ip_forward
# echo 0 > /proc/sys/net/ipv6/conf/all/forwarding

或者:

# sysctl -w net.ipv4.ip_forward=0
# sysctl -w net.ipv6.conf.all.forwarding=0
# sysctl -w net.ipv4.route.flush=1
# sysctl -w net.ipv6.route.flush=1

(注意:此方法对 openSUSE & SUSE 无效)

内容二:永久路由转发的设置

2.1 方法一:修改 /etc/sysctl.conf 配置文件或者 /etc/sysctl.d/*.conf 配置文件

2.1.1 永久开启路由转发
2.1.1.1 修改 /etc/sysctl.conf 配置文件或者 /etc/sysctl.d/*.conf 配置文件
# vim /etc/sysctl.conf

或者:

# vim /etc/sysctl.d/*.conf

添加以下内容:

......
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
2.1.1.2 让路由转发的永久设置立刻生效
# sysctl -p /etc/sysctl.conf

或者:

# reboot

(注意:openSUSE & SUSE 只会在 reboot 重启后生效)

2.1.2 永久关闭路由转发
2.1.2.1 修改 /etc/sysctl.conf 配置文件或者 /etc/sysctl.d/*.conf 配置文件
# vim /etc/sysctl.conf

或者:

# vim /etc/sysctl.d/*.conf

添加以下内容:

......
net.ipv4.ip_forward = 0
net.ipv6.conf.all.forwarding = 0
2.1.2.2 让路由转发的永久设置立刻生效
# sysctl -p /etc/sysctl.conf

或者:

# reboot

(注意:openSUSE & SUSE 只会在 reboot 重启后生效)

2.2 方法二:yast

2.2.1 永久开启路由转发
# yast

System –> Network Settings –> Routing –> 开启 Enable IPv4 Forwarding –> 开启 Enable Ipv6 Forwarding –> OK

(注意:此方法只对 openSUSE & SUSE 有效)

2.2.2 永久关闭路由转发
# yast

System –> Network Settings –> Routing –> 关闭 Enable IPv4 Forwarding –> 关闭 Enable Ipv6 Forwarding –> OK

(注意:此方法只对 openSUSE & SUSE 有效)

内容三:显示当前路由转发的状态

# cat /proc/sys/net/ipv4/ip_forward


补充:
1) 如果返回的结果是 1 则代表已经生效
2) 如果返回的结果是 0 则代表没有生效

# cat /proc/sys/net/ipv6/conf/all/forwarding


补充:
1) 如果返回的结果是 1 则代表已经生效
2) 如果返回的结果是 0 则代表没有生效

(注意:此方法对 openSUSE & SUSE 无效)

或者:

# sysctl net.ipv4.ip_forward


补充:
1) 如果返回的结果是 net.ipv4.ip_forward = 1 则代表已经生效
2) 如果返回的结果是 net.ipv4.ip_forward = 0 则代表没有生效

# sysctl net.ipv6.conf.all.forwarding


补充:
1) 如果返回的结果是 net.ipv6.conf.all.forwarding = 1 则代表已经生效
2) 如果返回的结果是 net.ipv6.conf.all.forwarding = 0 则代表没有生效

上古启示

清澈的小溪缓缓流过蜿蜒寂静的山谷
明亮的阳光让它的波纹如砖石般圣洁耀眼
愿将心灵托付于吮吸这些圣洁的树林
愿他们深邃的阅历能够给心灵带来清晰的指引

远古地球沉重的低语
生命挣扎存在的真相
自私、贪婪、恐惧、懦弱、残忍
这些恶毒的心魔是怎样被植入到族人的基因中的

大地四季的五彩缤纷
在年复一年的轮回
红色夕阳的梦幻瞬间
总是如期洗礼着那条起伏不断的地平线

在那个方向遥远的地方
孤独伫立的礁石
在不断承受着冰寒刺骨的惊涛骇浪
在浩瀚未知的大海面前守护着最终的初心和坚持

那些在最仇视异己的时代中孤注一掷的公正
是如何在遍体鳞伤地支撑起一个种族的未来
那些在仇恨和残忍面前勇敢坚持下来的宽恕
又换回过哪些充满魔法的奇迹

夕阳的红色让树林和天空合为一体
轻柔的微风让彩色的树叶唱起了上古的歌谣
这些经历过冰热世纪世代相传的旋律彼此呼应
让心灵在空洞的未知中独自坚强

壮丽的星辰努力驱散着暗夜的混沌
流星灿烂的尾翼提示着陨石撞击的时代
那颗庄严璀璨的星际之光消失在起伏不断的地平线
那是一条由树林们依靠自由、公正和博爱组成的文明底线

[内容] CentOS Linux & RHEL YUM 的设置 (网络代理)

内容一:设置所有 YUM 软件源网络代理的方法

# vim /etc/yum.conf

添加以下内容:

......
proxy=http://<user>:<password>@<IP address>:<port>/


注意:
1) 如果没有用户和密码就写成 proxy=http://<IP address>:<port>/
2) 如果密码中也有一个 “@” 符号,则需要把 “@” 符号转义一下,转义成 %40

或者:

# vim /etc/yum.conf

添加以下内容:

......
proxy=http://<IP address>:<port>
proxy_username=<user>
proxy_password=<password>

(注意:如果没有用户和密码就不写后面两行)

或者:

# vim /etc/rhsm/rhsm.conf

添加以下内容:

......
proxy=<IP address>
proxy_port=<port>
proxy_username=<user>
proxy_password=<password>

(注意:如果没有用户和密码就不写后面两行)

内容二:单独设置某个 YUM 软件源网络代理

# vim /etc/yum.repos.d/<yum source file name prefix>.repo

添加以下内容:

......
proxy=http://<user>:<password>@<IP address>:<port>/
......


注意:
1) 如果没有用户和密码就写成 proxy=http://<IP address>:<port>/
2) 如果密码中也有一个 “@” 符号,则需要把 “@” 符号转义一下,转义成 %40

或者:

# vim /etc/yum.repos.d/<yum source file name prefix>.repo

添加以下内容:

......
proxy=http://<IP address>:<port>
proxy_username=<user>
proxy_password=<password>

(注意:如果没有用户和密码就不写后面两行)