Cách cài đặt NFS Server và Client trên Ubuntu 22.04

theanh

Administrator
Nhân viên
NFS là gì? NFS hay Hệ thống tệp mạng là một giao thức cho phép người dùng cục bộ truy cập dữ liệu từ xa từ nhiều đĩa và thư mục theo cùng cách như truy cập cục bộ. Giao thức NFS ban đầu được Sun Microsystem phát triển và trở thành giao thức chuẩn để chia sẻ tệp qua mạng. Giao thức này được sử dụng rộng rãi trong môi trường tập trung, nơi người dùng hoặc máy tính khách có thể lưu trữ và truy cập dữ liệu trên/đến một máy chủ từ xa tập trung.

Trên hầu hết các hệ thống Linux, NFS có thể được cài đặt và cấu hình dễ dàng cho cả Máy chủ và Máy khách NFS. Hầu như mọi bản phân phối Linux đều cung cấp các gói NFS theo mặc định trên kho lưu trữ riêng của chúng. Tên gói khác nhau, nhưng cấu hình vẫn giống nhau đối với hầu hết các bản phân phối Linux.

Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Máy chủ và Máy khách NFS trên Máy chủ Ubuntu 22.04. Bạn cũng sẽ học cách tự động gắn thư mục chia sẻ NFS khi khởi động hệ thống trên máy khách.

Điều kiện tiên quyết​

Hướng dẫn này yêu cầu các điều kiện tiên quyết sau:
  • Máy chủ Ubuntu 22.04 - Để cài đặt Máy chủ NFS.
  • Máy khách Linux - Ví dụ này sẽ được máy khách Ubuntu sử dụng.
  • Người dùng không phải root có quyền root/quản trị viên.

Cài đặt và cấu hình Máy chủ NFS​

Điều đầu tiên bạn sẽ làm ở đây là cài đặt và cấu hình Máy chủ NFS. Trước khi bắt đầu, hãy đăng nhập vào máy chủ của bạn và lấy quyền root.

Bạn có thể đăng nhập bằng lệnh ssh bên dưới. Sau đó, chạy lệnh "sudo su" để lấy quyền root.
Mã:
ssh user@SERVER-IP
sudo su

Cài đặt Gói Máy chủ NFS​

Trước khi cài đặt bất kỳ gói nào, hãy chạy lệnh apt bên dưới để cập nhật và làm mới kho lưu trữ Ubuntu của bạn.
Mã:
sudo apt update
Bây giờ hãy cài đặt gói máy chủ NFS bằng lệnh bên dưới. Nhập Y để xác nhận cài đặt và nhấn ENTER, quá trình cài đặt sẽ bắt đầu.
Mã:
sudo apt install nfs-kernel-server


Sau khi quá trình cài đặt máy chủ NFS hoàn tất, hãy kiểm tra và xác minh dịch vụ máy chủ NFS bằng lệnh sau. Khi cài đặt Ubuntu, máy chủ NFS sẽ tự động được bật và sẽ tự động chạy khi khởi động hệ thống.
Mã:
sudo systemctl is-enabled nfs-server
sudo systemctl status nfs-server


Trên máy chủ Ubuntu 22.04, cấu hình NFS đã thay đổi. Cấu hình chính cho NFS nằm tại tệp "/etc/nfs.conf", cho phép bạn thiết lập và cấu hình máy chủ NFS. Một cấu hình khác cho dịch vụ NFS nằm tại "/etc/default/nfs-*", cấu hình này có thể được sử dụng để thiết lập dịch vụ NFS về cách dịch vụ sẽ chạy.

Ngoài ra, các phiên bản NFS mặc định được bật trên cài đặt mặc định là NFSv3 và NFSv4. Bạn có thể kiểm tra các phiên bản NFS được bật mặc định bằng lệnh bên dưới.
Mã:
cat /proc/fs/nfsd/versions
Mã:
-2 +3 +4 +4.1 +4.2

Thiết lập thư mục dùng chung​

Sau khi cài đặt gói máy chủ NFS, bây giờ bạn sẽ thiết lập các thư mục dùng chung. Các thư mục dùng chung NFS có thể được xác định thông qua tệp "/etc/exports". Ngoài ra, bạn có thể chỉ định địa chỉ IP của máy khách cho thư mục dùng chung hoặc thiết lập quyền đọc/ghi vào thư mục dùng chung.

