Hôm nay tôi muốn truy cập thư mục chia sẻ Windows từ Mac qua mạng LAN bằng cách nhập smb://192.168.0.x trong "Connect to Server" của Finder, nhưng kết nối liên tục thất bại. Sau khi kiểm tra nhanh, tôi đã tìm ra nguyên nhân và khắc phục thành công. Dưới đây là quy trình chính.
Kiểm tra ban đầu
Đầu tiên, tôi kiểm tra trạng thái dịch vụ SMB phía Windows và xác nhận cổng 445 (chịu trách nhiệm giao tiếp SMB) đang lắng nghe bình thường. Dịch vụ hoạt động tốt, nghĩa là vấn đề nằm ở cài đặt mạng và tường lửa.
Vấn đề 1: Mạng gia đình bị Windows phân loại là mạng công cộng
Vì bảo mật, Windows mặc định chặn chia sẻ file trên mạng công cộng — tường lửa tự động chặn kết nối đến cổng 445. Điều này hợp lý ở nơi công cộng, nhưng ngăn cản việc truyền file bình thường trên LAN gia đình và là nguyên nhân chính gây lỗi kết nối.
Vấn đề 2: Quy tắc tường lửa chia sẻ SMB của Windows hầu hết bị tắt
Các quy tắc tường lửa SMB tích hợp hầu hết đều ở trạng thái tắt. Một số ít đang bật cũng chỉ cho phép IP cụ thể, không mở cho toàn bộ subnet cục bộ, khiến Mac không thể thiết lập kết nối.
Các bước khắc phục
Bước 1: Đổi loại mạng từ công cộng sang riêng tư
Mở PowerShell với quyền Administrator và chạy lệnh sau để phân loại lại mạng thành riêng tư, cho phép Windows tin tưởng mạng cục bộ và bỏ chặn chia sẻ file:
Set-NetConnectionProfile -InterfaceAlias "Ethernet" -NetworkCategory Private
Bước 2: Tạo quy tắc tường lửa riêng để cho phép cổng 445
Thay vì sửa các quy tắc SMB tích hợp (phức tạp, phụ thuộc lẫn nhau và hầu hết bị tắt), tốt hơn là tạo một quy tắc đến mới chuyên dụng để mở cổng TCP 445 một cách ổn định:
New-NetFirewallRule -DisplayName "SMB-Allow-LAN" -Direction Inbound -Protocol TCP -LocalPort 445 -Action Allow -Profile Private
Sau khi áp dụng các thay đổi này, Mac kết nối thành công và có thể truy cập thư mục chia sẻ Windows.
Điểm quan trọng
- Chia sẻ file LAN yêu cầu mạng Windows ở chế độ riêng tư — mạng công cộng chặn hoàn toàn chia sẻ.
- SMB phụ thuộc cổng 445 — dù dịch vụ chạy, tường lửa chặn thì không thể kết nối.
- Tạo quy tắc tường lửa riêng thay vì sửa quy tắc tích hợp — đơn giản hơn, ổn định hơn, và dễ quản lý hoặc xóa sau này.
- Chỉ cần dùng tên người dùng để kết nối — không cần thêm tên máy tính vào cài đặt kết nối.