การแก้ไข / etc / hosts ไม่มีผลกระทบ


17

ฉันพยายามบล็อกตัวเองจากเว็บไซต์ที่เสียเวลา แต่มีการเปลี่ยนแปลงกับ / etc / hosts ตัวอย่างเช่น:

127.0.0.1   localhost
127.0.1.1   ross-laptop

127.0.0.1   bing.com

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

ฉันสามารถเข้าถึง bing.com ใน Chrome หรือ Firefox ที่เพิ่งเปิดใหม่ได้ - ทำไมจึงไม่ทำงาน?

คำตอบ:


17

คุณจะพบเบราว์เซอร์และระบบจะแคชสิ่งต่าง ๆ ให้คุณ ในการรับสิ่งนี้เพื่อนำไปใช้กับค้างคาวคุณควรล้างแคชและรีสตาร์ทเบราว์เซอร์ของคุณ เพื่อทดสอบสิ่งนี้ลองทำการตรวจสอบ DNS จากเทอร์มินัลเช่น

ping bing.com

คุณควรให้มันตอบกลับจาก 127.0.0.1 หากใช้งานได้แสดงว่าการเปลี่ยนแปลงไฟล์โฮสต์ของคุณนั้นดี แต่เพียงแคชในเบราว์เซอร์ของคุณ


แต่แคชนั้นยังมีชีวิตอยู่จริงๆเมื่อรีสตาร์ทเบราว์เซอร์ ฉันเคยเจอเรื่องนี้เช่นกัน มันจะดีถ้ามีวิธีในการทำให้แคชเป็นโมฆะ
loevborg

1
ฉันไม่แน่ใจ 100% ว่าแคช dns ยังมีเบราว์เซอร์ที่โหลดซ้ำได้หรือไม่ ฉันรู้ว่าไฟล์แคชทำ สิ่งนี้คือในทุกวันนี้ ajax / หลายคำร้องขอรูปแบบของการพัฒนาเว็บคุณไม่ต้องการที่จะแสดงผล dns บนทุก ๆ คำขอขณะที่โหลดหน้าเว็บ เบราว์เซอร์แต่ละตัวจะใช้เทคนิคของตัวเองในการช่วยเร่งความเร็วและดังนั้นคุณต้องตรวจสอบกลไกการแคช DNS ของตนตามเบราว์เซอร์ / เบราว์เซอร์แต่ละรุ่น
ริ

ฉันจะประหลาดใจถ้าแคช DNS ไม่คงอยู่หลังจากรีสตาร์ทเบราว์เซอร์อย่างน้อยในเบราว์เซอร์ส่วนใหญ่ (อาจเป็นเบราว์เซอร์หลักทั้งหมด)
David Z

7

คุณได้ลองใส่127.0.0.1รายการในบรรทัดเดียวกันหรือไม่?

120.0.0.1 abc bing.com foo

ว่าควรจะทำงาน


3
มันใช้งานได้แม้ว่าฉันคิดว่ามันจะทำอย่างไรกับเบราว์เซอร์แคชและไม่ล้างแคชอย่างถูกต้อง
Ross

0

เปิด Terminal ( ALT+ F2)

พิมพ์sudo -iในช่องใส่ ตรวจสอบตัวเลือกRun in terminal ในที่สุดคลิกRunปุ่ม

พิมพ์รหัสผ่านหากจำเป็นและกด Enter จากนั้นป้อนคำสั่งต่อไปนี้

gedit /etc/hosts

คุณจะได้หน้าต่าง Gedit Text Editor

ตัวอย่างเช่นหากเราจำเป็นต้องบล็อก Facebook ให้เพิ่มบรรทัดต่อไปนี้หลังจาก127.0.0.1 localhostนั้น

0.0.0.1 facebook.com    
0.0.0.1 www.facebook.com

การทำเช่นนี้จะเป็นการปิดกั้นเว็บไซต์ในเบราว์เซอร์ทั้งหมดรวมถึง Google Chrome, Chromium, Mozilla

แค่นั้นแหละ. เมื่อคุณเปิดwww.facebook.comหรือfacebook.comคุณจะไม่สามารถเข้าถึงได้ หากต้องการเปิดใช้งาน Facebook ด้านหลังให้ลบบรรทัดที่เราเพิ่มจากไฟล์/etc/hostsลบเส้นที่เราได้เพิ่มจากแฟ้ม

ที่มา - บล็อกของ Subin


-1

นอกจากวิธีแก้ปัญหาของ CragM โปรดจำไว้ว่าคุณสามารถใช้ที่อยู่ 127.xxx ทั้งหมดเพื่อจุดประสงค์นี้อย่าทำซ้ำที่อยู่เดิม

127.0.0.1   localhost
127.0.0.2   ross-laptop
127.0.0.3   bing.com
127.0.0.4   foo.com
127.0.0.5   bar.com
......

1
คุณช่วยอธิบายได้ไหมว่าทำไมที่อยู่เดียวกันไม่ถูกทำซ้ำ?
8128

@fluteflute ฉันไม่แน่ใจ แต่ฉันเคยทำมันและมันก็ใช้ได้ผลเสมอสำหรับฉัน
grokus

-1

การแก้ไข / etc / hosts ดูเหมือนว่าจะเป็นการแฮกระดับโลก ฉันขอแนะนำให้ตั้งค่าพรอกซี http ท้องถิ่นแทน (squid, privoxy ฯลฯ ) และชี้เบราว์เซอร์ของคุณเพื่อใช้งาน วิธีนี้คุณจะได้รับวิธีที่ยืดหยุ่นมากขึ้นในการจัดการบัญชีดำที่ระดับพร็อกซี


2
ดูเหมือนว่าจะเป็นความพยายามอย่างมากเมื่อเทียบกับการเพิ่มสองบรรทัดลงใน/etc/hosts? คุณช่วยอธิบายได้ไหมว่าทำไมนี่จึงเป็นทางออกที่ดีกว่า
8128

"ฟังดู" เพราะคุณกำลังตั้งสมมติฐานโดยไม่ลอง การออก apt-get install แก้ไขไฟล์ config และ / หรือบัญชีดำและการชี้เบราว์เซอร์ไปที่ local proxy นั้นไม่ซับซ้อน มันจะดีกว่าเพราะคุณไม่ได้ทำการเปลี่ยนแปลงทั่วโลกกับระบบของคุณคุณเพียงแค่ตั้งค่าวิธีอื่นในการบล็อกบางเว็บไซต์ หากคุณต้องการเลิกทำคุณจะไม่ต้องแก้ไข / etc / hosts อีกครั้งคุณเพียงตั้งเบราว์เซอร์ให้เข้าถึงไซต์โดยตรงไม่ใช่ผ่านพร็อกซี
vh1
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.