แก้ไข: เส้นทางไม่สามารถโฮสต์บน Ubuntu ด้วยเครือข่ายหลายแห่ง

เมื่อคุณมีการตั้งค่าเครือข่ายที่ซับซ้อนน่าหงุดหงิดที่จะ ไม่มีเส้นทางไปยัง Host เริ่มปรากฏขึ้นหลังจากเพิ่มอินเทอร์เฟซใหม่ นี่เป็นเพราะเส้นทางเริ่มต้นถูกเปลี่ยนหรือลดลง

เมื่อต้องการตรวจสอบเส้นทางเริ่มต้นของคุณให้ป้อน

การแสดงเส้นทาง ip

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

สำหรับเครื่องที่สามารถเข้าถึงอินเทอร์เน็ตได้จำเป็นต้องมีเส้นทางเริ่มต้นซึ่งสามารถเพิ่มได้ด้วยคำสั่งต่อไปนี้

เส้นทาง sudo ip เพิ่มค่าเริ่มต้นผ่าน 136.63.176.1

หากคุณมีปัญหานี้เกิดขึ้นมากกว่าหนึ่งครั้งหรือสองครั้งอาจทำให้เกิดความรำคาญได้ดังนั้นฉันจึงได้เขียนสคริปต์เชลล์เพื่อแก้ไขสถานการณ์ได้อย่างรวดเร็ว

สคริปต์แรกจะดึง ip ปัจจุบันของคุณให้คุณ ฉันมีชุด INTF $ เป็น STDIN แล้วเปลี่ยนเป็นอินเทอร์เฟซเฉพาะของคุณหากคุณไม่ต้องการป้อนชื่ออินเทอร์เฟซ

ใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบฉันชอบ vim และมีโฟลเดอร์ต้นทางในไดเร็กทอรีโฮมของฉัน

mkdir ~ / src && cd ~ / src

vim getip.sh

#! / bin / ทุบตี

#fetch ip address set สำหรับอุปกรณ์ที่กำหนด

INTF = $ {1}

PTH = (~ / src /)

ประกาศ TMP_IP2

TMP_IP2 = $ (ip a | grep $ {INTF} | grep inet | ตัด -d -f6 | ตัด -d / -f1> $ {PTH} ปัจจุบัน _ $ {INTF} .ip)

ip a | grep $ {INTF} | grep inet | ตัด -d -f6 | ตัด -d / -f1 | ตัด -d -f1-3 | awk '{print $ 0 ".0 / 24"}'> $ {PTH} net _ $ {INTF} .ip

ip a | grep $ {INTF} | grep inet | ตัด -d -f6 | ตัด -d / -f1 | ตัด -d -f1-3 | awk '{print $ 0 ".1"}'> $ {PTH} gw _ $ {INTF} .ip

ประกาศ TMP_IP

TMP_IP = $ (แมว $ {PTH} ปัจจุบัน _ $ {INTF} .ip)

PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่

echo ปัจจุบัน wan ip $ TMP_IP

บันทึกและออกให้ปฏิบัติและทดสอบ

sudo chmod a + x getip.sh

bash getip.sh eth0.2

สมมติว่าทำงานอย่างถูกต้องสำหรับคุณไปข้างหน้าและคัดลอกลงใน / usr / local / bin / เพื่อให้ทั่วโลกปฏิบัติการ

sudo cp getip.sh / usr / local / bin / getip

ตอนนี้ฉันสามารถพิมพ์ getip eth0.2 และ ip จะถูกส่งกลับ

สคริปต์ที่สองจะกำหนดเส้นทางดีฟอลต์เช่นเดียวกับการเรียกใช้สคริปต์แรก

vim setip.sh

#! / bin / ทุบตี

getip $ {1}

#fetch ip address set สำหรับอุปกรณ์ที่กำหนด

PTH = (~ / src /)

ประกาศ RT_IP

RT_IP = $ (cat $ {PTH} gw _ $ {1} .ip)

ip เริ่มต้นเปลี่ยนเส้นทางผ่าน $ RT_IP

เส้นทาง ip เพิ่มค่าเริ่มต้นผ่านทาง $ RT_IP

เส้นทางของ echo ip - ค่าเริ่มต้นผ่านทาง $ RT_IP

บันทึกและออก คุณอาจสังเกตเห็นว่าฉันมีทั้งการเปลี่ยนแปลงและเพิ่มเส้นทางเริ่มต้นนี่เป็นโอกาสที่คุณมีเกตเวย์ผิด

sudo chmod a + x setip.sh

sudo setip.sh eth0.2

คุณสามารถตรวจสอบตารางเส้นทางอีกครั้งเพื่อตรวจสอบว่าทั้งหมดเป็นสิ่งที่ดี

เส้นทาง sudo ip route show

คุณสามารถคัดลอกสคริปต์ลงใน / usr / local / bin / หากต้องการให้ไฟล์เหล่านี้สามารถใช้งานได้ทั่วโลก ยังคงต้องใช้ sudo เนื่องจากคุณกำลังปรับเปลี่ยนและเชื่อมต่อ

sudo cp setip.sh / usr / local / bin / setip

PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่

Facebook Twitter Google Plus Pinterest