วิธีแก้ไขที่ถูกต้อง/etc/hosts
คืออะไร? ฉันต้องการเพิ่มที่อยู่ IP และชื่อโฮสต์บางส่วน มันใช้งานได้สักพัก (ไม่กี่ชั่วโมง) จากนั้นมันจะกลับไปเป็นเวอร์ชั่นเดิม มีกระบวนการใดที่ตรวจสอบสถานะ/etc/hosts
และย้อนกลับหรือไม่
ฉันเรียน MBA กับ Mountain Lion
วิธีแก้ไขที่ถูกต้อง/etc/hosts
คืออะไร? ฉันต้องการเพิ่มที่อยู่ IP และชื่อโฮสต์บางส่วน มันใช้งานได้สักพัก (ไม่กี่ชั่วโมง) จากนั้นมันจะกลับไปเป็นเวอร์ชั่นเดิม มีกระบวนการใดที่ตรวจสอบสถานะ/etc/hosts
และย้อนกลับหรือไม่
ฉันเรียน MBA กับ Mountain Lion
คำตอบ:
เป็นเครื่องมือที่จะช่วยคุณค้นหาผู้กระทำผิดนี่คือ 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
หวังว่านี่จะบอกคุณว่ากระบวนการเขียนทับไฟล์นั้นคืออะไร เพียงแค่ปล่อยให้มันรันในหน้าต่างเทอร์มินัลจนกว่ามันจะทริกเกอร์
หากคุณใช้ไคลเอนต์ Juno Pulse VPN ให้/etc/hosts
เขียนทับโดย/etc/jnpr-pulse-hosts.bak
สำหรับฉันมันอยู่ในไฟล์
/etc/pulse-hosts.bak
คุณต้องแก้ไขไฟล์นี้เพื่อปรับแต่งคำสั่งโฮสต์ของคุณ
เมื่อคุณจะเชื่อมต่อใหม่ / เชื่อมต่อโดยใช้ Pulse Secure VPN ก็จะรวมคำสั่งจาก
/etc/pulse-hosts.bak
ด้วยเนื้อหาจากคำสั่ง Pulse และสร้าง
/etc/hosts
ปรับปรุง 2018
ด้วย Pulse Secure เวอร์ชั่นใหม่กว่าคุณต้องออกจากโปรแกรมก่อน (ตรวจสอบกระบวนการที่ใช้งานอยู่)
ปรับเปลี่ยนโฮสต์ของคุณ (/ etc / hosts) จากนั้นรีสตาร์ท Pulse Secure
คุณใช้ไคลเอนต์ AnyConnect VPN ของ Cisco หรือไม่ หากเป็นเช่นนั้นคุณต้องแก้ไข /etc/hosts.ac แทนและปล่อยให้คัดลอกไฟล์นั้นไปยังไฟล์สด ดูบทความนี้ MacOSXHintsและสิ่งเหล่านี้ก่อนหน้านี้ คำถาม
แก้ไข: ฉันไม่สามารถหาอะไรเป็นพิเศษเกี่ยวกับ Janos Pulse ได้ แต่การเชื่อมต่อเครือข่ายของ Juniper ยุ่งกับ / etc / hosts และฉันสงสัยว่า Pulse อาจทำสิ่งเดียวกัน ตามโพสต์บล็อกนี้หากคุณทำการเปลี่ยนแปลงในขณะที่เชื่อมต่อพวกเขาจะถูกเปลี่ยนกลับเมื่อคุณยกเลิกการเชื่อมต่อ แต่การเปลี่ยนแปลงที่ทำในขณะที่การเชื่อมต่อจะติดอยู่
/etc/hosts
ต้องทำในขณะที่ตัดการเชื่อมต่อหรือคุณจะสูญเสียพวกเขา
ฉันไม่สามารถใช้ 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
อย่างไร
127.0.0.1 quickstart.cloudera
รายการใน/etc/hosts
ไฟล์ของฉันแต่มันถูกลบ / แทนที่เมื่อฉันเชื่อมต่อกับ VPN หากต้องการเพิ่ม127.0.0.1 quickstart.cloudera
รายการอย่างถาวรฉันได้เพิ่มไว้ใน/private/etc/hosts
ไฟล์ ภายในเมื่อใดก็ตามที่คุณพยายามที่จะเชื่อมต่อไปยัง VPN มันสำเนารายการทั้งหมดจากการ/private/etc/hosts
/etc/hosts
ฉันหวังว่ามันสมเหตุสมผลแล้ว
/etc
เป็น symlink private/etc
ดังนั้น/etc/hosts
และ/private/etc/hosts
จริง ๆ แล้วเป็นไฟล์เดียวกัน (เรียกใช้ls -li /etc/hosts /private/etc/hosts
เพื่อตรวจสอบ)
/private/etc/hosts
ปัญหาของฉันได้รับการแก้ไขและหลังจากเชื่อมต่อกับ VPN เช่นกันรายการของฉันจะไม่ถูกลบ / แทนที่
เมื่อเปลี่ยนไฟล์ / 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/
</speculation>