Episode 43 - Change IP Address From the Command Line in Linux
สารบัญ:
- วิธีใช้คำสั่ง ip
- การแสดงและแก้ไขที่อยู่ IP
- แสดงข้อมูลเกี่ยวกับที่อยู่ IP ทั้งหมด
- แสดงข้อมูลเกี่ยวกับอินเทอร์เฟซเครือข่ายเดียว
- กำหนดที่อยู่ IP ให้กับอินเทอร์เฟซ
- กำหนดที่อยู่ IP หลายแห่งให้กับอินเทอร์เฟซเดียวกัน
- ลบ / ลบที่อยู่ IP จากอินเตอร์เฟส
- การแสดงและการแก้ไขการเชื่อมต่อเครือข่าย
- แสดงข้อมูลเกี่ยวกับอินเทอร์เฟซเครือข่าย
- แก้ไขสถานะของอินเตอร์เฟสขึ้น / ลง
- การแสดงและแก้ไขตารางเส้นทาง
- แสดงตารางเส้นทาง
- เพิ่มเส้นทางใหม่
- ลบเส้นทาง
- ข้อสรุป
คำสั่ง
ip
เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการกำหนดค่าการเชื่อมต่อเครือข่ายที่ผู้ดูแลระบบ Linux ควรรู้ สามารถใช้เพื่อนำอินเตอร์เฟสขึ้นหรือลงกำหนดและลบที่อยู่และเส้นทางจัดการแคช ARP และอีกมากมาย
ในบทช่วยสอนนี้เราจะแสดงวิธีใช้คำสั่ง
ip
ผ่านตัวอย่างการใช้งานจริงและคำอธิบายโดยละเอียดเกี่ยวกับตัวเลือกทั่วไป
วิธีใช้คำสั่ง ip
ยูทิลิตี
ip
เป็นส่วนหนึ่งของแพ็คเกจ iproute2 ที่ติดตั้งไว้ในดิสทริบิวชัน Linux ทั้งหมด
ไวยากรณ์สำหรับคำสั่ง
ip
มีดังนี้:
ip OBJECT COMMAND
OBJECT เป็นประเภทวัตถุที่คุณต้องการจัดการ วัตถุที่ใช้บ่อยที่สุด (หรือคำสั่งย่อย) คือ:
-
link
(l
) - แสดงและแก้ไขเน็ตเวิร์กอินเตอร์เฟสaddress
(a
) - แสดงและแก้ไขที่อยู่ IProute
(r
) - แสดงและแก้ไขตารางเส้นทางneigh
(n
) - แสดงและจัดการกับวัตถุเพื่อนบ้าน (ตาราง ARP)
วัตถุสามารถเขียนในรูปแบบเต็มหรือย่อ (สั้น) ในการแสดงรายการคำสั่งและอาร์กิวเมนต์สำหรับวิธีใช้แต่ละชนิดของวัตถุ
ip OBJECT help
แต่ละคำสั่งย่อย
เมื่อกำหนดค่าอินเทอร์เฟซเครือข่ายคุณต้องดำเนินการคำสั่งในฐานะรูทหรือผู้ใช้ด้วยสิทธิ์ sudo มิฉะนั้นคำสั่งจะพิมพ์
RTNETLINK answers: Operation not permitted
คอนฟิกูเรชันที่ตั้งค่าด้วยคำสั่ง
ip
ไม่คงอยู่ หลังจากระบบรีสตาร์ทการเปลี่ยนแปลงทั้งหมดจะหายไป สำหรับการตั้งค่าแบบถาวรคุณจะต้องแก้ไขไฟล์การตั้งค่าเฉพาะ distro หรือเพิ่มคำสั่งในสคริปต์เริ่มต้น
การแสดงและแก้ไขที่อยู่ IP
เมื่อทำงานกับวัตถุ
addr
คำสั่งจะใช้แบบฟอร์มต่อไปนี้:
ip addr ADDRESS dev IFNAME
คำสั่งที่ใช้บ่อยที่สุดของวัตถุ
addr
คือ:
show
add
และ
del
แสดงข้อมูลเกี่ยวกับที่อยู่ IP ทั้งหมด
ในการแสดงรายการอินเตอร์เฟสเครือข่ายทั้งหมดและที่อยู่ IP ที่เกี่ยวข้องให้พิมพ์คำสั่งต่อไปนี้:
ip addr show
ผลลัพธ์จะมีลักษณะดังนี้:
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 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 2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0 valid_lft 2900sec preferred_lft 2900sec inet6 fe80::5054:ff:fe8c:6244/64 scope link valid_lft forever preferred_lft forever
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 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 2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0 valid_lft 2900sec preferred_lft 2900sec inet6 fe80::5054:ff:fe8c:6244/64 scope link valid_lft forever preferred_lft forever
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 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 2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0 valid_lft 2900sec preferred_lft 2900sec inet6 fe80::5054:ff:fe8c:6244/64 scope link valid_lft forever preferred_lft forever
คุณจะได้รับผลลัพธ์เดียวกันหากคุณพิมพ์ละเว้นคำสั่ง
show
และพิมพ์:
ip addr
แสดงข้อมูลเกี่ยวกับอินเทอร์เฟซเครือข่ายเดียว
ในการรับข้อมูลเกี่ยวกับอินเทอร์เฟซเครือข่ายเฉพาะให้ใช้
ip addr show dev
ตามด้วยชื่ออุปกรณ์ ตัวอย่างเช่นหากต้องการค้นหา
eth0
คุณจะต้องพิมพ์:
กำหนดที่อยู่ IP ให้กับอินเทอร์เฟซ
ในการกำหนดที่อยู่ IP ให้กับอินเทอร์เฟซให้ใช้ไวยากรณ์ต่อไปนี้:
ip addr add ADDRESS dev IFNAME
โดยที่
IFNAME
เป็นชื่อส่วนต่อประสานและ
ADDRESS
คือที่อยู่ IP ที่คุณต้องการกำหนดให้กับส่วนต่อประสาน
ในการเพิ่มที่อยู่
192.168.121.45
ด้วย netmask 24 ไปยังอุปกรณ์
eth0
คุณต้องพิมพ์:
sudo ip address add 192.168.121.45/24 dev eth0
เมื่อสำเร็จคำสั่งจะไม่แสดงเอาต์พุตใด ๆ หากไม่มีอินเทอร์เฟซคุณจะได้รับ
Cannot find device "eth0"
กำหนดที่อยู่ IP หลายแห่งให้กับอินเทอร์เฟซเดียวกัน
ด้วย
ip
คุณสามารถกำหนดที่อยู่หลายแห่งให้กับอินเทอร์เฟซเดียวกันได้ ตัวอย่างเช่น:
sudo ip address add 192.168.121.241/24 dev eth0
sudo ip address add 192.168.121.45/24 dev eth0
ในการยืนยันว่า IP ได้รับการกำหนดให้พิมพ์
ip -4 addr show dev eth0
หรือ
ip -4 a show dev eth0
:
2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0 valid_lft 3515sec preferred_lft 3515sec inet 192.168.121.45/24 scope global secondary eth0 valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0 valid_lft 3515sec preferred_lft 3515sec inet 192.168.121.45/24 scope global secondary eth0 valid_lft forever preferred_lft forever
ลบ / ลบที่อยู่ IP จากอินเตอร์เฟส
ไวยากรณ์ในการลบที่อยู่ IP จากส่วนต่อประสานมีดังนี้:
ip addr dev ADDRESS dev IFNAME
IFNAME เป็นชื่ออินเตอร์เฟสและ ADDRESS คือที่อยู่ IP ที่คุณต้องการลบออกจากอินเทอร์เฟซ
หากต้องการลบที่อยู่
192.168.121.45/24
จากประเภทอุปกรณ์ eth0:
sudo ip address del 192.168.121.45/24 dev eth0
การแสดงและการแก้ไขการเชื่อมต่อเครือข่าย
ในการจัดการและดูสถานะของอินเทอร์เฟซเครือข่ายให้ใช้วัตถุ
link
คำสั่งที่ใช้บ่อยที่สุดเมื่อทำงานกับวัตถุ
link
คือ:
show
,
set
,
add
และ
del
แสดงข้อมูลเกี่ยวกับอินเทอร์เฟซเครือข่าย
หากต้องการแสดงรายการอินเตอร์เฟสเครือข่ายทั้งหมดให้พิมพ์คำสั่งต่อไปนี้:
ip link show
1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff
1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff
1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff
ไม่เหมือนกับ
ip addr show
,
ip link show
จะไม่พิมพ์ข้อมูลเกี่ยวกับที่อยู่ IP ที่เชื่อมโยงกับอุปกรณ์
ในการรับข้อมูลเกี่ยวกับอินเทอร์เฟซเครือข่ายเฉพาะให้ใช้การ
ip link show dev
แล้วตามด้วยชื่ออุปกรณ์ ตัวอย่างเช่นหากต้องการค้นหา
eth0
คุณจะต้องพิมพ์:
ip link show dev eth0
2: eth0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff
2: eth0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff
แก้ไขสถานะของอินเตอร์เฟสขึ้น / ลง
ในการทำให้อินเทอร์เฟซขึ้นหรือลงให้ใช้
ip link set dev
แล้วตามด้วยชื่ออุปกรณ์และสถานะที่ต้องการ:
ip link set dev {DEVICE} up
ตัวอย่างเช่นหากต้องการให้ส่วนต่อประสาน
eth0
ออนไลน์คุณต้องพิมพ์:
ip link set eth0 up
และต้องนำมาถ้าออฟไลน์
การแสดงและแก้ไขตารางเส้นทาง
ในการกำหนดลบและแสดงตารางการกำหนดเส้นทางเคอร์เนลให้ใช้วัตถุ
route
คำสั่งที่ใช้บ่อยที่สุดเมื่อทำงานกับวัตถุเส้นทางคือ:
list
,
add
and
del
แสดงตารางเส้นทาง
ในการรับรายการของรายการเส้นทางเคอร์เนลใช้หนึ่งในคำสั่งต่อไปนี้:
ip route ip route list ip route list SELECTOR
เมื่อใช้งานโดยไม่มี
SELECTOR
คำสั่งจะแสดงรายการเส้นทางทั้งหมดในเคอร์เนล:
ip route list
default via 192.168.121.1 dev eth0 proto dhcp src 192.168.121.241 metric 100 192.168.121.0/24 dev eth0 proto kernel scope link src 192.168.121.241 192.168.121.1 dev eth0 proto dhcp scope link src 192.168.121.241 metric 100
หากต้องการแสดงเฉพาะการเราต์สำหรับเครือข่ายเฉพาะเช่น
172.17.0.0/16
คุณจะต้องพิมพ์:
ip r list 172.17.0.0/16
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
เพิ่มเส้นทางใหม่
ในการเพิ่มรายการใหม่ในตารางเส้นทางให้ใช้คำสั่ง
route add
ตามด้วยชื่อเครือข่ายหรืออุปกรณ์
เพิ่มเส้นทางไปที่ 192.168.121.0/24 ผ่านเกตเวย์ที่ 192.168.121.1
ip route add 192.168.121.0/24 via 192.168.121.1
เพิ่มเส้นทางไปที่ 192.168.121.0/24 ที่สามารถเข้าถึงได้บนอุปกรณ์ eth0
ip route add 192.168.121.0/24 dev eth0
ในการเพิ่มเส้นทางเริ่มต้นให้ใช้คำหลักที่เป็น
default
คำสั่งต่อไปนี้จะเพิ่มเส้นทางเริ่มต้นผ่านทางเกตเวย์ท้องถิ่น
192.168.121.1
ที่สามารถเข้าถึงได้บนอุปกรณ์
eth0
ip route add default via 192.168.121.1 dev eth0
ลบเส้นทาง
ในการลบรายการออกจากตารางเส้นทางให้ใช้คำสั่ง
route add
, ไวยากรณ์สำหรับการลบเส้นทางเหมือนกันเมื่อเพิ่ม
คำสั่งต่อไปนี้จะลบเส้นทางเริ่มต้น:
ip route del default
ลบเส้นทางสำหรับ 192.168.121.0/24 ผ่านเกตเวย์ที่ 192.168.121.1
ip route add 192.168.121.0/24 via 192.168.121.1
ข้อสรุป
ถึงตอนนี้คุณควรมีความเข้าใจวิธีใช้คำสั่ง Linux
ip
อย่างดี สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือก
ip
อื่น ๆ ให้ไปที่หน้าคำสั่ง ip หรือพิมพ์
man ip
ในเทอร์มินัลของคุณ
คำสั่ง Echo ใน linux พร้อมตัวอย่าง
คำสั่ง echo เป็นหนึ่งในคำสั่งพื้นฐานและใช้บ่อยที่สุดใน Linux อาร์กิวเมนต์ที่ส่งผ่านไปยัง echo จะถูกพิมพ์ไปยังเอาต์พุตมาตรฐาน
คำสั่ง Curl ใน linux พร้อมตัวอย่าง
Curl เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งสำหรับถ่ายโอนข้อมูลจากหรือไปยังเซิร์ฟเวอร์ที่ออกแบบมาเพื่อทำงานโดยไม่ต้องมีการโต้ตอบกับผู้ใช้ ในบทช่วยสอนนี้เราจะแสดงวิธีใช้เครื่องมือ curl ผ่านตัวอย่างการใช้งานจริงและคำอธิบายโดยละเอียดเกี่ยวกับตัวเลือก curl ทั่วไป
คำสั่ง Linux พร้อมตัวอย่าง
คำสั่ง tee อ่านจากอินพุตมาตรฐานและเขียนไปยังทั้งเอาต์พุตมาตรฐานและหนึ่งไฟล์ขึ้นไปในเวลาเดียวกัน Tee ใช้กันมากที่สุดเมื่อใช้ร่วมกับคำสั่งอื่นผ่านการวางท่อ