ฉันจะกำหนดจากที่อยู่ IP หลายรายการให้กับหนึ่งอินเทอร์เฟซได้อย่างไร


43

บนเซิร์ฟเวอร์ของฉันฉันต้องการกำหนดที่อยู่ IP หลายแห่งให้กับ NIC หนึ่งแห่ง แต่ไม่ต้องใช้สัญลักษณ์ifconfig"นามแฝง" ที่ล้าสมัย (เช่นeth0:0) /etc/network/interfacesเพราะในนามแฝง IP (บน www.kernel.org) คุณสามารถอ่านได้

ชื่อแทน IP เป็นวิธีล้าสมัยในการจัดการที่อยู่ IP / มาสก์หลายรายการต่ออินเทอร์เฟซ


ifconfig เลิกใช้แล้ว? ฉันไม่รู้
Mahesh

@Mahesh ใช่ถ้า ifconfig เป็นสิ่งประดิษฐ์จากยุค SysV 'iproute2' เป็นเครื่องมือที่ทันสมัยกว่า ifconfig จะอยู่พักหนึ่งในระยะทางที่ผิดเพี้ยนต่าง ๆ แต่ใช่มันเลิกใช้แล้ว "เลิกใช้แล้ว" เป็นเพียงภาษาพูดคุยที่เราใช้เพื่อแสดงว่า "มองหาสิ่งใหม่ที่จะใช้"
David Betz

คำตอบ:


48
  1. หากคุณต้องการที่อยู่ IP เพิ่มเติมเพียงครู่เดียวคุณสามารถเพิ่มไปยังส่วนต่อประสานใด ๆ บนเครื่องของคุณได้

     sudo ip address add <ip-address>/<netmask> dev <interface>
    

    เช่น

     sudo ip address add 172.16.100.17/24 dev eth0
    

    จะเพิ่ม172.16.100.17การใช้ netmask 24bit eth0ไปยังรายการของที่อยู่ที่การกำหนดค่าสำหรับคุณ

    คุณสามารถตรวจสอบผลลัพธ์ด้วย

    ip address show eth0
    

    และคุณสามารถลบที่อยู่นี้อีกครั้งด้วย

    sudo ip address del 172.16.100.17/24 dev eth0
    

    แน่นอนการเปลี่ยนแปลงเหล่านี้จะหายไปเมื่อคุณรีบูตเครื่อง

  2. ในการทำให้ที่อยู่เพิ่มเติมถาวรคุณสามารถแก้ไขไฟล์ได้/etc/network/interfacesโดยเพิ่ม stanzas จำนวนมากในแบบฟอร์ม

    iface eth0 static
        address 172.16.100.17/24
    

    เพื่อให้ดูเหมือน

    iface eth0 inet dhcp
    
    iface eth0 inet static
        address 172.16.100.17/24
    
    iface eth0 inet static
        address 172.16.24.11/24
    

    คุณสามารถเก็บไว้dhcpสำหรับที่อยู่หลัก

    เพื่อเปิดใช้งานการตั้งค่าเหล่านี้โดยไม่ต้องใช้การรีบูตifdown/ifupเช่น

    sudo ifdown eth0 && sudo ifup eth0
    

    มันเป็นสิ่งสำคัญที่จะต้องใส่คำสั่งทั้งสองเข้าไปในหนึ่งบรรทัดถ้าคุณกำลัง remoting ลงในเซิร์ฟเวอร์เพราะอันแรกจะลดการเชื่อมต่อของคุณ! ด้วยวิธีนี้ ssh-session จะอยู่รอด


คุณสามารถสร้าง vpn whit มากกว่าหนึ่งที่อยู่ IP ได้โดยติดตั้งจากตัวจัดการซอฟต์แวร์
Michael

ไม่จำเป็นต้องรีบูทบน Ubuntu 16.04.3 LTS หลังจากเพิ่มหรือลบ IP
Daniel F

1
ดูเหมือนว่าการดาวน์จะเลิกใช้แล้วใน Ubuntu รุ่นใหม่กว่า
Sajuuk

20

ด้วยชุดเครื่องมือใหม่มันง่ายเหมือนเก่าเพื่อเพิ่มที่อยู่ IP ใหม่:

ip addr add 192.168.1.1/24 dev eth0

เมื่อค้นหาip addr showอีกครั้งคุณจะเห็นที่อยู่ IP ที่สองที่กำหนดให้กับอินเทอร์เฟซ:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.100/24 brd 192.168.0.255 scope global eth0
    inet 192.168.1.1/24 scope global eth0
    inet6 fe80::223:54ff:fe45:f307/64 scope link
       valid_lft forever preferred_lft forever

ลบที่อยู่ IP นั้นด้วย:

ip addr del 192.168.1.1/24 dev eth0

ชุด iproute2:

ชุด iproute2 เป็นชุดการสื่อสารสำหรับการสื่อสารระหว่างกระบวนการทำให้เคอร์เนลและพื้นที่ผู้ใช้ผ่านโปรโตคอล netlink ควรแทนที่เครื่องมือเครือข่ายมาตรฐานทั้งหมด นี่คือสิ่งที่พวกเขาแทนที่:

  • ifconfig-> ip addrและip link
  • route -> ip route
  • arp -> ip neigh
  • iptunnel -> ip tunnel
  • ipmaddr -> ip maddr
  • netstat -> ss

ขอบคุณสำหรับการให้คำสั่งที่ตรงกัน
guntbert

ขอบคุณ @chaos ฉันจะมี ip ได้มากกว่าอินเทอร์เฟซบนระบบของฉันหรือไม่?
ลาซารัส

@jazzz ใช่ดังที่คุณเห็นในผลลัพธ์ของอินเทอร์เฟซของฉันด้านบนมี 2 ที่อยู่ IP ที่กำหนดให้มัน (192.168.0.100 และ 192.168.1.1) คุณสามารถเพิ่มอีกหนึ่งรายการได้หากต้องการ
ความโกลาหล

@chaos แต่วิธีการที่ฉันสามารถใช้พวกเขาตัวอย่างเช่นผมต้องการที่จะสร้างกลุ่มสำหรับ multicasting ,, ฉันสามารถแบบกลุ่มจากพวกเขา ,, คุณสามารถโปรดดูที่คำถามของฉันaskubuntu.com/questions/547105/...
ลาซารัส

1
@chaos ฉันยอมรับคำตอบของตัวเองแทนที่จะเป็นคำตอบที่ยอดเยี่ยมของคุณเพราะคุณขาด "ความคงทน" ซึ่งฉันคาดหวังในเซิร์ฟเวอร์ config
guntbert

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.