Điểm:0

Cách thêm các tuyến IP liên tục trong máy chủ Ubuntu 20.04

lá cờ cn

Có thể câu hỏi này đã được trả lời ở đâu đó trước đây nhưng dường như tôi vẫn chưa thể hiểu được. Gần đây, tôi gặp một số sự cố với máy chủ Ubuntu 20.04 của mình. Tôi đã cài đặt OpenVPN và tôi có thể tạo thành công một đường hầm vpn với NordVPN. Vấn đề là khi đường hầm được tạo, kết nối bị hỏng và tôi không thể ssh trở lại máy chủ trừ khi tôi thêm một số tuyến ip. Tôi tìm thấy một giải pháp cho việc này: Giả sử ip thực của máy chủ là 185.230.125.107, tôi đã thêm thủ công các tuyến đường như sau:

quy tắc sudo ip thêm từ bảng 185.230.125.107 128
Sudo ip route thêm bảng 128 185.230.125.107/32 dev eno0
Sudo ip route thêm bảng 128 mặc định qua 185.230.125.254

Điều này hoạt động tốt cho đến khi khởi động lại. Sau khi máy khởi động lại, tôi phải thêm lại các quy tắc đó. Câu hỏi của tôi là thế này: Tôi làm cách nào để thêm các quy tắc này, làm cho chúng bền bỉ để khi khởi động lại, chúng sẽ giữ nguyên vị trí!? Tôi nên thêm chúng ở đâu và như thế nào!? Tôi đã đọc ở đâu đó rằng tôi cần tạo một số loại tập lệnh trong /etc/network/if-up.d nhưng tôi không biết cách tạo một tập lệnh như vậy. Làm ơn, có ai đó sẵn sàng giúp đỡ không!? Tôi thực sự đánh giá cao những người đó. Cảm ơn nhiều biệt danh

raj avatar
lá cờ cn
raj
Tôi khá chắc chắn rằng bạn có thể thêm phần này vào đâu đó trong cấu hình Netplan, tuy nhiên tôi không biết Netplan, vì Ubuntu Desktop sử dụng Trình quản lý mạng chứ không phải Netplan. Trong Trình quản lý mạng, bạn có thể thêm các tuyến liên tục, vì vậy tôi chắc chắn rằng điều đó cũng có thể thực hiện được trong Netplan. Hy vọng ai đó sẽ đưa ra một câu trả lời làm thế nào để làm điều đó.
Nicola avatar
lá cờ cn
dù sao cũng cảm ơn bạn
Điểm:1
lá cờ us
  1. Xin chào bạn đời, tôi không thể bình luận vì vậy tôi sẽ cố gắng trả lời ở đây.
  2. Có một số tùy chọn để tạo một quy trình theo lịch trình để giải quyết vấn đề đó.
  3. Đây là hai lựa chọn:
    • crontab - không phù hợp với vấn đề của bạn.
    • tạo một dịch vụ - phù hợp với vấn đề của bạn một cách hoàn hảo.
    • có thể có nhiều cách tốt hơn để giải quyết vấn đề đó.
  4. Giới thiệu về crontab:
    • Crontab là danh sách các lệnh mà bạn muốn chạy theo lịch trình thông thường.
    • Để thêm lệnh bạn muốn lên lịch chạy, bạn phải chỉnh sửa tệp crontab bằng lệnh crontab -e.
    • bạn có thể sử dụng trang web này để giúp bạn tính toán khoảng thời gian bạn muốn thực hiện một lệnh cụ thể crontabMáy tính
    • bạn có thể sử dụng hướng dẫn này để tìm tệp crontab của riêng mình hướng dẫn crontab
  5. Tùy chọn tốt hơn cho ý kiến ​​​​của tôi là tạo dịch vụ của riêng bạn.
    • khi bạn tạo một dịch vụ, bạn có thể chạy nó giống như tất cả các dịch vụ khác, điều đó có nghĩa là bạn có thể bật, tắt, khởi động lại, bắt đầu và tất cả các tùy chọn khác đi kèm với hệ thống chỉ huy.
    • bạn phải tạo dịch vụ của mình dưới dạng tệp văn bản và đặt tên là myServiceName.service.
    • sau đó bạn phải xác định vị trí dịch vụ đó trong /etc/systemd/system/.
    • sử dụng hướng dẫn này để có một mẫu dịch vụ hướng dẫn làm thế nào để thực hiện một dịch vụ.
    • sau khi tạo dịch vụ và định vị anh ta trong thư mục cụ thể, bạn có thể kích hoạt và khởi động anh ta bằng lệnh này: systemctl kích hoạt serviceName.servicesystemctl start serviceName.service.
    • dịch vụ sẽ bắt đầu trong bất kỳ lần khởi động lại nào để có thể giải quyết vấn đề của bạn.
  6. Đã chỉnh sửa sau khi nhận xét.
    • tạo một kịch bản với sudo nano /usr/local/sbin/SCRIPT_NAME.sh
    • ví dụ cho một tập lệnh với các lệnh của bạn:
    • #/bin/bash!
    • thêm quy tắc ip từ bảng 185.230.125.107 128
    • tuyến ip thêm bảng 128 185.230.125.107/32 dev eno0
    • tuyến ip thêm bảng 128 mặc định qua 185.230.125.254
    • bây giờ cấp cho tập lệnh quyền thực thi với chmod a+x SCRIPT_NAME.sh
    • bây giờ hãy tạo một dịch vụ với sudo nano /systemd/system/SERVICE_NAME.service
    • sử dụng mẫu đó: trong trường ExecStart thực thi tập lệnh của bạn
