เมื่อคุณมีการตั้งค่าเครือข่ายที่ซับซ้อนการมี“ ไม่มีเส้นทางไปยังโฮสต์ ” เริ่มปรากฏขึ้นหลังจากเพิ่มอินเทอร์เฟซใหม่ บ่อยครั้งเนื่องจากเส้นทางเริ่มต้นถูกเปลี่ยนหรือหลุด
ในการตรวจสอบเส้นทางเริ่มต้นของคุณให้ป้อน
แสดงเส้นทาง ip
ดังที่แสดงไว้ด้านบนฉันมีอินเทอร์เฟซทางกายภาพสามแบบโดยหนึ่งหันออกไปด้านนอกและสองไปยังเครือข่ายภายใน เส้นทางเริ่มต้นหลุดบนเครือข่ายเมื่อมีการรีเซ็ตการเชื่อมต่อทำให้เครือข่ายที่เหลือของฉันทำงานได้ตามปกติโดยมีเพียงเครื่องนี้เท่านั้นที่ไม่รู้ว่าจะเข้าถึงอินเทอร์เน็ต
เพื่อให้เครื่องสามารถเข้าถึงอินเทอร์เน็ตได้จำเป็นต้องมีเส้นทางเริ่มต้นซึ่งสามารถเพิ่มได้ด้วยคำสั่งต่อไปนี้
เส้นทาง sudo ip เพิ่มค่าเริ่มต้นผ่าน 136.63.176.1
หากคุณมีปัญหานี้เกิดขึ้นมากกว่าหนึ่งครั้งหรือสองครั้งอาจทำให้เกิดความรำคาญได้ดังนั้นฉันจึงเขียนเชลล์สคริปต์สองสามตัวเพื่อแก้ไขสถานการณ์อย่างรวดเร็ว
สคริปต์แรกจะดึงไอพีปัจจุบันของคุณมาให้คุณ ฉันตั้งค่า $ INTF เป็น STDIN คุณเปลี่ยนเป็นอินเทอร์เฟซเฉพาะของคุณหากคุณไม่ต้องการป้อนชื่ออินเทอร์เฟซ
การใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบฉันชอบเป็นกลุ่มและมีโฟลเดอร์ซอร์สในโฮมไดเร็กทอรีของฉัน
mkdir ~ / src && cd ~ / src
ฉันมา getip.sh
#! / bin / ทุบตี
#fetch ที่อยู่ IP ที่ตั้งไว้สำหรับอุปกรณ์ที่กำหนด
INTF = $ {1}
PTH = (~ / src /)
ประกาศ TMP_IP2
TMP_IP2 = $ (ip a | grep $ {INTF} | grep inet | cut -d”” -f6 | cut -d“ /” -f1> $ {PTH} current _ $ {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 = $ (cat $ {PTH} ปัจจุบัน _ $ {INTF} .ip)
echo“ wan ip ปัจจุบัน $ TMP_IP”
บันทึกและออกทำให้สามารถใช้งานได้จากนั้นทดสอบ
sudo chmod a + x getip.sh
ทุบตี getip.sh eth0.2
สมมติว่าทำงานได้อย่างถูกต้องสำหรับคุณไปข้างหน้าและคัดลอกลงใน / usr / local / bin / เพื่อให้สามารถดำเนินการได้ทั่วโลก
sudo cp getip.sh / usr / local / bin / getip
ตอนนี้ฉันสามารถพิมพ์ getip eth0.2 และ ip จะถูกส่งกลับ
สคริปต์ที่สองจะกำหนดเส้นทางเริ่มต้นเช่นเดียวกับการเรียกใช้สคริปต์แรก
ฉันมาจาก setip.sh
#! / bin / ทุบตี
getip $ {1}
#fetch ที่อยู่ IP ที่ตั้งไว้สำหรับอุปกรณ์ที่กำหนด
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
คุณสามารถคัดลอกสคริปต์ลงใน / usr / local / bin / หากคุณต้องการให้สามารถเรียกใช้งานได้ทั่วโลก มันจะยังคงต้องใช้ sudo ในขณะที่คุณกำลังปรับเปลี่ยนและอินเทอร์เฟซ
2 นาทีอ่านsudo cp setip.sh / usr / local / bin / setip