/ etc / hosts ได้รับการเขียนทับ


14

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

ฉันเรียน MBA กับ Mountain Lion


FWIW สิ่งนี้ไม่ได้เกิดขึ้นกับฉัน ฉันมีรายการใน / etc / hosts ไปยังคอมพิวเตอร์ในเครือข่ายส่วนตัวของฉัน (ที่อยู่ 10.0.0.2) ซึ่งไม่เคยถูกลบโดยระบบ แต่บางทีมันอาจทิ้งที่อยู่ในเครือข่ายท้องถิ่น (10/8, 172.16 / 12 และ 192.168 / 16 - ดูRFC 1918 ) เพียงอย่างเดียวและลบที่อยู่ที่ชี้ไปยังที่อยู่ IPv4 ทั่วโลกหรือไม่ </speculation>
Harald Hanche-Olsen

อันที่จริงฉันได้เพิ่มบางรายการในขณะที่กลับและพวกเขาอยู่ รายการใหม่จะถูกลบออก ทั้งสองอยู่ในเครือข่ายย่อยที่คล้ายกัน
Mohammad Moghimi

คุณสามารถกำหนดกระบวนการที่จะเปลี่ยนไฟล์ได้หรือไม่? เครื่องมือเช่น fseventer อาจช่วยให้คุณเข้าใจสิ่งที่แก้ไขไฟล์ เนื่องจากปกติแล้วมันจะเป็นเจ้าของโดย root: wheel - รายการโปรแกรมที่สามารถแก้ไขไฟล์ควรมีขนาดค่อนข้างเล็ก คุณสามารถตั้งค่าสถานะที่ไม่เปลี่ยนรูปแบบบนไฟล์และหลีกเลี่ยงการเปลี่ยนการเปลี่ยนแปลง
bmike

คำตอบ:


10

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

dtrace -qn 'syscall::open*:entry /arg1&3/ { printf("%d %s %s\n", pid, execname, copyinstr(arg0)); }'

มันจะต้องถูกเรียกใช้ในฐานะรูท (เช่นด้วย sudo) วางลงในช่องgrep hostsเพื่อหลีกเลี่ยงการจมน้ำในเอาต์พุตและหายไปจากสิ่งที่คุณกำลังมองหา:

sudo dtrace -qn 'syscall::open*:entry /arg1&3/ { printf("%d %s %s\n", pid, execname, copyinstr(arg0)); }' | grep hosts

หวังว่านี่จะบอกคุณว่ากระบวนการเขียนทับไฟล์นั้นคืออะไร เพียงแค่ปล่อยให้มันรันในหน้าต่างเทอร์มินัลจนกว่ามันจะทริกเกอร์


13

หากคุณใช้ไคลเอนต์ Juno Pulse VPN ให้/etc/hostsเขียนทับโดย/etc/jnpr-pulse-hosts.bak


11

สำหรับฉันมันอยู่ในไฟล์

/etc/pulse-hosts.bak

คุณต้องแก้ไขไฟล์นี้เพื่อปรับแต่งคำสั่งโฮสต์ของคุณ

เมื่อคุณจะเชื่อมต่อใหม่ / เชื่อมต่อโดยใช้ Pulse Secure VPN ก็จะรวมคำสั่งจาก

/etc/pulse-hosts.bak

ด้วยเนื้อหาจากคำสั่ง Pulse และสร้าง

/etc/hosts

ปรับปรุง 2018

ด้วย Pulse Secure เวอร์ชั่นใหม่กว่าคุณต้องออกจากโปรแกรมก่อน (ตรวจสอบกระบวนการที่ใช้งานอยู่)

ปรับเปลี่ยนโฮสต์ของคุณ (/ etc / hosts) จากนั้นรีสตาร์ท Pulse Secure


8

คุณใช้ไคลเอนต์ AnyConnect VPN ของ Cisco หรือไม่ หากเป็นเช่นนั้นคุณต้องแก้ไข /etc/hosts.ac แทนและปล่อยให้คัดลอกไฟล์นั้นไปยังไฟล์สด ดูบทความนี้ MacOSXHintsและสิ่งเหล่านี้ก่อนหน้านี้ คำถาม

แก้ไข: ฉันไม่สามารถหาอะไรเป็นพิเศษเกี่ยวกับ Janos Pulse ได้ แต่การเชื่อมต่อเครือข่ายของ Juniper ยุ่งกับ / etc / hosts และฉันสงสัยว่า Pulse อาจทำสิ่งเดียวกัน ตามโพสต์บล็อกนี้หากคุณทำการเปลี่ยนแปลงในขณะที่เชื่อมต่อพวกเขาจะถูกเปลี่ยนกลับเมื่อคุณยกเลิกการเชื่อมต่อ แต่การเปลี่ยนแปลงที่ทำในขณะที่การเชื่อมต่อจะติดอยู่


ไม่ฉันไม่ได้ใช้ AnyConnect ไม่มี /etc/hosts.ac เช่นกัน อย่างไรก็ตามฉันใช้ซอฟต์แวร์พร็อกซี่อื่น: Junos Pulse
Mohammad Moghimi

