Samba trên OpenWrt phù hợp khi tôi muốn chia sẻ HDD/SSD/flash đã mount cho máy Windows, Linux hoặc macOS trong LAN. OpenWrt cũng có ksmbd cho SMBv3 với ít tính năng hơn và ít tốn tài nguyên hơn; bài này tập trung vào quy trình luci-app-samba4 trong tài liệu chính thức.[26]
Điều kiện trước khi cài
Ổ USB/eSATA phải có driver, filesystem và mount point trước. Một bộ package thường dùng là:[26]
| |
Trong LuCI, mount drive ở System → Mount Points, bật entry, bấm Save & Apply và có thể cần Generate Config. Ghi lại mount point, ví dụ /dev/sda1 thành /mnt/sda1. Trang nguồn khuyến nghị ít nhất 128 MB RAM; máy ít RAM có thể cần thêm 128–256 MB swap.[26]
Cài và tạo share cơ bản
- Cài
luci-app-samba4; các dependency nhưsamba4-serversẽ được kéo theo.[26] - Vào Services → Network Shares trong LuCI.[26]
- Dùng cấu hình khởi đầu sau:[26]
| Trường | Giá trị mẫu |
|---|---|
| Interface | lan |
| Workgroup | WORKGROUP |
| Enable Extra Tuning | Bật; tắt nếu dùng Apple Time Machine |
| Shared Directories | Bấm Add |
| Name | tên thư mục share |
| Path | /mnt/sda1 hoặc mount point thật |
| Browseable | bật |
| Read-only | tắt nếu cần ghi |
| Force Root | chỉ bật khi LAN tin cậy |
| Allowed users | tùy chọn, khi dùng tài khoản |
| Allow guests | bật nếu không dùng tài khoản |
| Create Mask | 0666 |
| Directory Mask | 0777 |
Bấm Save and Apply. Nếu cấu hình đúng, máy khách trong LAN có thể đọc/ghi share; ví dụ Windows mở \\192.168.1.1\\storage\\. Tôi không đưa Samba trực tiếp ra Internet chỉ để tiện truy cập.[26]
Tài khoản riêng thay cho guest
Nếu không muốn cho guest:[26]
- Tạo entry người dùng trong
/etc/passwdvà/etc/group.[26] - Chọn UID/GID từ 1000 trở lên để tránh vùng reserved.[26]
- Đặt mật khẩu Samba tại terminal bằng
smbpasswd -a username; mật khẩu nhập tương tác, không ghi vào bài hoặc repository.[26] - Thêm user vào ô LuCI → Network Shares → Allowed users, rồi Save & Apply.[26]
Ví dụ entry an toàn về mặt minh họa:[26]
| |
Dùng chown/chmod để cấp quyền đúng nhu cầu. Tài khoản lạ có thể bị map thành guest theo mặc định, vì vậy tôi kiểm tra cả quyền filesystem lẫn ACL của Samba.[26]
Sửa nâng cao ngoài UCI
Sau khi sửa file cấu hình, restart để sinh lại /etc/samba/smb.conf:[26]
| |
LuCI/UCI sẽ tạo lại cấu hình từ /etc/config/samba và /etc/samba/smb.conf.template. Nếu thật sự cần tự quản lý smb.conf vượt quá UCI:[26]
| |
Thêm vào /etc/rc.local:[26]
| |
Cách này khiến tôi tự chịu trách nhiệm với file cấu hình và startup; thay đổi từ UCI có thể ghi đè ở lần boot sau.[26]
Share cho Apple Time Machine
Trong Services → Network Shares, tạo share riêng với các lựa chọn quan trọng:[26]
- Interface
lan, WorkgroupWORKGROUP.[26] - Enable Extra Tuning tắt; Force synchronous I/o tắt.[26]
- Enable macOS compatible shares bật.[26]
- Allow legacy (insecure) protocols/authentication tắt; Disable netbios tắt.[26]
- Shared directory: name tùy chọn, path như
/mnt/sda1, Browseable bật, Read-only tắt.[26] - Force Root chỉ dùng khi LAN an toàn; ưu tiên user riêng.[26]
- Allow users chỉ định user; Allow guests tắt.[26]
- Create Mask
0600, Directory Mask0700, Vfs objects tắt.[26] - Apple Time-machine share bật; giới hạn GB có thể để trống hoặc đặt giá trị.[26]
Lưu ý Enable Extra Tuning cần tắt cho các bản macOS hiện tại theo tài liệu; không tự thêm service avahi nếu OpenWrt không cần.[26]
Kiểm tra truy cập và startup
Nếu share không mở được, xem /etc/samba/smb.conf.template, filesystem driver và mount point. Có thể thử security từ user sang share, restart daemon, rồi:[26]
- Windows Explorer:
\\router_ip[26] - Nautilus/Dolphin: nhấn
<CTRL>+<L>, nhậpsmb://router_ip/[26]
Sau khi cài package, xác nhận tại LuCI → System → Startup. Từ CLI:[26]
| |
Nếu share không xuất hiện trong Network của Windows, cài wsdd2.[26]
Không ghi được vào share
Đầu tiên kiểm tra quyền thư mục và user. Tài liệu đưa cách thử sau, nhưng 777 mở toàn quyền nên tôi chỉ dùng để chẩn đoán trong LAN tin cậy rồi thu hẹp lại:[26]
| |
Nếu mount qua fstab, có thể kiểm tra option:[26]
| |
Tôi không dùng umask=000 lâu dài trên mạng có client không tin cậy.[26]
Ký tự quốc tế và firewall LAN
Nếu tên file có ký tự có dấu không đọc/ghi được:[26]
| |
Sau đó restart Samba. Với NAT chậm, tài liệu có phương án tắt conntrack cho các cổng SMB trong LAN:[26]
| |
Truy cập từ xa: không phải lựa chọn mặc định
Trang nguồn có mẫu rule ACCEPT cho các cổng SMB. Tôi chỉ xem đây là phương án đặc biệt trong mạng được kiểm soát; Samba/NAS thường nên giữ trong LAN hoặc đi qua VPN. Không mở 137–139/445 ra Internet nếu chưa hiểu rõ rủi ro cập nhật và xác thực:[26]
| |
Discovery trên macOS và hiệu năng tham khảo
Để hỗ trợ discovery kiểu WINS, sửa /etc/samba/smb.conf.template qua Services → Network Shares → Edit Template, trong [global]:[26]
| |
Có thể quảng bá địa chỉ WINS qua DHCP:[26]
| |
Các số đo tham khảo mà nguồn liệt kê không phải benchmark chung cho mọi router:[26]
| Thiết bị/điều kiện | Đọc | Ghi |
|---|---|---|
| WRT3200ACM, USB3 NTFS, LAN 1Gb, OpenWrt 23.05 | 100 MB/s | 110 MB/s |
| GL-MT6000, USB3 exFAT, LAN 1Gb, OpenWrt 24.10 | 85 MB/s | 115 MB/s |
| N100, USB3 exFAT, LAN 1Gb, OpenWrt 24.10 | 120 MB/s | 120 MB/s |
Checklist xử lý lỗi
ps auxcósmbd -Dvànmbd -Dchưa?[26]- Đã tạo user và thêm vào Allowed users chưa?[26]
- Đã chạy
service samba4 restartsau khi sửa chưa?[26] - Filesystem driver của ổ đã có và partition đã mount chưa?[26]
- Có thể chạy
fsck.exfat /dev/sda1sau khi unmount không?[26] - Firewall có cho client LAN tới service không?[26]
Nguồn
Tài liệu gốc: [Samba]1, đăng/cập nhật 2026-08-18.[26]
[26] https://openwrt.org/docs/guide-user/services/nas/cifs.server — OpenWrt Wiki: Samba


Góp Ý / Bình Luận / Đánh giá