Khắc phục: Không thể định tuyến để lưu trữ trên Ubuntu với nhiều mạng
Khi bạn có một thiết lập mạng phức tạp, thật khó chịu khi No Route to Host xuất hiện sau khi nâng cấp một giao diện mới. Điều này thường là do tuyến đường mặc định bị thay đổi hoặc bị loại bỏ.
Để kiểm tra tuyến đường mặc định của bạn, hãy nhập
ip lộ trình
Như được hiển thị ở trên, tôi có ba giao diện vật lý, một giao diện bên ngoài và hai giao diện cho các mạng nội bộ. Các tuyến đường mặc định giảm trên mạng khi một kết nối được thiết lập lại, gây ra phần còn lại của mạng của tôi để hoạt động bình thường, chỉ có máy này không biết nơi để đạt được Internet.
Để máy có thể truy cập Internet, máy cần có tuyến đường mặc định có thể được thêm bằng lệnh sau
sudo ip route thêm mặc định qua 136.63.176.1
Nếu bạn có vấn đề này phát sinh nhiều hơn một hoặc hai lần, nó có thể trở thành một mối phiền toái, vì vậy tôi đã viết một vài kịch bản shell để nhanh chóng khắc phục tình hình.
Kịch bản đầu tiên sẽ tìm nạp ip hiện tại của bạn cho bạn. Tôi có $ INTF đặt là STDIN, bạn thay đổi nó thành giao diện cụ thể của bạn nếu bạn không muốn nhập tên giao diện.
Sử dụng trình soạn thảo văn bản yêu thích của bạn, tôi thích vim và có một thư mục nguồn trong thư mục chính của tôi
mkdir ~ / src && cd ~ / src
vim getip.sh
#! / bin / bash
# fetch đặt địa chỉ IP cho thiết bị đã cho
INTF = $ {1}
PTH = (~ / src /)
khai báo TMP_IP2
TMP_IP2 = $ (ip a | grep $ {INTF} | grep inet | cắt -d -f6 | cut -d / -f1> $ {PTH} hiện tại _ $ {INTF} .ip)
ip a | grep $ {INTF} | grep inet | cắt -d -f6 | cắt -d / -f1 | cắt -d -f1-3 | awk '{print $ 0 ″ .0 / 24 ″}'> $ {PTH} net _ $ {INTF} .ip
ip a | grep $ {INTF} | grep inet | cắt -d -f6 | cắt -d / -f1 | cắt -d -f1-3 | awk '{print $ 0 ″ .1 ″}'> $ {PTH} gw _ $ {INTF} .ip
khai báo TMP_IP
TMP_IP = $ (mèo $ {PTH} hiện tại _ $ {INTF} .ip)
Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đâyecho wan ip hiện tại $ TMP_IP
Lưu và thoát, làm cho nó thực thi, và sau đó kiểm tra nó.
sudo chmod a + x getip.sh
bash getip.sh eth0.2
Giả sử rằng làm việc đúng cho bạn đi trước và sao chép nó vào / usr / local / bin / để làm cho nó thực thi trên toàn cầu.
sudo cp getip.sh / usr / local / bin / getip
Bây giờ tôi có thể chỉ cần gõ getip eth0.2 và ip sẽ được trả về.
Kịch bản thứ hai sẽ gán tuyến mặc định, cũng như chạy tập lệnh đầu tiên.
vim setip.sh
#! / bin / bash
getip $ {1}
# fetch đặt địa chỉ IP cho thiết bị đã cho
PTH = (~ / src /)
khai báo RT_IP
RT_IP = $ (mèo $ {PTH} gw _ $ {1} .ip)
thay đổi tuyến đường ip mặc định qua $ RT_IP
tuyến đường ip thêm mặc định qua $ RT_IP
tuyến đường ip echo - mặc định qua $ RT_IP
Lưu và thoát. Bạn có thể đã nhận thấy rằng tôi có cả hai thay đổi và thêm tuyến đường mặc định, điều này là dành cho những dịp mà bạn có thiết lập cổng sai.
sudo chmod a + x setip.sh
sudo setip.sh eth0.2
Bạn có thể kiểm tra lại bảng định tuyến để kiểm tra lại xem tất cả có tốt không.
sudo ip lộ trình
Bạn có thể sao chép các tập lệnh vào / usr / local / bin / nếu bạn muốn chúng được thực thi trên toàn cầu. Nó vẫn sẽ yêu cầu sudo, khi bạn đang sửa đổi và giao diện.
sudo cp setip.sh / usr / local / bin / setip
Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đây