Chạy lệnh bên dưới để tạo các thư mục dùng chung mới. Trong ví dụ này, sẽ có hai thư mục dùng chung dành cho máy khách, "/srv/backups" và "/mnt/shared".
Mã:
sudo mkdir -p /srv/backups /mnt/shared
Bây giờ hãy thay đổi quyền sở hữu và quyền của các thư mục dùng chung bằng lệnh bên dưới. Người dùng và nhóm phải là "nobody:nogroup" và quyền sẽ là "777" để đảm bảo các thư mục được chia sẻ có thể ghi được.
Mã:
sudo chown -R nobody:nogroup /srv/backups /mnt/shared
sudo chmod 777 /srv/backups /mnt/shared
Tiếp theo, sửa đổi tệp "/etc/exports" bằng lệnh sau.
Mã:
sudo nano /etc/exports
Thêm cấu hình sau vào tệp.
Mã:
/srv/backups 192.168.5.100(rw,sync,no_subtree_check)
/mnt/shared 192.168.10.0/24(rw,sync,no_subtree_check)
Lưu và đóng tệp khi bạn hoàn tất.
  • Thư mục "/srv/backups" sẽ chỉ khả dụng cho máy khách NFS có địa chỉ IP "192.168.5.100".
  • Thư mục "/mnt/shared" sẽ khả dụng cho tất cả máy khách trong toàn bộ mạng "192.168.10.0/24".
  • rw - bật chức năng đọc và ghi cho thư mục dùng chung.
  • sync - cho phép NFS ghi các thay đổi trước khi phản hồi cho máy khách và đảm bảo máy chủ NFS luôn được hiển thị cho máy khách.
  • no_subtree_check - tắt chức năng kiểm tra cây con và đảm bảo sẽ không có xung đột khi người dùng thay đổi tên tệp.
Tiếp theo, chạy lệnh sau để áp dụng và xuất tất cả các thư mục. Nếu bạn không nhận được bất kỳ thông báo nào, thì cài đặt của bạn là đúng.
Mã:
sudo exportfs -a
Bây giờ hãy chạy lệnh sau để khởi động lại và xác minh dịch vụ NFS. Và bạn sẽ thấy dịch vụ NFS đang chạy với một thư mục được xuất mới.
Mã:
sudo systemctl restart nfs-server
sudo systemctl status nfs-server


Chạy lệnh sau để kiểm tra các thư mục chia sẻ khả dụng trên máy chủ NFS. Bạn sẽ thấy hai thư mục "/srv/backups" và "/mnt/shared" có sẵn dưới dạng thư mục dùng chung cho máy khách.
Mã:
sudo exportfs -v

Bảo mật máy chủ NFS bằng tường lửa​

Sau khi thiết lập thư mục dùng chung NFS, đã đến lúc bảo mật máy chủ NFS bằng Tường lửa, trong trường hợp này, tường lửa mặc định cho Ubuntu là UFW.

Như bạn có thể thấy ở trên, mỗi thư mục dùng chung có thể truy cập được thông qua một địa chỉ IP và mạng cụ thể của máy khách. Vì vậy, bạn sẽ cần chỉ định địa chỉ IP của máy khách hoặc mạng trong quy tắc tường lửa UFW sẽ được phép truy cập vào cổng dịch vụ NFS.

Chạy lệnh ufw bên dưới để cho phép địa chỉ IP của máy khách "192.168.5.100" và mạng "192.168.10.0/24" truy cập vào cổng dịch vụ NFS.
Mã:
sudo ufw allow from 192.168.5.100 to any port nfs
sudo ufw allow from 192.168.10.0/24 to any port nfs
Bây giờ hãy tải lại quy tắc tường lửa UFW và xác minh danh sách các quy tắc tường lửa bằng lệnh bên dưới. Bạn sẽ thấy cổng dịch vụ NFS mặc định "2049" có thể truy cập thông qua các địa chỉ IP và mạng máy khách cụ thể.
Mã:
sudo ufw reload
sudo ufw status

Cài đặt và cấu hình máy khách NFS​

Sau khi bạn đã cài đặt Máy chủ NFS, bây giờ là lúc thiết lập máy khách NFS và gắn thư mục dùng chung vào máy khách. Trong ví dụ này, máy khách cũng sẽ là máy Ubuntu.

Đăng nhập vào máy khách Ubuntu của bạn. Nếu bạn đang sử dụng Ubuntu Desktop, bạn chỉ cần mở terminal trên hệ thống của mình. Nhưng nếu bạn đang sử dụng phiên bản Ubuntu Server cho máy khách, bạn có thể kết nối bằng lệnh ssh như bên dưới.
Mã:
ssh root@CLIENT-IP

Cài đặt gói máy khách NFS​

Bước đầu tiên bạn sẽ thực hiện trên máy khách là cài đặt gói "nfs-common" cho phép bạn gắn máy chủ NFS vào máy khách của mình.