Mô tả=ROT13 dịch vụ demo
Sau=mạng.mục tiêu
StartLimitIntervalSec=0
[Dịch vụ]
Loại = đơn giản
Khởi động lại = luôn luôn
Khởi động lạiSec=1
Người dùng=centos
ExecStart=/usr/local/sbin/./SCRIPT_NAME.sh

[Cài đặt]
WantedBy=multi-user.target
  1. Đã chỉnh sửa sau khi nhận xét hai:
  2. Để đảm bảo dịch vụ của bạn được định cấu hình chính xác, hãy làm theo các bước sau:
    • định vị dịch vụ trong /etc/systemd/system/LOCATE_HERE.service
    • cung cấp cho tập lệnh của bạn chạy bởi dịch vụ quyền thực thi với Sudo chmod a+x yourscript.sh
    • thực hiện lệnh Sudo systemctl daemon-tải lại để tải lại dịch vụ mới.
    • thực hiện lệnh Sudo systemctl kích hoạt serviceName.service
    • thực hiện lệnh sudo systemctl start serviceName.service
    • thực hiện lệnh Sudo systemctl status serviceName.service
    • nếu dịch vụ đang chạy, hãy khởi động lại hệ thống của bạn.
    • sau khi khởi động lại thực hiện lệnh Sudo systemctl status serviceName.service để kiểm tra xem dịch vụ có đang chạy hay không.
    • hình ảnh:
    • dịch vụVí dụThatWorksForMe
    • howToStartTheServiceCommands
    • nếu tất cả giải pháp đó không hoạt động thì có thể có vấn đề với loại tệp - kiểm tra giải pháp tại đây giải phápForFileTypeError
