欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何在Linux中route?add命令添加路由(Linux?route)

 更新時間:2024年06月15日 10:57:57   投稿:yin  
route?add命令是用于管理Linux操作系統(tǒng)網(wǎng)絡(luò)路由,允許用戶添加、刪除或修改網(wǎng)絡(luò)路由表中的條目,在Linux系統(tǒng)上添加靜態(tài)路由,靜態(tài)路由是手動配置的路由,它指定了數(shù)據(jù)包從一個網(wǎng)絡(luò)到達另一個網(wǎng)絡(luò)的路徑,通過添加靜態(tài)路由,可實現(xiàn)網(wǎng)絡(luò)分段、轉(zhuǎn)發(fā)和通信等

route add命令是一個用于管理Linux操作系統(tǒng)網(wǎng)絡(luò)路由的命令。它允許用戶添加、刪除或修改網(wǎng)絡(luò)路由表中的條目。route add命令用于在Linux系統(tǒng)上添加靜態(tài)路由。靜態(tài)路由是手動配置的路由,它指定了數(shù)據(jù)包從一個網(wǎng)絡(luò)到達另一個網(wǎng)絡(luò)的路徑。通過添加靜態(tài)路由,可實現(xiàn)網(wǎng)絡(luò)分段、轉(zhuǎn)發(fā)和通信等功能。

使用 ip 添加路由

這是最簡單的方式。

<network_ip>/<cidr> 是希望能到達的網(wǎng)絡(luò),<gateway_ip> 是這條路由所使用的網(wǎng)關(guān)。若不指定所用的網(wǎng)卡設(shè)備,則會自動選擇電腦上的第一個網(wǎng)卡(不包括 loopback)。若要指定設(shè)備,可以在命令后面指明:

$ ip route add <network_ip>/<cidr> via <gateway_ip>
?
# 例:
$ ip route add 10.0.3.0/24 via 10.0.3.1

這里用連通兩個 LAN 來舉例:本網(wǎng)絡(luò)拓撲中有三個 Linux 主機:

  • IP 地址為 10.0.2.2/24 的 Ubuntu 主機
  • IP 地址為 10.0.3.2/24 的 Ubuntu 主機
  • 作為上述兩個主機所在網(wǎng)絡(luò)的路由器的 RHEL8 主機

由于這兩個 Ubuntu 主機在不同的子網(wǎng)中(10.0.2.0 和 10.0.3.0),而它們的 ping 命令又是通過各自的默認網(wǎng)關(guān)向外發(fā)出請求,因此兩個主機目前并不能 ping 通。

要查看當前主機(10.0.2.2)的路由,可以使用 ip route (或簡寫為 ip r )

譯注:
dev enp0s3 指本條路由對應(yīng)的網(wǎng)卡設(shè)備
proto 指協(xié)議 "protocol",代表該條路由的路由協(xié)議(routing protocol)。其通常有如下幾個值:
- redirect - 該路由是由 ICMP 重定向添加的
- kernel - 該路由是在自動配置(autoconfiguration)時,由內(nèi)核添加的
- boot - 該路由是在啟動過程中配置的,會在路由守護進程(routing daemon)啟動時清除
- static - 該路由是由系統(tǒng)管理員手動添加的,會覆蓋動態(tài)路由(dynamic routing)。路由守護進程將按照它們的值運行,而且可能會把這些路由發(fā)給 peers - ra - 該路由是由路由發(fā)現(xiàn)協(xié)議(Router Discovery protocol)添加的
scope 指本條路由到達目的地網(wǎng)絡(luò)的距離
- host - 該條路由的目的地地址為 localhost
- link - 該條路由的目的地地址為本地網(wǎng)絡(luò)(local network)
- universe - 該條路由的目的地地址在一跳之外(one hop away)
src 指使用本條路由發(fā)送數(shù)據(jù)時要經(jīng)由的網(wǎng)絡(luò)接口 IP 。這里的意思是說發(fā)往 10.0.2.0/24 網(wǎng)絡(luò)的包都會從 10.0.2.2 地址的網(wǎng)卡發(fā)出。
設(shè)置方式例如: ip route add 78.22.45.0/24 via 10.45.22.1 src 10.45.22.12這樣新創(chuàng)建的路由就是:經(jīng)由 10.45.22.1 發(fā)往 78.22.45.0/24 網(wǎng)絡(luò)的數(shù)據(jù)包,都會從 10.45.22.12 地址的網(wǎng)卡發(fā)出。但注意這只能影響真正發(fā)出這個包的主機,無法影響轉(zhuǎn)發(fā)——畢竟幫別的主機轉(zhuǎn)發(fā)包,肯定不能把人家 IP 包里的源地址給改了(當然 NAT 就是完全另外一回事了)

這個就是 Linux 系統(tǒng)的路由表,每個電腦都有一個。路由器會管理很多的路由。

接下來我們一條一條看看這三條路由

  • 默認 情況下,對網(wǎng)絡(luò)發(fā)出的數(shù)據(jù)會被轉(zhuǎn)發(fā)到本地默認網(wǎng)關(guān) 10.0.2.1
  • 除非 數(shù)據(jù)是發(fā)往 10.0.2.0/24 網(wǎng)絡(luò)的。如果是,則通過默認物理鏈路發(fā)送(比如 CAT 網(wǎng)線)到本地網(wǎng)絡(luò)
  • 除非 數(shù)據(jù)是發(fā)往 169.254.0.0/16 網(wǎng)絡(luò)的。如果是,則將通過默認物理鏈路發(fā)送到本地網(wǎng)絡(luò)