1
ฉันสามารถยืนยันพฤติกรรมนี้ได้ด้วย Junos Pulse 5.1.8 การเปลี่ยนแปลงที่จะ/etc/hostsต้องทำในขณะที่ตัดการเชื่อมต่อหรือคุณจะสูญเสียพวกเขา
MisterEd

-1

ฉันไม่สามารถใช้ quickstart cloudera VM หลังจากเข้าสู่ VPN เพื่อแก้ไขปัญหานี้ฉันทำตามขั้นตอนด้านล่าง

ขั้นตอนที่ 1: เพิ่มรายการ/private/etc/hostsสำหรับเช่น

127.0.0.1 quickstart.cloudera

ขั้นตอนที่ 2: เข้าสู่ VPN สำหรับเช่นฉันใช้ F5 VPN

ขั้นตอนที่ 3: ตรวจสอบรายการข้างต้นในการ/etc/hostsใช้คำสั่งด้านล่าง

cat / etc / hosts

ฉันหวังว่ามันจะมีประโยชน์


ที่อยู่นี้ปัญหาที่อธิบายไว้ในคำถามคือการเขียนทับ "บางสิ่งบางอย่าง" ได้/etc/hostsอย่างไร
nohillside

สวัสดี @nohillside ฉันเพิ่ม127.0.0.1 quickstart.clouderaรายการใน/etc/hostsไฟล์ของฉันแต่มันถูกลบ / แทนที่เมื่อฉันเชื่อมต่อกับ VPN หากต้องการเพิ่ม127.0.0.1 quickstart.clouderaรายการอย่างถาวรฉันได้เพิ่มไว้ใน/private/etc/hostsไฟล์ ภายในเมื่อใดก็ตามที่คุณพยายามที่จะเชื่อมต่อไปยัง VPN มันสำเนารายการทั้งหมดจากการ/private/etc/hosts /etc/hostsฉันหวังว่ามันสมเหตุสมผลแล้ว
Shreyash Limbhetwala

สวัสดี @ โนฮิลไซด์เพียงแค่ FYI ... ฉันกำลังใช้ไคลเอ็นต์ F5 Big-IP Edge และฉันมี Mac OS
Shreyash Limbhetwala

บน macOS /etcเป็น symlink private/etcดังนั้น/etc/hostsและ/private/etc/hostsจริง ๆ แล้วเป็นไฟล์เดียวกัน (เรียกใช้ls -li /etc/hosts /private/etc/hostsเพื่อตรวจสอบ)
nohillside

1
คุณถูก @nohillside แต่หลังจากที่เพิ่มรายการใน/private/etc/hostsปัญหาของฉันได้รับการแก้ไขและหลังจากเชื่อมต่อกับ VPN เช่นกันรายการของฉันจะไม่ถูกลบ / แทนที่
Shreyash Limbhetwala

-1

เมื่อเปลี่ยนไฟล์ / etc / hosts ตรวจสอบให้แน่ใจว่าคุณไม่ได้เชื่อมต่อกับ VPN (อย่างน้อยถ้าคุณใช้ Network Connect โดย Juniper Networks)

ตามที่อธิบายไว้ในhttps://mcphersonz.wordpress.com/2009/11/12/etchosts-file-is-reverting-to-a-previous-state-in-os-x/


1
คำถามนี้มีคำตอบที่ยอมรับจากหกปีที่ผ่านมา โพสต์ต้นฉบับไม่ได้กล่าวถึงการใช้งาน VPN แม้ว่าคำถามของคุณอาจมีประโยชน์สำหรับผู้ใช้รายอื่นที่ประสบปัญหานี้ในขณะที่ใช้ VPN (โดยเฉพาะอย่างยิ่งจากเครือข่ายดาวพฤหัสบดี) แต่ก็มีความเกี่ยวข้องเล็กน้อยกับโพสต์ต้นฉบับ
IconDaemon

@IconDaemon ขอขอบคุณสำหรับการต้อนรับที่อบอุ่น ว่าเมื่อ 6 ปีก่อนนั้นไม่เกี่ยวข้องเพราะหน้านี้ยังคงได้รับความนิยมเป็นอันดับแรกในเครื่องมือค้นหา นอกจากนี้อีก 4 คำตอบพูดถึงแล้วว่า VPN สามารถทำให้เกิดปัญหาเดียวกัน (ในกรณีของฉันเอง) แม้ว่าคำตอบที่ได้รับการยอมรับดูเหมือนจะแก้ปัญหาสำหรับ OP แล้ว อย่างไรก็ตามแม้ว่าเขาจะยอมรับความเห็นของกอร์ดอนว่าเขาใช้ VPN (Junos Pulse) บางทีคุณมีสิทธิ์ออกเสียงคำตอบของฉันลงเนื่องจากการปิดใช้งาน VPN ถูกกล่าวถึงแล้วในการอัปเดตคำตอบของ Stanislas (แต่นั่นไม่ใช่สิ่งที่คุณพูด)
Michel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.