Khắc phục: Không có đường dẫn đến máy chủ lưu trữ trên Ubuntu với nhiều mạng



Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề

Khi bạn có một thiết lập mạng phức tạp, thật khó chịu khi có “ Không có đường dẫn đến máy chủ ”Bắt đầu xuất hiện sau khi nâng lên một giao diện mới. Điều này thường 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



lộ trình ip



không có đường dẫn đến máy chủ-1

Như hiển thị ở trên, tôi có ba giao diện vật lý, một giao diện hướng ra ngoài và hai giao diện nội bộ. Tuyến mặc định bị rớt trên mạng khi một kết nối được đặt lại, khiến phần còn lại của mạng của tôi hoạt động bình thường, chỉ có điều máy này không biết kết nối Internet ở đâu.

Để máy có thể truy cập Internet, nó cần phải có một tuyến mặc định có thể được thêm vào bằng lệnh sau



sudo ip route thêm mặc định qua 136.63.176.1

Nếu bạn gặp phải vấn đề này phát sinh nhiều hơn một hoặc hai lần, nó có thể trở nên 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.

Tập lệnh đầu tiên sẽ lấy ip hiện tại của bạn cho bạn. Tôi đã đặt $ INTF làm STDIN, bạn thay đổi nó thành giao diện cụ thể của mình 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

Tôi đã đến getip.sh

#! / bin / bash

#fetch ip địa chỉ đã đặt cho thiết bị nhất định

INTF = $ {1}

PTH = (~ / src /)

khai báo 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 | 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 = $ (cat $ {PTH} current _ $ {INTF} .ip)

echo “wan ip $ TMP_IP hiện tại”

Lưu và thoát, làm cho nó có thể thực thi và sau đó kiểm tra nó.

sudo chmod a + x getip.sh

bash getip.sh eth0.2

không có đường dẫn đến máy chủ-2

Giả sử rằng nó hoạt động đúng cách, bạn hãy tiếp tục và sao chép nó vào / usr / local / bin / để làm cho nó có thể 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ả lại.

Tập lệnh thứ hai sẽ chỉ định tuyến đường mặc định, cũng như chạy tập lệnh đầu tiên.

Tôi đến từ setip.sh

#! / bin / bash

chú giải địa chỉ $ {1}

#fetch ip địa chỉ đã đặt cho thiết bị nhất định

PTH = (~ / src /)

khai báo RT_IP

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

Thay đổi tuyến đường ip mặc định qua $ RT_IP

ip route thêm mặc định qua $ RT_IP

echo “tuyến đường ip - mặc định qua $ RT_IP”

Lưu và thoát. Bạn có thể nhận thấy rằng tôi đã thay đổi và thêm tuyến đường mặc định, đây là trường hợp bạn đặt sai cổng.

sudo chmod a + x setip.sh

sudo setip.sh eth0.2

không có đường dẫn đến máy chủ-3

Bạn có thể kiểm tra lại bảng định tuyến để kiểm tra lại xem tất cả đều tốt.

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ể thực thi được trên toàn cầu. Nó sẽ vẫn yêu cầu sudo, vì bạn đang sửa đổi và giao diện.

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

2 phút đọc