有時需要將內部的NFS服務器供外部客戶端訪問,但NFS的目錄不能再共享,因此考慮通過端口轉發來穿透內網。
這里用防火牆來實現。
1、啟用地址偽裝
firewall-cmd --permanent --add-masquerad
2、轉發固定端口
firewall-cmd --permanent --zone=public --add-forward-port=port=111:proto=tcp:toaddr=X.X.X.X:toport=111
firewall-cmd --permanent --zone=public --add-forward-port=port=111:proto=udp:toaddr=X.X.X.X:toport=111
firewall-cmd --permanent --zone=public --add-forward-port=port=2049:proto=tcp:toaddr=X.X.X.X:toport=2049
firewall-cmd --permanent --zone=public --add-forward-port=port=2049:proto=udp:toaddr=X.X.X.X:toport=2049
firewall-cmd --permanent --zone=public --add-port=111/tcp
firewall-cmd --permanent --zone=public --add-port=111/udp
firewall-cmd --permanent --zone=public --add-port=2049/tcp
firewall-cmd --permanent --zone=public --add-port=2049/udp
3、轉發RPC端口
由於RPC端口是隨機分配的,服務器需要改配置固定端口。
客戶端可通過命令查詢:
rpcinfo -p X.X.X.X
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
90000001 1 tcp 6007
90000001 1 udp 6007
100024 1 udp 2051 status
100024 1 tcp 2051 status
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 4 udp 2052 nlockmgr
100021 4 tcp 2052 nlockmgr
100005 1 udp 2050 mountd
100005 1 tcp 2050 mountd
100005 2 udp 2050 mountd
100005 2 tcp 2050 mountd
100005 3 udp 2050 mountd
100005 3 tcp 2050 mountd
將涉及到的端口都轉發即可
firewall-cmd --permanent --zone=public --add-forward-port=port=2050:proto=tcp:toaddr=X.X.X.X:toport=2050
firewall-cmd --permanent --zone=public --add-forward-port=port=2050:proto=udp:toaddr=X.X.X.X:toport=2050
firewall-cmd --permanent --zone=public --add-forward-port=port=2051:proto=tcp:toaddr=X.X.X.X:toport=2051
firewall-cmd --permanent --zone=public --add-forward-port=port=2051:proto=udp:toaddr=X.X.X.X:toport=2051
firewall-cmd --permanent --zone=public --add-port=2050/tcp
firewall-cmd --permanent --zone=public --add-port=2050/udp
firewall-cmd --permanent --zone=public --add-port=2051/tcp
firewall-cmd --permanent --zone=public --add-port=2051/udp