ฉันกำลังโพสต์คำตอบนี้เพื่อให้อีกมิติสำหรับคำถามและคำตอบที่มีอยู่ไม่ใช่คำตอบโดยตรงกับคำถามเดิม IP ของคุณจะหายไปเมื่อรีบูท อย่างไรก็ตามฉันคิดว่ามันคุ้มค่าที่คุณจะเข้าใจคำสั่งเหล่านี้iproute2
แพ็คเกจเป็นวิธีการจัดการอินเตอร์เฟสแบบ on-the-fly ผ่าน CLI ผู้คนจำนวนมากยังคงเขียนสคริปต์โดยใช้ifconfig
ตัวอย่าง
ฉันคิดว่ามันคุ้มค่าที่จะสังเกตการใช้iproute2
แพ็คเกจ
แสดง IP ปัจจุบันบนทุกอินเตอร์เฟส ( ip addr
)
n2:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:e0:4c:6d:0a:49 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 74:ea:3a:ad:2e:00 brd ff:ff:ff:ff:ff:ff
inet 172.22.0.221/24 brd 172.22.0.255 scope global wlan0
inet6 fe80::76ea:3aff:fead:2e00/64 scope link
valid_lft forever preferred_lft forever
เพิ่มที่อยู่ IP ในอินเทอร์เฟซไร้สายของฉัน ( ip addr add
)
n2:~$ sudo ip a a 10.0.0.56/24 dev wlan0
[sudo] password for bensley:
แสดงที่อยู่ IP ของฉันอีกครั้งบันทึก IP เพิ่มเติมใน wlan0 ( ip addr
)
n2:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:e0:4c:6d:0a:49 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 74:ea:3a:ad:2e:00 brd ff:ff:ff:ff:ff:ff
inet 172.22.0.221/24 brd 172.22.0.255 scope global wlan0
inet 10.0.0.56/24 scope global wlan0
inet6 fe80::76ea:3aff:fead:2e00/64 scope link
valid_lft forever preferred_lft forever
แสดงสถานะลิงก์ของอินเทอร์เฟซของฉัน ( ip link
)
n2:~$ ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:e0:4c:6d:0a:49 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 74:ea:3a:ad:2e:00 brd ff:ff:ff:ff:ff:ff
ลบที่อยู่ IP ที่ 2 นี้จากส่วนต่อประสานไร้สายของฉัน ( ip addr delete
)
n2:~$ sudo ip a del 10.0.0.56/24 dev wlan0
แสดงที่อยู่ IP เพียงเพื่อให้ wlan0 ตรวจสอบ ( ip addr show wlan0
)
n2:~$ ip a s wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 74:ea:3a:ad:2e:00 brd ff:ff:ff:ff:ff:ff
inet 172.22.0.221/24 brd 172.22.0.255 scope global wlan0
inet6 fe80::76ea:3aff:fead:2e00/64 scope link
valid_lft forever preferred_lft forever
อาจใช้คำสั่งเดียวกันเพื่อลบ IP ปัจจุบันของฉัน 172.22.0.221 จากนั้นเพิ่มอีกคำสั่งหนึ่ง แต่ฉันจะสูญเสียการเชื่อมต่อซึ่งตอนนี้ฉันไม่สามารถทำได้ ด้านล่างคือคำสั่งเหล่านั้นแม้ว่าหลังจากนั้นฉันจะต้องเพิ่มเส้นทางเส้นทางเริ่มต้นใหม่ด้วย
n2:~$ ip r s
default via 172.22.0.1 dev wlan0 proto static
169.254.0.0/16 dev wlan0 scope link metric 1000
172.22.0.0/24 dev wlan0 proto kernel scope link src 172.22.0.221 metric 2
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
ip a del 172.22.0.221/24 dev wlan0
ip a a 172.22.0.10/24 dev wlan
ip r a default via 172.22.0.1
# Re-add the same default route ^ via the same default gateway