บล็อกประเทศ/IP ไม่ให้เข้าเว็บผ่าน cPanel และ WordPress

วิธีป้องกัน Traffic ที่ไม่ต้องการด้วยการบล็อก IP หรือประเทศระดับ Server หรือ WordPress Plugin

บล็อกประเทศและ IP ตั้งค่ากันบัญชีการเข้าถึงเว็บไซต์ Security

เหตุใดจึงต้องบล็อกประเทศหรือ IP Address?

การบล็อก Traffic จากประเทศหรือ IP Address ที่ไม่ต้องการเป็นกลยุทธ์ป้องกันเว็บไซต์ที่หลายเจ้าของเว็บใช้กันแพร่หลาย เหตุผลหลัก ๆ มีดังต่อไปนี้:

1. ลดความเสี่ยงจากการโจมตีและ Spam

หากคุณสังเกตเห็นว่า Spam Comments หรือ Login Brute Force Attack มาจากประเทศหรือ IP Range เดียวกัน การบล็อกดังกล่าวสามารถลดภาระ Server และเพิ่มความปลอดภัยของเว็บอย่างมีนัยสำคัญ

2. ลดภาระ Bot Traffic ที่ไม่ต้องการ

Bot และ Crawler มากมายสร้าง Traffic ที่ไม่มีคุณค่า บางครั้ง Analytics บอกว่าเว็บคุณมี Traffic สูงแต่ไม่มี Conversion เลย นั่นอาจเป็นเพราะ Bot จากภูมิภาคที่ไม่ใช่ Target Audience ของคุณ

3. ปฏิบัติตามข้อกำหนดทางกฎหมาย

บางธุรกิจอาจมีข้อจำกัดทางด้านการค้าหรือสัญญา ที่ต้องให้บริการเฉพาะประเทศหรือภูมิภาคบางประเทศเท่านั้น เช่น บริการลิขสิทธิ์ดีวีดี หรือแอปพลิเคชันเฉพาะภูมิภาค

4. ควบคุมแนวทางการให้บริการ

หากเจ้าของเว็บเลือกให้บริการเฉพาะในโซนเอเชีย การบล็อกประเทศอื่น ๆ จะช่วยลดความสับสนและสนับสนุนประสบการณ์ผู้ใช้ได้ดียิ่งขึ้น

วิธีที่ 1: บล็อก IP ผ่าน cPanel IP Blocker

cPanel มาพร้อมกับเครื่องมือ IP Blocker ที่อยู่ในหมวด Security ซึ่งสามารถบล็อก IP Address หรือ IP Range ที่ระบุได้โดยตรงที่ระดับ Server ข้อดีคือ การบล็อกนี้จะป้องกันการเข้าถึงแม้กระทั่งก่อนที่จะไปถึง WordPress หรือเว็บแอปพลิเคชัน ทำให้ประหยัด Resources มากที่สุด

ข้อจำกัดของ cPanel IP Blocker

สิ่งที่ต้องทราบคือ IP Blocker ของ cPanel ใช้สำหรับบล็อก IP Address หรือ IP Range เพียงเท่านั้น มันไม่มีฟีเจอร์ GeoIP Blocking (บล็อกตามประเทศ) ในตัว หากคุณต้องการบล็อกตามประเทศ คุณต้องใช้วิธีอื่นเช่น Plugin WordPress หรือ Cloudflare

ขั้นตอนการบล็อก IP ใน cPanel

  1. Login เข้า cPanel หลักของคุณ
  2. ไปที่หมวด Security แล้วคลิก IP Blocker
  3. ในช่อง "Add an IP to Block" ให้ป้อน IP Address เดี่ยว เช่น 192.168.1.100 หรือ IP Range เช่น 192.168.1.0/24 (Classless Inter-Domain Routing notation)
  4. คลิก Add เพื่อเพิ่มลงในบัญชีบล็อก
  5. IP ที่บล็อกจะแสดงในรายการด้านล่าง สามารถคลิก Delete เพื่อปลดการบล็อกได้หากต้องการ

ตัวอย่างการเพิ่ม IP Range

หากต้องการบล็อก IP ทั้งหมดตั้งแต่ 123.45.67.0 ถึง 123.45.67.255 ให้ป้อน CIDR notation ดังนี้:

123.45.67.0/24

