Cách chỉ cho IP Việt Nam truy cập WordPress Admin và chặn toàn bộ IP nước ngoài (FULL hướng dẫn)
❓ Vì sao cần chặn IP nước ngoài truy cập wp-admin?
Thời gian gần đây, rất nhiều website WordPress bị:
Bot quốc tế scan wp-login.php
Flood admin-ajax.php → gây tăng CPU, tăng load
Attack từ AWS, DigitalOcean, Hetzner, OVH…
Brute-force đăng nhập
Spam REST API
Tấn công WooCommerce (wc-ajax)
→ Kết quả: server quá tải, website chậm hoặc treo dù traffic thật rất ít.
👉 Giải pháp hiệu quả nhất: chỉ cho IP Việt Nam truy cập khu vực admin.

🔥 Giải pháp: Chỉ allow IP Việt Nam vào wp-admin + wp-login + admin-ajax
Không dùng GeoIP (nặng server), mà dùng IP prefix của Việt Nam (nhanh – chính xác – nhẹ).
💡 Cách làm
👉 Bước 1: Mở file .htaccessthêm vào cuối
# ========== BLOCK NON-VN FOR ADMIN (CORRECT VERSION) ==========
<IfModule mod_rewrite.c>
RewriteEngine On
# Chỉ áp dụng cho wp-admin, wp-login, admin-ajax
RewriteCond %{REQUEST_URI} ^/wp-login\.php [OR]
RewriteCond %{REQUEST_URI} ^/wp-admin [OR]
RewriteCond %{REQUEST_URI} ^/wp-admin/admin-ajax\.php [OR]
RewriteCond %{REQUEST_URI} ^/admin-ajax\.php
# ========== ALLOW VIETNAM IP RANGE (CHUẨN KHÔNG LỌT IP NHẬT) ==========
RewriteCond %{REMOTE_ADDR} !^14\. [AND] # VNPT, Viettel
RewriteCond %{REMOTE_ADDR} !^27\. [AND] # VNPT
RewriteCond %{REMOTE_ADDR} !^42\. [AND] # FPT
RewriteCond %{REMOTE_ADDR} !^49\. [AND] # Viettel
RewriteCond %{REMOTE_ADDR} !^58\.(8|14|16|18|22|23|186|187)\. [AND]
RewriteCond %{REMOTE_ADDR} !^59\.153\. [AND] # CMC
RewriteCond %{REMOTE_ADDR} !^101\.96\. [AND]
RewriteCond %{REMOTE_ADDR} !^103\. [AND]
RewriteCond %{REMOTE_ADDR} !^113\. [AND]
RewriteCond %{REMOTE_ADDR} !^115\. [AND]
RewriteCond %{REMOTE_ADDR} !^116\.96\. [AND]
RewriteCond %{REMOTE_ADDR} !^117\. [AND]
RewriteCond %{REMOTE_ADDR} !^118\.69\. [AND]
RewriteCond %{REMOTE_ADDR} !^119\. [AND]
RewriteCond %{REMOTE_ADDR} !^120\.72\. [AND]
RewriteCond %{REMOTE_ADDR} !^125\.212\. [AND]
RewriteCond %{REMOTE_ADDR} !^171\. [AND]
RewriteCond %{REMOTE_ADDR} !^175\. [AND]
RewriteCond %{REMOTE_ADDR} !^180\. [AND]
RewriteCond %{REMOTE_ADDR} !^183\. [AND]
RewriteCond %{REMOTE_ADDR} !^203\. [AND]
# => TẤT CẢ KHÔNG MATCH => CHẶN
RewriteRule ^ - [F,L]
</IfModule>
🧪 Test sau khi cấu hình
Đang ở Việt Nam → vào
/wp-admin→ vào bình thườngBật VPN Mỹ/Japan → vào
/wp-admin→ 403 ForbiddenFrontend website (trang chủ, bài viết…) → vẫn xem bình thường
WooCommerce AJAX (cart, checkout) → người Việt vẫn OK
🧪 Test sau khi cấu hình
Đang ở Việt Nam → vào
/wp-admin→ vào bình thườngBật VPN Mỹ/Japan → vào
/wp-admin→ 403 ForbiddenFrontend website (trang chủ, bài viết…) → vẫn xem bình thường
WooCommerce AJAX (cart, checkout) → người Việt vẫn OK
🎯 Lợi ích của việc chỉ cho IP VN vào admin
✔ Ngăn 90–95% bot scan quốc tế
✔ Giảm 50–80% tải PHP + MySQL
✔ Chặn brute-force wp-login
✔ Chặn flood admin-ajax
✔ Chặn REST API spam
✔ Server chạy cực nhẹ
✔ Không dùng plugin nặng
✔ Không cần GeoIP (nhẹ server)
