ทั้ง DHCP และที่อยู่ IP แบบคงที่พร้อมกันในหนึ่งอินเทอร์เฟซ


16

เราสามารถใช้หลายที่อยู่ IP (eg. eth0:0, eth0:1)สำหรับอินเตอร์เฟซเดียวในลินุกซ์ แต่เราสามารถใช้ DHCP และ IP แบบคงที่ในเวลาเดียวกันได้หรือไม่? eth0:1ควรมีที่อยู่ IP แบบคงที่และeth0:0ควรกำหนดค่าโดยใช้ DHCP

เราจะทำให้สำเร็จทั้งสองได้อย่างไร


คำถามนี้เกี่ยวกับการกำหนดค่า NetworkManager หรือไม่?
madneon

คำตอบ:


13

ใช่สิ่งนี้สามารถทำได้ อย่างไรก็ตามคุณมักจะใช้ eth0 และ eth0: 0 สำหรับสิ่งนี้แทน eth0: 0 และ eth0: 1 คุณสามารถตั้งค่าไฟล์ / etc / network / interfaces ของคุณเช่นนี้:

auto lo eth0 eth0:0
iface lo inet loopback

iface eth0 inet dhcp

iface eth0:0 inet static
    address ...
    netmask ...

คุณอาจไม่ต้องการตั้งค่าเกตเวย์บนอินเทอร์เฟซ eth0: 0 เพราะอาจขัดแย้งกับการตั้งค่าเกตเวย์ที่คุณได้รับจาก DHCP หากคุณป้อนการตั้งค่าด้วยตนเองใน / etc / network / interfaces คุณจะต้องแน่ใจว่า network-manager ไม่พยายามจัดการการตั้งค่าของคุณ นี้จะครอบคลุมที่นี่


9

หลังจากค้นหาคำตอบสำหรับปัญหาเดียวกันอย่างละเอียดแล้วฉันได้หาวิธีแก้ปัญหาที่ช่วยให้ผู้จัดการเครือข่ายจัดการการเชื่อมต่อของคุณต่อไป ก่อนอื่นให้สร้างการเชื่อมต่อ DHCP ตามปกติใน Network Manager โดยใช้ Edit Connections> Add สิ่งนี้จะสร้างไฟล์ที่อยู่ใน / etc / NetworkManager / system-connections / เปิดไฟล์นี้ในโปรแกรมแก้ไขข้อความด้วยสิทธิ์ Super User ตัวอย่าง: sudo nano / etc / NetworkManager / system-connections / DHCPEthernet

รหัสจะมีลักษณะดังนี้:

[802-3-ethernet]
duplex=full
mac-address=00:0E:C6:88:31:43

[connection]
id=DHCPEthernet
uuid=26af83f1-c48c-4454-9038-bbb4bec3e3a3
type=802-3-ethernet
timestamp=1405008541

[ipv6]
method=auto

[ipv4]
method=auto

เพิ่มบรรทัดใต้ส่วน ipv4 สำหรับที่อยู่ ip แบบคงที่ที่คุณต้องการเพิ่ม ฉันใช้ 192.168.10.1 โดยไม่มีเกตเวย์สำหรับตัวอย่างนี้

address1=192.168.10.1/24,0.0.0.0

บันทึกไฟล์และใช้ตัวจัดการเครือข่ายเพื่อตัดการเชื่อมต่อแล้วเชื่อมต่อกับเครือข่ายอีกครั้ง ส่ง Ping จะยืนยันการทำงานของที่อยู่ IP ทั้งสองอย่างถูกต้อง เอาต์พุตจากip addrยืนยันความสำเร็จ

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 14:10:9f:d7:22:0b brd ff:ff:ff:ff:ff:ff
    inet 172.20.1.71/24 brd 172.20.1.255 scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 fe80::1610:9fff:fed7:220b/64 scope link 
       valid_lft forever preferred_lft forever
3: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0e:c6:88:31:43 brd ff:ff:ff:ff:ff:ff
    inet 172.20.1.60/24 brd 172.20.1.255 scope global eth2
       valid_lft forever preferred_lft forever
    inet 192.168.10.1/24 brd 192.168.10.255 scope global eth2
       valid_lft forever preferred_lft forever
    inet6 fe80::20e:c6ff:fe88:3143/64 scope link 
       valid_lft forever preferred_lft forever

address1การตั้งค่าที่พบที่นี่เป็นจริงการipv4.addressesตั้งค่าของ NetworkManager ถ้าคุณใช้ API หรือ nmcli ในกรณีนี้คุณต้องipv4.methodตั้งค่าเป็น "อัตโนมัติ"
เดฟ

หลังจากที่ฉันสร้างการเชื่อมต่อตามปกติฉันยังคงไม่มีไฟล์ในไดเรกทอรี / etc / NetworkManager / system-connections / พวกเขาถูกเก็บไว้ที่อื่นหรือไม่? อาจเป็นสิ่งที่ SELinux?
Steve Jorgensen

