两种方式实现转发代理访问内网NFS 服务—— 筑梦之路

两种方式:

1. nginx四层反向代理NFS

2. firewalld防火墙转发

为什么要代理NFS?

NFS共享由于安全和网络等多种因素,无法直接提供对外访问,需通过代理服务器进行端口转发,以实现对外访问。

nginx需要什么模块才能支持四层代理?

--with-stream

环境网络架构是怎么样的?

代理服务器有2个网卡,一个网卡与NFS存储直连,另外一个网卡与NFS客户端相连接,代理服务器中部署nginx,通过nginx将nfs存储进行反向代理,对nfs客户端提供nfs访问接口。

扫描二维码关注公众号,回复: 14563460 查看本文章

------------------------- nfs 服务端安装 -------------------------------
1. nfs安装

yum  install nfs-utils -y

2. 配置nfs

mkdir /data

cat <<EOF> /etc/exports
/data *(rw,insecure)
EOF

3.设置防火墙规则

firewall-cmd --zone=public --add-port=111/tcp --permanent
firewall-cmd --zone=public --add-port=111/udp --permanent
firewall-cmd --zone=public --add-port=2049/tcp --permanent
firewall-cmd --zone=public --add-port=2049/udp --permanent
firewall-cmd --zone=public --add-port=20048/tcp --permanent
firewall-cmd --zone=public --add-port=20048/udp --permanent
firewall-cmd --reload


-------------------------- nginx代理服务器配置 --------------------------

1. yum安装nginx

cat <<EOF> /etc/yum.repos.d/nginx.repo 
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF

yum  install nginx -y

2. 修改nginx配置文件

cat <<EOF>> /etc/nginx/nginx.conf
stream {
    include /etc/nginx/nfs/*.conf;
}
EOF

#配置nfs 代理

mkdir /etc/nginx/nfs/

cat <<EOF> /etc/nginx/nfs/nfs.conf
upstream nfs {
    server 192.168.0.102:111;
}
upstream rpc {
    server 192.168.0.102:2049;
}
upstream mountd {
    server 192.168.0.102:20048;
}
server {
    listen 111 udp;
    proxy_connect_timeout 5s;
    proxy_timeout 300s;
    proxy_pass nfs;
}
server {
    listen 111;
    proxy_connect_timeout 5s;
    proxy_timeout 300s;    
    proxy_pass nfs;
}
server {
    listen 2049 udp;
    proxy_connect_timeout 5s;
    proxy_timeout 300s;
    proxy_pass rpc;
}
server {
    listen 2049;
    proxy_connect_timeout 5s;
    proxy_timeout 300s;
    proxy_pass rpc;
}
server {
    listen 20048 udp;
    proxy_connect_timeout 5s;
    proxy_timeout 300s;
    proxy_pass mountd;
}
server {
    listen 20048;
    proxy_connect_timeout 5s;
    proxy_timeout 300s;
    proxy_pass mountd;
}
EOF

参数说明:

192.168.0.102是NFS存储IP地址,可根据实际情况修改。通过tcp和udp两种协议监听111、2049、20048三个端口,将该3个端口的请求转发到NFS存储端的对应端口,实现NFS反向代理

3. 启动服务

systemctl enable nginx --now

systemctl status nginx 

4. 检查端口监听

netstat -anp |grep nginx
firewalld转发NFS服务

systemctl enable firewalld --now

#配置转发规则

firewall-cmd -add-forward-port=port=111:proto=tcp:toport=222:toaddr=192.168.0.102 --zone=public --permanent
firewall-cmd --add-forward-port=port=111:proto=tcp:toport=111:toaddr=192.168.0.102 --zone=public --permanent
firewall-cmd --add-forward-port=port=111:proto=udp:toport=111:toaddr=192.168.0.102 --zone=public --permanent
firewall-cmd --add-forward-port=port=2049:proto=tcp:toport=2049:toaddr=192.168.0.102 --zone=public --permanent
firewall-cmd --add-forward-port=port=2049:proto=udp:toport=2049:toaddr=192.168.0.102 --zone=public --permanent
firewall-cmd --add-forward-port=port=20048:proto=tcp:toport=20048:toaddr=192.168.0.102 --zone=public --permanent
firewall-cmd --add-forward-port=port=20048:proto=udp:toport=20048:toaddr=192.168.0.102 --zone=public --permanent
firewall-cmd --zone=public --list-ports
firewall-cmd --zone=public --add-port=111 --permanent
firewall-cmd --zone=public --add-port=111/tcp --permanent
firewall-cmd --zone=public --add-port=111/udp --permanent
firewall-cmd --zone=public --add-port=2049/tcp --permanent
firewall-cmd --zone=public --add-port=2049/udp --permanent
firewall-cmd --zone=public --add-port=20048/tcp --permanent
firewall-cmd --zone=public --add-port=20048/udp --permanent
firewall-cmd --reload

参数说明:

192.168.0.102是NFS存储IP,根据实际情况进行替换即可。
NFS客户端访问

#查看nfs共享目录列表

showmount -e 192.168.1.254

#挂载nfs存储

mount -t nfs 192.168.1.254:/data /mnt/

#检查挂载

df -hT -t nfs


以上提供了两种方式让位于内网环境的NFS通过代理或者转发的方式,处于另一端的NFS可以访问。

代理服务器可以通过两种方法进行NFS端口转发,即通过nginx和firewalld。本环境因为只有1台NFS存储,所以两种方法都可以采用,如果后端有多台NFS存储,是集群模式的,那么建议使用nginx,因为nginx除反向代理外还有负载均衡能力。

猜你喜欢

转载自blog.csdn.net/qq_34777982/article/details/128672608