Bật mí: Tôi mất 1,5 ngày để làm những việc có thể hoàn thành trong một giờ—nhưng đó là cách bạn học!
Thiết lập
Tôi có hai máy chủ:
🖥️ Máy chủ Linux (Oracle Linux) nơi Redis được cài đặt
💻 Máy chủ Windows đang chạy ứng dụng cần kết nối với Redis trên cổng 6379
Tôi nghĩ: "Chỉ cần cài đặt Redis, mở cổng 6379 và thế là xong!". Nhưng không, mọi chuyện không đơn giản như vậy.
Sai lầm đầu tiên: Tin tưởng các mặc định
Tôi đã cài đặt Redis bằng dnf
, khá dễ dàng. Thách thức thực sự bắt đầu khi tôi cố gắng kết nối từ máy chủ Windows. Kết nối liên tục bị lỗi — mặc dù Redis chạy tốt cục bộ trên máy Linux.
Tôi đã tìm hiểu sâu hơn về tệp redis.conf
(tệp cấu hình mặc định được tạo trong quá trình cài đặt) và đây là những gì tôi phải thay đổi:
bind 0.0.0.0
protected-mode no
These two lines are critical:
Trong đó:
bind 0.0.0.0
: Cho phép kết nối từ bất kỳ IP nào, không chỉ localhost.protected-mode no
: Vô hiệu hóa "chế độ an toàn" của Redis để chặn truy cập bên ngoài.
Sau khi áp dụng những thay đổi này và chạy redis-server redis.conf
, tôi đã kết nối thành công từ máy chủ Linux bằng cách sử dụng redis-cli
. Mọi thứ dường như ổn.
Lỗi thực sự: BỊ TỪ CHỐI bởi Chế độ được bảo vệ
Tuy nhiên, từ máy chủ Windows, tôi vẫn không thể kết nối. Một lệnh telnet đến cổng 6379
trả về lỗi này:
DENIED Redis is running in protected mode...
Mặc dù tôi đã tắt chế độ bảo vệ, Redis vẫn từ chối kết nối.
Mảnh ghép còn thiếu? Xác thực.
Sửa lỗi bằng Docker và tùy chỉnh redis.conf
Để kiểm soát tốt hơn và kiểm tra mọi thứ một cách sạch sẽ, tôi đã chạy Redis bằng Docker và tạo tùy chỉnh redis.conf
:
bind 0.0.0.0
port 6379
daemonize yes
protected-mode no
requirepass MyStrongPassword
✅ Dòng cuối cùng— requirepass
—chính là chìa khóa thực sự.
Sau khi Redis có mật khẩu, mọi thứ hoạt động. Ứng dụng của tôi đã kết nối thành công từ máy chủ Windows.
Sau đây là danh sách kiểm tra nhanh để cho phép kết nối từ xa tới Redis:
✅ Chỉnh sửa redis.conf
bind 0.0.0.0
protected-mode no
requirepass your_secure_password
✅ Đảm bảo cổng 6379
được mở trong tường lửa
✅ Khởi động lại Redis với cấu hình tùy chỉnh
✅ Kiểm tra với redis-cli -a your_password -h your_redis_host
Những gì mất của tôi trong 1,5 ngày có thể chỉ mất một giờ làm việc—nhưng này, giờ tôi đã thực sự hiểu mô hình bảo mật của Redis.
Nếu bạn đang thiết lập Redis lần đầu tiên và thắc mắc tại sao máy khách từ xa không thể kết nối—hãy kiểm tra cấu hình. Đừng cho rằng đó là tường lửa hoặc mạng Docker. Thường thì chỉ là thiếu requirepass.
Bạn có mẹo gì không?
Nếu bạn có nhiều kinh nghiệm hơn trong việc cấu hình Redis trong sản xuất hoặc có các phương pháp hay nhất để chia sẻ, tôi rất muốn nghe từ bạn. Đây là lần đầu tiên tôi làm điều đó và tôi chắc chắn rằng có chỗ để cải thiện!