2

ฉันตรวจสอบประมาณเล็กน้อยและพบว่าทุกวันนี้เป็นไปได้ที่จะสร้างการกำหนดค่านี้โดยใช้nmcliเครื่องมือ ที่จริงแล้วมันช่วยให้สามารถควบคุม NetworkManager ได้อย่างสมบูรณ์ หน้าคู่มือสำหรับ nmcli นั้นละเอียดและเข้าใจง่ายมาก ดูและman nmcliman nm-settings

ในการตั้งค่าการกำหนดค่าในคำถามนี้วิธีที่ง่ายที่สุดคือแก้ไขโปรไฟล์การเชื่อมต่อปัจจุบันของคุณ ค้นหาชื่อโปรไฟล์จากเครื่องมือ GUI NetworkManager ของคุณและแก้ไขโดยใช้เครื่องมือแก้ไข CLI (นี่คือชื่อEthernet connection):

$ sudo nmcli c แก้ไข 'การเชื่อมต่ออีเธอร์เน็ต'

=== | เครื่องมือแก้ไขการเชื่อมต่อแบบโต้ตอบ nmcli | ===

การแก้ไขการเชื่อมต่อ '802-3-ethernet' ที่มีอยู่: 'การเชื่อมต่อ Ethernet 1'

พิมพ์ 'ความช่วยเหลือ' หรือ '?' สำหรับคำสั่งที่ใช้ได้
พิมพ์ 'อธิบาย [.]' สำหรับคำอธิบายคุณสมบัติโดยละเอียด

คุณสามารถแก้ไขการตั้งค่าต่อไปนี้: การเชื่อมต่อ, 802-3-ethernet (ethernet), 802-1x, dcb, ipv4, ipv6
nmcli> goto ipv4
คุณสามารถแก้ไขคุณสมบัติต่อไปนี้: method, dns, ค้นหา dns, ตัวเลือก dns, ลำดับความสำคัญ dns, ที่อยู่, เกตเวย์, เส้นทาง, เส้นทาง - ตัวชี้วัดเส้นทาง, เส้นทางข้ามอัตโนมัติ - ส่ง - ชื่อโฮสต์, ไม่เคยเริ่มต้น, อาจ - ล้มเหลว, พ่อ - หมดเวลา, dhcp - หมดเวลา, dhcp- ลูกค้า - id, dhcp-fqdn
nmcli ipv4> set ipv4.addresses {your_address_here} / {your_network_prefix_here} 
คุณต้องการตั้งค่า 'ipv4.method' เป็น 'manual' หรือไม่ [ใช่]: no 
nmcli ipv4> บันทึก
อัปเดตการเชื่อมต่อ 'การเชื่อมต่ออีเธอร์เน็ต' (87fa8e41-7fe3-435a-a2f2-29a9c8084d2d) สำเร็จแล้ว
nmcli ipv4> ออกจาก

ส่วนที่เป็นตัวหนาคืออินพุตของคุณแทนที่สิ่งต่างๆด้วยวงเล็บปีกกาด้วยการตั้งค่าของคุณ ตอบnoคำถามเกี่ยวกับการipv4.methodสงวนรักษา DHCP afterwords คุณต้องปิดใช้งานและเปิดใช้งานการกำหนดค่าอีกครั้งซึ่งสามารถทำได้โดยใช้ GUI-tools หรือ nmcli

หากคุณต้องการมันเป็นไปได้ที่จะสร้างการเชื่อมต่อใหม่จากบรรทัดคำสั่ง:

sudo nmcli -p connection add type ethernet ifname {your_interface_name} con-name MyConnection -- ipv4.addresses {your_address}/{your_prefix_length} ipv4.method auto

อีกครั้งแทนที่สิ่งต่าง ๆ ในวงเล็บปีกกาด้วยการตั้งค่าของคุณ

สุดท้ายหากคุณยังต้องการแก้ไขไฟล์กำหนดค่าอย่าลืมรีโหลดไฟล์หลังจากแก้ไข:

sudo nmcli connection reload

โปรดทราบว่าการกำหนดค่าที่สร้างขึ้นด้วยวิธีนี้มีแนวโน้มที่จะสร้างความสับสนให้กับเครื่องมือ GUI ที่ดีที่สุดพวกเขาจะไม่แสดงที่อยู่คงที่


0

Debian Buster / 10 NetworkManager nm-connection-editorสามารถทำได้จากส่วนต่อประสานกราฟิกกับผู้ใช้

แก้ไขการเชื่อมต่อเปิดแท็บ "การตั้งค่า IPv4" จากนั้น:

  1. ตั้งค่าวิธีการเป็น "อัตโนมัติ (DHCP)"
  2. เพิ่ม "ที่อยู่คงที่เพิ่มเติม" ด้านล่าง

สิ่งนี้จะเขียนการตั้งค่าต่อไปนี้ใน/etc/NetworkManager/system-connections/connection.nmconnection:

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