169.254.0.0/16 地址被稱為 APIPA (用于自動 IP 地址尋址 - Automatic IP Address Addressing)。這是系統(tǒng)在無法連接到網(wǎng)絡(luò)上 DHCP 服務(wù)器時使用的默認地址

在 10.0.2.2 主機當前的路由配置下(也就是上面圖中的),要發(fā)往 10.0.3.2/24 的數(shù)據(jù)都會被轉(zhuǎn)發(fā)給 10.0.2.1 路由器

然而,這個路由器會把我們發(fā)過去的數(shù)據(jù)再轉(zhuǎn)發(fā)到 10.0.3.0/24 網(wǎng)絡(luò)嗎?

在路由器上執(zhí)行一下 ip r 即可知道答案:

這里只有到 10.0.2.0/24 網(wǎng)絡(luò)的路由,顯然是有問題的。因此我們需要添加路由規(guī)則

$ ip route add 10.0.3.0/24 via 10.0.3.1

現(xiàn)在再 ping 就應(yīng)該能通了

在 Ubuntu 上配置永久路由

有三種方式:

  • 將新路由添加進 NetworkManager 配置文件
  • 添加進 Netplan YAML 配置文件
  • 添加進 /etc/network/interfaces 配置文件(較老版本系統(tǒng))

NetworkManager

修改 /etc/NetworkManager/system-connections 目錄下的連接文件。該文件下會有以當前系統(tǒng)中網(wǎng)絡(luò)接口命名的配置文件

在網(wǎng)絡(luò)配置文件的 IPv4 部分添加一個 route1 屬性

使用下面的命令來讓設(shè)置生效

Netplan

Netplan 是一個 ubuntu 獨占的工具,但用起來很簡單

打開對應(yīng)的配置文件

$ sudo vi /etc/netplan/<configuration_file>.yaml

/etc/network/interfaces

如果發(fā)行版使用的是 ifup 和 ifdown 管理網(wǎng)絡(luò)接口,那么可以修改 /etc/network/interfaces 文件來添加路由:

$ sudo vi /etc/network/interfaces
?
auto eth0
iface eth0 inet static
      address 10.0.2.2
      netmask 255.255.255.0
      up route add -net 10.0.3.0 netmask 255.255.0.0 gw 10.0.2.1

在 RHEL / CentOS 上添加永久路由配置

需要在 /etc/sysconfig/network-scripts 目錄中創(chuàng)建一個名為 route-<device> 的配置文件

使用 nmcli

$ sudo nmcli connection modify <interface_name> +ipv4.routes "<network_ip> <gateway_ip>" 

例如,添加一條上文中講過的路由:

$ sudo nmcli connection modify enp0s3 +ipv4.routes "10.0.3.0/24 10.0.3.1"

執(zhí)行下面的命令生效:

$ sudo nmcli connection reload

解決互聯(lián)網(wǎng)連接問題

假設(shè)你用來連接互聯(lián)網(wǎng)的路由器是 192.168.178.1/24

檢查當前的路由表,就很容易猜出來無法連接網(wǎng)絡(luò)的原因了。思路如下:

  • 要到達的 IP 在我當前的子網(wǎng)內(nèi)嗎?
  • 若在,則不用通過路由器就能訪問,ARP 和以太網(wǎng)就能實現(xiàn)了
  • 若不在,則需要確保自己的電腦有能夠到達聯(lián)網(wǎng)路由器的路由

首先要理出你所在網(wǎng)絡(luò)的架構(gòu),如下圖

無論解決什么網(wǎng)絡(luò)連接問題,都可以從路由下手:我的電腦有沒有到達目標電腦的路由?

在我和目標地址之間的計算機和路由器,都有沒有正確配置為可以為我進行路由?

如果能夠到達目標地址,那這個目標地址發(fā)回來的信息能否到達我的電腦?

能夠解決這些問題,網(wǎng)絡(luò)連接基本也就沒問題了

附加命令說明

1、添加網(wǎng)絡(luò)路由

route add -net 目標網(wǎng)段 網(wǎng)關(guān) [設(shè)備]

例如,將目標網(wǎng)絡(luò)192.168.1.1/24的數(shù)據(jù)包通過網(wǎng)關(guān)192.168.1.1進行路由:

route add -net 196.168.1.0/24 gw 192.168.1.1

2、添加主機路由

route add -host 目標主機地址 網(wǎng)關(guān) [設(shè)備]

例如:將單個主機192.168.1.100的數(shù)據(jù)包通過網(wǎng)關(guān)192.168.1.1進行路由:

route add -host 192.168.1.100 gw 192.168.1.1

3、指定網(wǎng)絡(luò)設(shè)備

在某些情況下,可能需要指定要使用的網(wǎng)絡(luò)設(shè)備。例如:

route add -net 192168.1.0/24 gw 192.168.1.1 dev eth0

4、查看路由表

可以使用route -n命令查看當前路由表

route -n

5、刪除路由

如果不再需要路由,可以使用route del命令刪除它:

route del 目標網(wǎng)關(guān) [設(shè)備]

總結(jié)

route add命令是Linux系統(tǒng)中管理網(wǎng)絡(luò)路由的重要工具。通過使用該命令,可以方便地添加、刪除和修改路由條目,以及查看和永久設(shè)置路由信息。掌握routeadd命令,可以更好地管理和配置Linux操作系統(tǒng)的網(wǎng)絡(luò)連接。

到此這篇關(guān)于如何在Linux中route add命令添加路由(Linux route)的文章就介紹到這了,更多相關(guān)Linux中route add命令添加路由內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論