ฉันจะเพิ่มที่อยู่ IP เพิ่มเติมใน / etc / network / interfaces ได้อย่างไร


42

ฉันมีที่อยู่ IP เพิ่มเติมสำหรับเซิร์ฟเวอร์ของฉันและฉันจำเป็นต้องกำหนดในไฟล์อินเตอร์เฟส ในขณะนี้ฉันได้รับสิ่งนี้:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address aaa.aaa.aaa.aaa
netmask 255.255.254.0
gateway bbb.bbb.bbb.bbb
dns-nameservers ccc.ccc.ccc.ccc ddd.ddd.ddd.ddd eee.eee.eee.eee
dns-search vps-number.com

ฉันจะเพิ่มอะไรเพื่อกำหนดที่อยู่ IP ใหม่ของฉัน (fff.fff.fff.fff) แล้วฉันจะรีสตาร์ทเพื่อยอมรับการกำหนดค่าใหม่ได้อย่างไร


ชุดของตัวละครคืออะไร? คุณพบสิ่งนั้นจากที่ไหน
สีเขียว

คำตอบ:


55
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address aaa.aaa.aaa.aaa
  netmask 255.255.254.0
  gateway bbb.bbb.bbb.bbb
  dns-nameservers ccc.ccc.ccc.ccc ddd.ddd.ddd.ddd eee.eee.eee.eee
  dns-search vps-number.com

auto eth0:0
iface eth0:0 inet static
  address fff.fff.fff.fff
  netmask 255.255.254.0

จากนั้นคุณสามารถเรียกใช้sudo ifup eth0:0เพื่อนำมาขึ้นและsudo ifdown eth0:0นำมาลง


4
นี่เป็นตัวแปรที่ล้าสมัยซึ่งมีชื่อแทน ใช้ด้านล่างด้วย "ip addr" แทน
Alexander Kim

5
มันอาจจะเก่า (และอาจล้าสมัย) แต่ก็ไม่มีอะไรผิดปกติกับการใช้วิธีนี้เนื่องจากมันไม่ได้ถูกทำเครื่องหมายว่า 'คัดค้าน' และไม่มีแผนที่จะเอามันออกในอนาคตอันใกล้ IMHO วิธีนี้สะอาดและปลอดภัยกว่าวิธีอื่น (ดูคำตอบของวิลเมอร์และความคิดเห็นของวิลเมอร์ )
Eric Carvalho

PS หากมีการใช้auto eth1การใช้งาน (มันไม่ได้เกี่ยวกับ AWS) auto eth0:0ไม่ได้ทำงานเป็นในตัวอย่าง
IvRRimUm

โซลูชันแบบเดิมใช้ไม่ได้กับ Debian Stretch ฉันลงเอยด้วย IP ที่สอง ดูiproute2วิธีการทำงาน
x-yuri

24

สำหรับที่อยู่ IP พิเศษฉันมักจะเพิ่ม:

up ip addr add fff.fff.fff.fff/prefixlen dev eth0

ที่ด้านล่างของiface eth0 inet staticstanza สำหรับการรีบูตในอนาคตจากนั้นรันคำสั่งsudo ip addr add fff.fff.fff.fff/prefixlen dev eth0อีกครั้งด้วยตนเองเพื่อเปิดใช้งานโดยตรง

หาก netmask ของคุณอยู่255.255.254.0แล้วprefixlenควรจะเป็น23สำหรับคุณ

ฉันชอบที่จะรู้ว่ามีวิธีที่ดีกว่า


ขอบคุณมากวิธีการที่ได้รับการยอมรับใช้ไม่ได้กับพันธะ ( ifenslave ) แต่วิธีนี้ใช้ได้!
mekkanizer

upเป็นปัญหาเนื่องจาก network-online.target ไม่รอ บริการ systemd เช่น nginx จะไม่สามารถผูกกับ IP ที่เพิ่มโดยupในเวลาเริ่มต้น
sdaffa23fdsf

สำหรับ Debian ยืด / อูบุนตู 16.04 Xenial หรือหลังจากนั้นมีวิธีการแก้ปัญหาอย่างเป็นทางการ
x-yuri

22

เมื่อ Heihachi ชี้ให้เห็นว่าใช้นามแฝง ethx: x ล้าสมัยแล้ว อย่างไรก็ตามการip addrแก้ปัญหานั้นเลวร้ายยิ่ง มันน่าเกลียดและไม่สมบูรณ์เนื่องจากคุณจะต้องเพิ่มdownตัวแปรหรือifdownจะไม่ทำงานอย่างหมดจด

ดูhttps://wiki.debian.org/NetworkConfiguration#Multiple_IP_addresses_on_one_Interfaceเพื่อหาทางออกที่ดีกว่า: ตอนนี้คุณสามารถทำซ้ำ iface stanzas สำหรับอินเทอร์เฟซเดียวกันได้แล้ว ดังนั้นวิธีแก้ปัญหาด้านบน แต่ให้วาง:xคำต่อท้าย


2
จากเอกสารที่ลิงค์ของคุณพูดถึงวิธีการที่ทันสมัยที่สุดสำหรับการทำสิ่งต่าง ๆ (เรียกว่า iproute2): โปรดทราบว่าวิธีนี้เป็นอันตราย ! การรวมไดรเวอร์ / ฮาร์ดแวร์บางครั้งอาจล้มเหลวในการนำลิงค์ขึ้นมาหากไม่มีการกำหนดป้ายกำกับให้กับอินเตอร์เฟสนามแฝง พิจารณาว่ามันเป็นเอกสารอย่างเป็นทางการที่บอกว่าวิธีใหม่นั้นไม่น่าเชื่อถือฉันต้องการยึดติดกับวิธีการทำงานที่เลิกใช้แล้ว
จริงๆ

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

2
@ จริงๆจุดที่เหมาะสมแม้ว่า IMHO ถ้าสิ่งนี้ทำให้เกิดปัญหากับระบบที่ฟังดูคล้ายกับเคอร์เนล / ไดรเวอร์ buggy ฉันใช้หลายที่อยู่ IP ในอินเทอร์เฟซเดียวโดยไม่ใช้นามแฝงที่น่าเกลียด: 0 /: 1 / etc เป็นเวลาหลายปี (และฉันค่อนข้างมั่นใจว่าโซลูชันจาก Wiki นั้นเทียบเท่ากับโซลูชันของ Robbie ด้านบน)
Wilmer

@ วิลเมอร์ฉันมีอุปกรณ์ vmxnet3 (VMware ESXi 6.5) บน Ubuntu 16.04 และฉันสามารถหาวิธีใหม่ในการนำอุปกรณ์แรกขึ้นมา การวาง: x คำต่อท้ายไม่ชัดเจนสำหรับฉัน เอกสารอธิบายข้อผิดพลาดที่ฉันได้รับด้วย: x ต่อท้ายแม้ว่า
jbo5112

ปัญหาที่ทราบที่ผ่านมากับiproute2วิธีการก็คือในปี 2015 และวิธีการดั้งเดิม (คุณสังเกตเห็นชื่อ) ไม่ได้ผลสำหรับฉันใน Debian Stretch ดูเหมือนว่าตัวเลือกในภายหลัง (จากeth0:0) แทนที่ตัวก่อนหน้า ( from eth0) นั่นคือหลังจากที่systemctl restart networkingฉันลงเอยด้วย IP ที่สอง (IP แรกถูกถอดออก)
x-yuri
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.