CIDR notation ช่วยให้บล็อก IP Range จำนวนมากพร้อมกันได้ด้วยการป้อนเพียงครั้งเดียว

วิธีที่ 2: บล็อก IP/ประเทศผ่าน .htaccess และ WordPress Plugin

หากคุณต้องการบล็อกตามประเทศ (Geoblocking) หรือต้องการการควบคุมที่ยืดหยุ่นมากขึ้น วิธี .htaccess และ WordPress Plugin จะเป็นตัวเลือกที่ดี

บล็อกโดยใช้ .htaccess

หากคุณมี .htaccess file ที่อยู่ใน Root Directory ของเว็บ สามารถเพิ่มโค้ดเพื่อบล็อก IP ได้ดังนี้:

# บล็อก IP เดี่ยว
Order Allow,Deny
Allow from all
Deny from 192.168.1.100
Deny from 123.45.67.80

# หรือบล็อก IP Range
Deny from 192.168
Deny from 123.45.67

ข้อดีของ .htaccess คือสามารถแก้ไขได้รวดเร็ว แต่ข้อเสีย คือกำลังการผลิตของ Server อาจได้รับผลกระทบหากมี IP ที่ต้องบล็อกจำนวนมาก

ใช้ WordPress Plugin สำหรับ Geoblocking

หากต้องการบล็อกตามประเทศ Plugin WordPress นั้นจะง่ายและสะดวกกว่า ตัวอย่างที่นิยมใช้ เช่น:

iQ Block Country (ฟรี)

iQ Block Country เป็น Plugin ฟรีที่ช่วยให้บล็อก Traffic จากประเทศที่ระบุได้ วิธีการใช้:

  1. ในแดชบอร์ด WordPress ไปที่ Plugins > Add New
  2. ค้นหา "iQ Block Country" แล้วคลิก Install Now และ Activate
  3. ไปที่ Settings > iQ Block Country
  4. เลือกประเทศที่ต้องการบล็อก จากรายการ Dropdown
  5. เลือกว่า Block หรือ Allow ประเทศดังกล่าว แล้วคลิก Save

Wordfence (Freemium)

Wordfence เป็น Plugin ความปลอดภัย WordPress ที่ชื่นชอบ เวอร์ชัน Free นั้นมี IP Blocking พื้นฐาน แต่เวอร์ชัน Premium จะมี Advanced Geoblocking และ Country Blocking ที่ช่วยให้บล็อกประเทศทั้งหมดได้ในการตั้งค่าเดียว

ข้อควรระวังเมื่อใช้ .htaccess

หากแก้ไข .htaccess ผิด อาจเกิด Error 500 Internal Server Error ตรวจสอบไวยากรณ์ให้ถูกต้อง และลองทำงานแบบค่อย ๆ เพิ่มการบล็อก IP ที่ละตัวเพื่อทดสอบ

วิธีที่ 3: บล็อกที่ระดับ Cloudflare (ประสิทธิภาพสูงสุด)

หากเว็บของคุณใช้ Cloudflare Proxy (ระบบ DNS ชี้มาที่ Cloudflare Nameserver) วิธีนี้จะให้ประสิทธิภาพที่ดีที่สุดเพราะ Traffic ถูกกรองก่อนมาถึง Server ของคุณ

ขั้นตอนการบล็อกประเทศใน Cloudflare

  1. Login เข้า Cloudflare Dashboard ของโดเมนของคุณ
  2. ไปที่ Security > WAF Rules (หรือ Firewall Rules ในเวอร์ชันเก่า)
  3. คลิก Create Rule
  4. ตั้งเงื่อนไข: Field: Country > Operator: is > Value: [เลือกประเทศ]
  5. เลือก Action เป็น Block (หรือ Challenge)
  6. คลิก Deploy เพื่อบริหารเสร็จ

ข้อดีของ Cloudflare Blocking

⚠️ เตือน: ปัญหา SEO และการบล็อกที่ไม่ตั้งใจ

การบล็อกประเทศแบบเหมารวม (Blanket Blocking) สามารถเกิดปัญหาที่ไม่ตั้งใจได้ หากไม่ระวัง:

Google Crawler อาจถูกบล็อก