Chạy lệnh apt bên dưới để cập nhật và làm mới kho lưu trữ Ubuntu của bạn.
Mã:
sudo apt update
Bây giờ hãy cài đặt gói "nfs-common" bằng lệnh sau. Nhập Y để xác nhận cài đặt và nhấn ENTER. Bây giờ quá trình cài đặt sẽ bắt đầu.
Mã:
sudo apt install nfs-common

Thiết lập thư mục gắn kết​

Trước khi bắt đầu gắn kết thư mục chia sẻ NFS, bạn sẽ tạo một thư mục cụ thể mới cho đích gắn kết. Trong ví dụ này, thư mục đích để gắn kết các chia sẻ NFS là thư mục "/mnt/data".

Chạy lệnh bên dưới để tạo một thư mục mới "/mnt/data".
Mã:
sudo mkdir -p /mnt/data
Để gắn kết thư mục chia sẻ NFS, hãy chạy lệnh gắn kết bên dưới. Trong bản demo này, bạn sẽ gắn thư mục chia sẻ "/srv/backups" vào thư mục đích "/mnt/data".
Mã:
sudo mount nfs_server_ip:/srv/backups /mnt/data
Bây giờ hãy chạy lệnh sau để kiểm tra và xác minh danh sách các đĩa đã gắn trên máy Ubuntu của bạn. Bạn sẽ thấy thư mục chia sẻ NFS "/srv/backups" được gắn vào máy cục bộ của bạn trên thư mục "/mnt/data".
Mã:
sudo df -h

Xác minh quyền ghi vào máy chủ NFS​

Sau khi bạn đã gắn thành công thư mục chia sẻ NFS, đã đến lúc xác minh quyền ghi vào thư mục chia sẻ NFS.

Bây giờ hãy chạy lệnh sau để tạo và ghi tệp mới "write.txt" vào thư mục đích NFS được gắn "/mnt/data/".
Mã:
echo "This file from client" > /mnt/data/write.txt
cat /mnt/data/write.txt


Tiếp theo, quay lại Máy chủ NFS và chạy lệnh sau để kiểm tra và xác minh tệp "write.txt". Bạn sẽ thấy chính xác tệp mà bạn vừa tạo từ máy khách NFS.
Mã:
cat /srv/backups/write.txt
ls /srv/backups/

Tự động gắn Máy chủ NFS với /etc/fstab​

Tại thời điểm này, bạn đã gắn thành công thư mục chia sẻ NFS trên máy khách Ubuntu và đã kiểm tra quyền ghi trên thư mục chia sẻ. Bây giờ bạn sẽ thiết lập thư mục chia sẻ NFS để được gắn kết tự động trong quá trình khởi động hệ thống và điều này có thể được thực hiện thông qua tệp /etc/fstab.

Trước khi chỉnh sửa tệp /etc/fstab, hãy chạy lệnh sau để hủy gắn kết thư mục chia sẻ NFS khỏi mục tiêu "/mnt/data".
Mã:
sudo umount /mnt/data
Chỉnh sửa tệp "/etc/fstab" bằng lệnh bên dưới.
Mã:
sudo nano /etc/fstab
Thêm cấu hình sau vào tệp.
Mã:
nfs_server_ip:/srv/backups /mnt/data nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
Lưu và đóng tệp khi bạn xong.

Tiếp theo, chạy lệnh mount bên dưới để kiểm tra và xác minh tệp "/etc/fstab". Nếu cấu hình của bạn đúng, tất cả các hệ thống tệp trên tệp "/etc/fstab" sẽ được gắn vào máy của bạn.
Mã:
sudo mount -a
Xác minh danh sách các đĩa đã gắn trên máy khách của bạn bằng lệnh bên dưới. Và bạn sẽ thấy thư mục chia sẻ NFS "/srv/backups" được gắn vào thư mục đích "/mnt/data". Nếu bạn khởi động lại/khởi động lại máy khách, thư mục chia sẻ NFS sẽ tự động được gắn vào thư mục "/mnt/data".
Mã:
sudo df -h

Kết luận​

Xin chúc mừng! Bây giờ bạn đã cài đặt thành công NFS Server trên máy chủ Ubuntu 22.04. Bạn cũng đã bảo mật quyền truy cập NFS Server bằng tường lửa UFW. Cuối cùng, bạn cũng đã học cách thiết lập máy khách Ubuntu để gắn thư mục chia sẻ NFS, bao gồm cách tự động gắn thư mục chia sẻ NFS khi khởi động hệ thống thông qua tệp "/etc/fstab".
 
Back
Bên trên