Nicola avatar
lá cờ cn
Cảm ơn rất nhiều bạn của tôi. Bạn làm cho cuộc sống của tôi dễ dàng hơn nhiều. Đây là giải pháp hoàn hảo.
CrazyTux avatar
lá cờ us
chào mừng bạn, một lần nữa tôi đoán có nhiều giải pháp có thể tốt hơn, nhưng điều đó sẽ hiệu quả, nếu nó hoạt động, bạn có thể chấp nhận câu trả lời bằng cách nhấp vào V gần trường câu trả lời của tôi.
CrazyTux avatar
lá cờ us
tôi vừa tìm thấy chủ đề này có thể hữu ích và có thể tốt hơn sau đó là câu trả lời của tôi https://askubuntu.com/questions/168033/how-to-set-static-routes-in-ubuntu-server?rq=1
Nicola avatar
lá cờ cn
Vì vậy, tôi lại ở đây. Kịch bản tôi đã tạo như bạn đề xuất hoạt động hoàn hảo. Vấn đề duy nhất là khi khởi động, dịch vụ sẽ không bắt đầu. Thông qua Journalctl, tôi phát hiện ra rằng systemd không khởi động được dịch vụ vì Assignment outside of section. Bỏ qua". Tôi không biết điều gì đã xảy ra. Tập lệnh tôi tạo tôi đã thay đổi quyền sở hữu thành root. Nếu tôi chạy thủ công thì nó hoạt động nhưng systemd sẽ không khởi động nó như một dịch vụ.
CrazyTux avatar
lá cờ us
Có hai giải pháp khả thi: giải pháp được khuyến nghị là khắc phục dịch vụ. (Bạn có thể gửi dịch vụ bạn đã thực hiện để tôi có thể xem qua anh ấy, vui lòng xóa thông tin cá nhân của bạn), một cách khác ưu tiên nhưng hoạt động, là sử dụng crontab để chạy tập lệnh.
Nicola avatar
lá cờ cn
Xin chào và cảm ơn bạn đã quay lại với tôi. Đây là cách tệp dịch vụ trông giống như: --------------------------------------------- Mô tả = iprules_service Sau=mạng.mục tiêu StartLimitIntervalSec=0 [Dịch vụ] Loại = đơn giản Khởi động lại = luôn luôn Khởi động lạiSec=1 Người dùng=nick ExecStart=/usr/local/sbin/iprules.sh [Cài đặt] WantedBy=multi-user.target ------------------------------------ Tệp *.sh hoạt động tốt vì tôi có thể khởi động thủ công bằng sudo mà không gặp vấn đề gì Tôi thích giải pháp này vì thanh lịch hơn crontab. Hop tôi sẽ tìm ra nó bằng cách nào đó. Ty rất nhiều
CrazyTux avatar
lá cờ us
Bây giờ tôi sẽ chỉnh sửa câu trả lời của mình và hy vọng điều đó sẽ phù hợp với bạn, tôi chỉ chạy dịch vụ trên vps của mình và nó đang chạy hoàn hảo.
Nicola avatar
lá cờ cn
NÓ ĐÃ LÀM VIỆC!! Cảm ơn bạn rất nhiều vì sự kiên nhẫn của bạn. Tôi nợ bạn một cái.
Điểm:0
lá cờ cn

Bạn chắc chắn có thể làm điều này trong Netplan. Tôi vừa làm điều đó và xác nhận sự kiên trì sau khi khởi động lại. Trang web chính thức của Netplan trang ví dụ cho thấy nhiều ví dụ về điều này.

Ví dụ:

  1. Chỉnh sửa tệp cấu hình netplan của bạn (nằm trong /etc/netplan/)

  2. Định vị giao diện nơi bạn muốn định tuyến (ví dụ: eth0)

  3. Xác định vị trí phần địa chỉ

  4. Thêm từ khóa tuyến đường và chi tiết tuyến đường trong phần địa chỉ

    tuyến đường:
       - đến: mặc định
         thông qua: 1.1.1.254
    
  5. Lưu và đóng

  6. Nhập: tạo sudo netplan (và nhấn Enter)

  7. Nhập: áp dụng sudo netplan (và nhấn Enter)

  8. Kiểm tra tuyến đường của bạn bằng cách ping một IP đã biết trên mạng mục tiêu

Zanna avatar
lá cờ kr
Sẽ thật tuyệt nếu bạn có thể thêm một số hướng dẫn cụ thể hơn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.