Google ใช้ Data Center ในหลายประเทศเพื่อให้ Crawl เว็บไซต์ หากคุณบล็อกประเทศที่ Google มี Data Center อยู่ Googlebot อาจมาจาก Data Center นั้นและถูกบล็อก ผลลัพธ์คือ Google ไม่สามารถ Crawl และ Index หน้าเว็บของคุณได้อย่างสมบูรณ์ ส่งผลต่อ SEO อย่างร้ายแรง

Tip: ถ้าต้องบล็อกประเทศ ให้ปล่อย Googlebot โดยใช้ User-Agent Exception หรือใช้ Cloudflare ที่มี Whitelist สำหรับ Crawler อัตโนมัติ

ลูกค้าจริงใช้ VPN จึงถูกบล็อก

ลูกค้าบางคนใช้ VPN เพื่อป้องกันความเป็นส่วนตัว หากบล็อกประเทศ พวกเขาจะไม่สามารถเข้าเว็บได้แม้ว่า VPN จะมี IP สาธารณะ ของประเทศที่คุณอนุญาต

ตรวจสอบหลัง Deploy

หลังจากตั้งค่าบล็อก ให้ตรวจสอบ Google Search Console เพื่อดูว่า Googlebot มีปัญหาการ Crawl หรือไม่ หากเห็นข้อผิดพลาด "Blocked by robots.txt" หรือ "Access Denied" ให้ทบทวนการตั้งค่าการบล็อกทันที

ตรวจสอบว่าการบล็อก IP/ประเทศทำงานถูกต้อง

หลังจากตั้งค่าการบล็อก ให้ทดสอบด้วยขั้นตอนต่อไปนี้:

# 1. ตรวจสอบ IP ที่บล็อกใน cPanel (ถ้าใช้ IP Blocker)
curl -I https://yourthaihost.com 2>&1 | grep -E "HTTP|403|Forbidden"

# 2. ทดสอบเข้าจากประเทศที่บล็อก (ใช้ VPN หรือ Proxy)
# เปลี่ยน IP ผ่าน VPN แล้วลอง: curl -I https://yourthaihost.com
# ถ้าถูกบล็อก จะขึ้น 403 Forbidden หรือ Connection Refused

# 3. ตรวจสอบ Access Log ของ Server
tail -100 /var/log/apache2/access_log | grep "yourthaihost.com"

# 4. ตรวจสอบ IP ที่บล็อกใน cPanel (Shell)
grep "deny from" ~/.htaccess

# 5. ทดสอบเข้าจากประเทศที่อนุญาต (Browser ปกติ)
# เปิด Browser แล้วพยายามเข้า https://yourthaihost.com
# ต้องเข้าได้ปกติ
Tip: หากใช้ VPN เพื่อทดสอบ ให้ใช้ VPN Server ที่เป็นประเทศที่บล็อก หรือไม่ใช้ VPN เลย และให้เพื่อนที่อยู่ในประเทศที่บล็อกช่วยทดสอบแทน

แก้ปัญหาที่พบบ่อย

Error: "403 Forbidden" เมื่อเข้าเว็บหลังจากบล็อก IP

หากคุณเองถูกบล็อก อาจเป็นเพราะตั้งค่าผิด หรือ IP ของคุณเปลี่ยน (เมื่อ Restart Modem) วิธีแก้ไข: ลบ IP ของคุณออกจากรายการบล็อก หรือเข้า cPanel ด้วยชื่อผู้ใช้และรหัสผ่านโดยตรง (ไม่ต้องกรอก IP) เพื่อแก้ไขการตั้งค่า IP Blocker

Error: ".htaccess syntax error" ส่งผลให้ 500 Internal Server Error

หากแก้ไข .htaccess ผิด Server จะขึ้น Error 500 ใน Browser และจะเห็นข้อมูลในไฟล์ /var/log/apache2/error_log ว่ากำหนดค่าผิด ให้เข้า cPanel File Manager แล้วแก้ไขโดยลบออกสิ่งที่ไม่ถูกต้องหรือคืนค่าไฟล์เก่า

Google Search Console แสดง "Crawl Error" หลังจากบล็อก IP

นี่คือสัญญาณว่า Googlebot ถูกบล็อก ให้ไปตรวจสอบในการตั้งค่าบล็อกของคุณ และปล่อย Googlebot ไว้ ถ้าใช้ .htaccess ให้เพิ่มเงื่อนไข Exception สำหรับ Googlebot:

<IfModule mod_rewrite.c>
  RewriteEngine On
  # อนุญาต Googlebot
  RewriteCond %{HTTP_USER_AGENT} Googlebot [NC]
  RewriteRule ^(.*)$ - [L]

  # บล็อก IP ที่ไม่ต้องการ
  Order Allow,Deny
  Allow from all
  Deny from 192.168.1.100
</IfModule>

WordPress Plugin บล็อกประเทศไม่ทำงาน (ไม่บล็อกเลย)

อาจเป็นเพราะ Plugin ไม่ได้ Activate หรือเครื่องมือกำหนดตำแหน่ง (GeoIP Database) ของ Plugin เก่า ให้ตรวจสอบว่า Plugin เปิดใช้งานแล้ว และลองปิดแล้วเปิด Activate ใหม่ หากยังไม่ได้ให้ลองปลั๊กอิน Geoblocking อื่นแทน เช่น Wordfence

ลูกค้าจริงบ่นว่าเข้าเว็บไม่ได้แม้ว่าอยู่ประเทศที่อนุญาต

อาจเป็นเพราะลูกค้าใช้ VPN หรือ Proxy ที่มี IP มาจากประเทศที่บล็อก การบล็อกที่ระดับ IP Address บ่อยครั้งจึงกระทบต่อลูกค้า VPN ด้วย หากต้องการบล็อก ควรใช้ Geoblocking ตามประเทศแทน และเว้นช่องให้ Whitelist VPN ที่เชื่อถือ


คำถามที่พบบ่อย

Q: ผลต่างระหว่างบล็อก IP ใน cPanel กับ Cloudflare คืออะไร?

A: cPanel IP Blocker บล็อกที่ระดับ Hosting Server ของคุณ Server จะถูกบรรจุ Request ที่ถูกบล็อกและส่ง 403 Forbidden กลับ ส่วน Cloudflare บล็อกที่ระดับ Cloudflare Edge Server ดังนั้น Request จึงไม่ถึง Hosting Server ของคุณ ทำให้ประหยัด Bandwidth และ CPU มากกว่า Cloudflare ยังมี Dashboard ที่ใช้งานง่ายและรองรับ Geoblocking ในตัว

Q: ถ้าบล็อก IP แบบ CIDR /24 จะกี่ IP ที่ถูกบล็อก?

A: CIDR /24 จะบล็อก 256 IP Address (ตั้งแต่ .0 ถึง .255) ในเครือข่ายนั้น เช่น 192.168.1.0/24 จะบล็อก 192.168.1.0 ถึง 192.168.1.255 ทั้งหมด หากต้องการบล็อก IP Range ที่เล็กกว่า เช่น 128 IP ให้ใช้ /25

Q: ถ้าบล็อกประเทศแล้ว ลูกค้าจริงใช้ VPN จะเข้าเว็บได้ไหม?

A: ขึ้นอยู่กับระดับการบล็อก หากบล็อกที่ระดับประเทศ (Geoblocking เช่น Cloudflare หรือ iQ Block Country) ลูกค้าใช้ VPN ของประเทศอื่นจะเข้าได้ เพราะระบบเห็นว่า IP มาจากประเทศอื่น แต่หากบล็อก IP เดี่ยว (cPanel IP Blocker หรือ .htaccess) ลูกค้า VPN อาจถูกบล็อกหากเครือข่าย VPN นั้นใช้ IP Range ที่บล็อกไว้


หากคุณต้องการความยืดหยุ่นในการบล็อก Traffic ตามระดับ Server และ WordPress Plugin ให้พิจารณาการใช้งาน Hosting Provider ที่ให้คุณควบคุมเต็มที่ ตัวอย่างผู้ให้บริการที่มี Server โซนเอเชียและจัดการผ่าน DirectAdmin อย่าง AsiaGB ก็เป็นทางเลือกหนึ่งที่เหมาะสำหรับเว็บที่เน้นผู้ชมในไทยและภูมิภาค ก่อนสมัครควรลองเช็กความเร็วและสุขภาพโดเมนปลายทางด้วยเครื่องมือฟรีอย่าง Analyze.in.th (Dnsxray) เพื่อดู Response Time และการตั้งค่า DNS ก่อนตัดสินใจ