การสลับเซิร์ฟเวอร์เป็น IP แบบคงที่จาก DHCP


14

ฉันกำลังติดตั้งเซิร์ฟเวอร์ Ubuntu 10.04 และฉันเพิ่งต้องเปลี่ยนจาก DHCP เป็น ip แบบคงที่ ฉันแก้ไข/etc/network/interfacesไฟล์และเปลี่ยน

iface eth0 inet dhcp

ถึง

iface eth0 inet static  
address 192.168.1.167  
netmask 255.255.255.240  
network 192.168.1.160  
broadcast 192.168.1.175  
gateway 192.168.1.161

คุณจะสังเกตเห็นว่า IP นั้นแปลกเล็กน้อย นี่เป็นเพราะเซิร์ฟเวอร์ตอนนี้อยู่ในซับเน็ตพิเศษที่อุทิศให้กับการแยกเซิร์ฟเวอร์เฉพาะ ฉันยังแก้ไขไฟล์ resolv.conf เพื่อรวมเซิร์ฟเวอร์ DNS ที่เหมาะสม (รวมถึงหนึ่งใน Google ในกรณีที่นรกแตกทั้งหมด)

ปัญหาคือว่าดูเหมือนสุ่มเครื่องจะสูญเสียความสามารถในการพูดคุยกับโลกภายนอก ฉันรู้ว่าเครื่องยังทำงานอยู่ แต่มันทำหน้าที่เหมือนไม่มีระบบเครือข่ายเลย ฉันคิดว่าส่วนหนึ่งของปัญหาคือไม่มี DHCP ที่ทำงานกับซับเน็ตนี้ (และจะไม่มี) และ dhclient ดูเหมือนจะยังคงทำงานอยู่ในบางโอกาสซึ่งทำให้เกิดความขัดแย้งบางอย่าง (ไม่รู้ว่าอะไร) ซึ่งทำให้เครือข่ายตาย อย่างไรก็ตามฉันไม่สามารถลบแพคเกจ dhcp3-client ได้เพราะมันยังทำให้แพคเกจ ubuntu- น้อยที่สุดถูกลบออกและมันจะไม่ดี

ดังนั้นความคิดใด ๆ สิ่งที่อาจเรียกว่า dhclient และฉันจะทำอย่างไรเพื่อหยุดมันไม่ให้ทำงาน?


1
โปรดเรียกใช้sudo dhcpclient eth0และแสดงความคิดเห็นหากเครือข่ายพังหลังจากนั้น และบรรทัดสุดท้ายของ/var/log/syslogถ้าเป็นไปได้
aatdark

อัปเดตคุณอาจลองsudo ifdown eth0ตามart.ubuntuforums.org/showthread.php?t=1419803
aatdark

@aatdark หากคุณเรียกใช้ps auxf | lessคุณควรเห็นรายการกระบวนการที่จัดระเบียบในโครงสร้างแบบต้นไม้ จากนั้นคุณสามารถดูว่ากระบวนการ spwaned อะไรdhclient(เพิ่งขึ้นสาขา); เช่นบนพีซีของฉันdhclientเป็นลูกของNetworkManagerกระบวนการ
Riccardo Murri

คำตอบ:


14

หากคุณยังไม่ได้บูตเครื่องใหม่พฤติกรรมดังกล่าวถือเป็นเรื่องปกติ การเปลี่ยนจาก dhcp เป็น static ip ควรเป็น:

  • sudo ifdown eth0
  • เปลี่ยนการกำหนดค่า
  • sudo ifup eth0

เหตุผลก็คือถ้าคุณทำ ifdown หลังจากเปลี่ยนการตั้งค่ามันจะทำงานราวกับว่ามันกำลังทำอินเตอร์เฟสคงที่และไม่ฆ่ากระบวนการ dhclient ที่จะทำให้การกำหนดค่าของคุณแย่ลง ในกรณีนี้เพียงแค่ฆ่ากระบวนการ dhclient ด้วย

sudo killall dhclient

และมันก็ควรจะได้ผล


2

ตามที่กล่าวไว้โดยjnevesอาจเป็นไคลเอนต์ DHCP ทำสิ่งต่าง ๆ ให้คุณ

ทางเลือกอื่นสำหรับsudo ifdown eth0-edit- sudo ifup eth0คุณสามารถเรียกใช้/etc/init.d/networking restartหลังจากที่คุณแก้ไขไฟล์ นอกจากนี้ยังมีข้อได้เปรียบที่คุณสามารถทำได้จากระยะไกล ...

(ไม่มีคะแนนเพียงพอใน Askubuntu ฉันไม่ได้รับอนุญาตให้แสดงความคิดเห็นต่อคำตอบของ jneves ดังนั้นโปรดพิจารณาความคิดเห็นนี้ด้วย ... )

แก้ไข : ลืมไปโดยสิ้นเชิง; เนื่องจากคำสั่งดังกล่าวไม่ได้ตัดการเชื่อมต่อคุณตลอดเวลา SSH-session ของคุณควรจะอยู่รอดจากการโหลดการกำหนดค่าอีกครั้ง มันเป็นค่อนข้างดีที่จะสามารถเปลี่ยนการตั้งค่าเครือข่ายในขณะที่กำลังเชื่อมต่อกับเครื่องกล่าวว่า ...


มันดีมาก ๆ (และเป็นกำลังใจ) สำหรับคุณที่จะเพิ่มคำตอบของคุณเองด้วยข้อมูลเพิ่มเติมที่ต่อยอดกัน! (เป็นงานที่ดีที่เชื่อมโยงกับคำตอบก่อนหน้านี้ด้วย)
Jorge Castro

ฉันใช้/etc/init.d/networking restart(ในเซิร์ฟเวอร์ 10.04) หลังจากแก้ไขไฟล์การกำหนดค่า - dhclient ยังคงทำงานอยู่ ฉันต้องฆ่ากระบวนการ dhclient ด้วยตนเอง (จากนั้นฉันรีบูตเพื่อให้แน่ใจว่ามันจะไม่กลับมาทำงานหลังจากรีสตาร์ท)
HorusKol
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.