Sửa đổi mục nhập tuyến hiện có trong linux


11

Lệnh sửa đổi số liệu của một mục tuyến hiện có trong linux là gì? Tôi có thể thay đổi cổng của một mục hiện có bằng cách sử dụng lệnh "thay đổi tuyến đường ip" như dưới đây nhưng không thể thay đổi số liệu. Có lệnh nào khác cho điều đó không?

route –n
40.2.2.0        30.1.3.2        255.255.255.0   eth2

ip route change 40.2.2.0/24 via 30.1.2.2

route -n
40.2.2.0        30.1.2.2        255.255.255.0   eth1

Đây là trang web có các lệnh chỉnh sửa địa chỉ IP bằng lệnh ifconfig. Tôi không biết tất cả các lệnh ngoài đỉnh đầu, nhưng hy vọng trang này sẽ giúp bạn. tecmint.com/ifconfig-command-examples
Nicholas Awesomepants

1
Xóa tuyến đường và sau đó thêm lại tuyến đường, trừ khi họ đã sửa lỗi lkml.iu.edu/hypermail/linux/net/0504.3/0017.html
thrig

Câu trả lời:


7

Như đã lưu ý trong một nhận xét cho câu hỏi, trích dẫn một tin nhắn trong danh sách gửi thư linux-net: "Không thể thay đổi số liệu / mức độ ưu tiên [...] Đây là một giới hạn của giao thức hiện tại [...]."
Cách duy nhất là xóa tuyến đường và thêm một tuyến mới.

Điều này được thực hiện bằng cách sử dụng routelệnh, ví dụ:

sudo route add -net default gw 10.10.0.1 netmask 0.0.0.0 dev wlan0 metric 1

Trang chủ Debian cho lệnh lộ trình


4
Câu hỏi không phải là làm thế nào để thêm một tuyến đường với một số liệu nhất định; OP muốn thay đổi số liệu trên một tuyến đường hiện có (không xóa và thêm lại tuyến đường).
András Korn

4
Rõ ràng là bạn chưa đọc bình luận trong câu hỏi liên kết đến email cho thấy rằng số liệu không thể thay đổi : The metric/priority cannot be changed [...] This is a limitation of the current protocol[...]. Cách duy nhất là xóa tuyến đường và thêm một tuyến mới.
ngày

7
Tôi biết số liệu không thể thay đổi. Câu trả lời của bạn vẫn không trả lời câu hỏi - có thể chỉ ra, trong câu trả lời, chỉ có thể thay đổi số liệu bằng cách xóa và thêm lại tuyến đường?
András Korn

16

(Kết hợp nhiều ý kiến ​​khác nhau thành một câu trả lời)

Hiện tại, không thể sửa đổi số liệu của tuyến đường. Như một thông báo năm 2005 về trạng thái LKML :

... không được chỉ định. Đây là một hạn chế của giao thức hiện tại và có thể là một ý tưởng tốt để thay đổi điều này, tuy nhiên nó không tầm thường [...]

Điều này dường như áp dụng cả cho ip route changeip route replace- kết quả trước đây gây ra lỗi cho tôi, trong khi cái sau tạo ra một tuyến bổ sung như quảng cáo (trang man của nó replacesẽ thay thế hoặc tạo tuyến). Điều này phù hợp với kernel đáp ứng với ENOENT và ip route replacetheo dõi yêu cầu tạo tuyến.


Vì vậy, giải pháp là xóa tuyến đường hiện có và thêm tuyến mới. ví dụ

ip route del 40.2.2.0/24 via 30.1.2.2
ip route add 40.2.2.0/24 via 30.1.2.2 metric 1234

vâng, đã bị cắn bởi vấn đề này trong vài tháng qua ... khi Brian Cantrill tiếp tục nói về Linux: Đó là một điều tiến triển với hội chứng NIH (không được phát minh ở đây) ...
Hvisage

@Hvisage bạn có thể giải thích? Có công cụ nào cho phép thay đổi số liệu mà không phải xóa nó không?
Braiam

@Braiam Đó là một tiêu cực, như trong: KHÔNG tồn tại công cụ như vậy. theo câu trả lời. Nếu bạn tham khảo các trích dẫn Bryan Cantrill của tôi, thì đó là nơi tôi tin vào youtube.com/watch?v=wTVfAMRj-7E
Hvisage

2

ifmetric sẽ cho phép bạn thay đổi số liệu tuyến đường của mình một cách nhanh chóng, dựa trên giao diện mà các tuyến đường bạn muốn thay đổi đang đi qua.

Sử dụng

ifmetric <iface> [<metric>]

Ví dụ: sử dụng ifmetric tun0 12để thay đổi số liệu thành 12 cho tất cả các tuyến đi qua tun0.


4
Chào! Tốt nhất nên đưa ra một ví dụ hoạt động về cách sử dụng lệnh để có được kết quả mà câu hỏi yêu cầu.
dhag

Vâng, nó thực sự sẽ. Cảm ơn.
AeroClassics
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.