ฉันจะให้ OSX Mavericks สังเกตเห็นการเปลี่ยนแปลง DNS ใน `/ etc / hosts 'ได้อย่างไร


24

วิธีทั่วไปในการ "บล็อก" เว็บไซต์ (เช่นเพื่อกำจัดสิ่งที่ทำให้ไขว้เขว) คือการแก้ไข/etc/hostsและชี้โดเมนไปยังที่อยู่ลูปแบ็ค เช่น:

# Stop goofing off
127.0.0.1 youtube.com

ในแมฟเวอริกส์ฉันพบว่าการเปลี่ยนแปลงเช่นนี้ดูเหมือนว่าจะถูกละเว้นโดยระบบปฏิบัติการ หลังจากแก้ไขไฟล์ (ด้วย sudo) และบันทึกแล้วไซต์ที่ควรถูกบล็อกยังคงโหลดอยู่

ฉันได้ลองรีเซ็ตแคช DNS ของฉันดังนี้:

dscacheutil -flushcache
sudo killall -HUP mDNSResponder

แต่ไซต์ยังโหลดอยู่

ฉันจะให้ OSX Mavericks สังเกตเห็นการเปลี่ยนแปลงได้/etc/hostsอย่างไร


1
อาจเป็นเพราะแคช DNS ของเบราว์เซอร์ที่ไม่ได้ถูกลบทิ้ง? IP ใดที่ping youtube.comใช้
Leonid Shevtsov

หมายเหตุด้านข้าง: หากคุณใช้ DNS เพื่อบล็อกเว็บไซต์ชั่วคราวselfcontrolapp.comสำหรับ OSX ทำงานได้ดี จะแก้ไขไฟล์โฮสต์และดูเหมือนว่าจะล้างแคชเบราว์เซอร์โดยอัตโนมัติ พวกเขายังกล่าวถึงแอพที่คล้ายกันสำหรับแพลตฟอร์มอื่น ๆ : github.com/SelfControlApp/selfcontrol/wiki/FAQ
Nathan Long

คำตอบ:


19

ตามที่เจ้าภาพ (5) หน้าคู่มือที่ไฟล์จะถูกใช้โดย/etc/hosts mDNSResponderความพยายามของคุณล้างแคชของคอมพิวเตอร์อย่างถูกต้อง แต่คุณต้องล้างแคชส่วนตัวของเบราว์เซอร์ด้วย

หลังจากแก้ไขการ/etc/hostsรีเซ็ตmDNSResponderแคชแต่ละครั้งโดยใช้บันทึกย่อทางเทคนิคของ Apple นี้OS X: วิธีรีเซ็ตแคช DNS :

sudo dscacheutil -flushcache

หลังจากดำเนินการแล้วให้รีเซ็ตแคชของเบราว์เซอร์ของคุณ :

  • Safari: ใช้รายการเมนูSafari > Reset Safari
  • โครเมี่ยม: ใช้รายการเมนูChrome > ล้างข้อมูลการท่องเว็บ

1
มันคงที่ ใต้ "ข้อมูลการท่องเว็บที่ชัดเจน" ของ Chrome มีช่องทำเครื่องหมายสำหรับประเภทข้อมูล "ล้างแคช" เป็นสิ่งที่เกี่ยวข้อง
นาธานลอง

5

ลบแคชของเบราว์เซอร์และเพิ่มลง127.0.0.1 www.youtube.comในไฟล์โฮสต์ของคุณ

youtube.comwww.youtube.comมีมติให้ เบราว์เซอร์ของคุณกำลังแคชข้อมูลนั้นและนำคุณไปยังหน้า www-page


0

ใน OS X 10.9 Mavericks มีปัญหากับการพยายามแสดงชื่อโฮสต์หลายชื่อในบรรทัดเดียวกันของ / etc / hosts ฉันลองใช้เคล็ดลับ DNS ที่เกี่ยวข้องอื่น ๆ ทั้งหมดในโพสต์นี้และโพสต์ที่เกี่ยวข้องนั้นไม่มีประโยชน์จนกว่าฉันจะสะดุดกับลิงก์ "ปัญหา" ด้านบน

ฉันเคยมีสิ่งนี้:

127.0.0.1 localhost host1 host2 host3 ...

แต่ฉันพบว่าการแก้ไขปัญหาของโฮสต์เหล่านั้นอาจใช้เวลาตลอดไปหรือไม่ทำงานเลย การพยายามเข้าถึงไซต์ผ่านเบราว์เซอร์โดยทั่วไปแล้วจะเป็นเรื่องปกติ (แม้ว่าบางครั้งจะช้ามากในการแก้ไข) แต่การพยายาม ping จากบรรทัดคำสั่งจะไม่ทำงาน

การเปลี่ยนเป็นรูปแบบต่อไปนี้ทำให้ทุกอย่างทำงานได้ดีสำหรับฉันและตอนนี้ทุกอย่างทำงานได้ดีกับ ping ในเบราว์เซอร์และที่อื่น ๆ :

127.0.0.1 localhost
127.0.0.1 host1
127.0.0.1 host2
127.0.0.1 host3

รายละเอียดเพิ่มเติม


0

ด้านบนของคำตอบของ Graham ลอง chrome: // net-internals / # dns (สำหรับ Google Chrome) เพื่อดูว่าแคชอะไร จากนั้นคลิก Clear Host Cache เพื่อล้างข้อมูลทั้งหมด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.