(8)route命令(每周一個linux命令系列)

来源:https://www.cnblogs.com/vinter/archive/2020/03/23/12551064.html
-Advertisement-
Play Games

在linux和windows中都有路由配置的方法,在日常開發中也經常遇到,比如自己公司各個網站內部開了openvpn這種應用以後,路由配置不好有可能導致改走vpn的不走,網路卡頓甚不能正常上網 1.命令格式 看不懂不要緊,看下麵常用命令那的用法 2.常用選項和參數說明 2.1 選項說明 2.2 參數 ...


在linux和windows中都有路由配置的方法,在日常開發中也經常遇到,比如自己公司各個網站內部開了openvpn這種應用以後,路由配置不好有可能導致改走vpn的不走,網路卡頓甚不能正常上網

1.命令格式

route [-CFvnee]

       route  [-v]  [-A  family]  add  [-net|-host]  target  [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate]
              [[dev] If]

       route  [-v] [-A family] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]

       route  [-V] [--version] [-h] [--help]

看不懂不要緊,看下麵常用命令那的用法

2.常用選項和參數說明

2.1 選項說明




-C         顯示路由緩存cache。

-F         顯示發送信息

-v         詳細的處理信息。

-n         不解析名字。

-ee        使用更詳細的資訊來顯示

-V         顯示版本信息。

-net       到一個網路的路由表(常用)。

-host      到一個主機的路由表(常用)。

2.2 參數說明


add            增加路由記錄。

del            刪除路由記錄。

target         目的網路或目的主機。

gw             設置預設網關。gateway 的簡寫,後續接的是網關的IP。

mss            設置TCP的最大區塊長度(MSS),單位MB。

window         指定通過路由表的TCP連接的TCP滑動視窗大小。

dev            用於指定由哪一塊網路卡出去,後面接網卡名 eth0。

reject         設置到指定網路為拒絕訪問(不可達),避免某些到這個網路的連接超時和等待,直接返回網路不可達。

metric         躍點數

3.常用命令

3.1 添加和刪除路由

命令:route {add | del } [-net|-host] [網域或主機] netmask [mask] [gw|dev]

增加/刪除路由的相關參數:

-net         表示到為一個網域。

-host        表示到單部主機。

netmask      網路掩碼 決定一個網域的大小。

gw           gateway 的簡寫,後續接的是 IP 的數值,與 dev 不同。

dev          用於指定由哪一塊網路卡出去,後面接網卡名eth0。

  • 添加/刪除到指定網路的路由
route {add | del } -net {NETWORK-ADDRESS} netmask {NETMASK} dev {INTERFACE-NAME}

NETWORK-ADDRESS:用於指定網路地址。
NETMASK:用於指定子網掩碼。
INTERFACE-NAME:用於指定介面名稱,如eth0。

示例:
#增加或刪除到網域192.56.76.X的路由 通過eth0網卡
route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
route del -net 192.56.76.0 netmask 255.255.255.0 dev eth0

  • 添加/刪除路由到指定網路為不可達
設置到指定網路為不可達(應用場景不多)

route {add | del } -net {NETWORK-ADDRESS} netmask {NETMASK} reject

NETWORK-ADDRESS    網路地址。
NETMASK            網路掩碼。

比如你的vpn是10.8.0.X,想禁止到這個網路
例1:route add -net 10.8.0.0 netmask 255.255.255.0 reject
例2:route del -net 10.8.0.0 netmask 255.255.255.0 reject

3.2 添加/刪除預設網關

route {add | del } default gw {IP-ADDRESS} {INTERFACE-NAME}

IP-ADDRESS        用於指定網關的IP地址。
INTERFACE-NAME    用於指定網卡名稱,如eth0。

例:
1. route add default gw 192.168.1.1 dev eth0
2. route del default gw 192.168.1.1 dev eth0
3. route add default gw 192.168.233.2 dev eth1 metric 99

3.3 查詢路由信息

route 或者 route -nee

-n        不要使用通訊協定或主機名稱,直接使用 IP 或 port number。
-ee       使用更詳細的資訊來顯示。

輸出信息:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface    MSS   Window irtt
10.8.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0     0     0      0
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0     0     0      0
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0     0     0      0

參數詳解:

Destination    目標網路或目標主機。值為0.0.0.0(有時候顯示default)時,表示這個是預設網關,外出所有的數據都發到這個網關。

Gateway        網關地址,0.0.0.0 表示當前記錄對應的 Destination 跟本機在同一個網段,不需要經過網關。

Genmask        Destination的網路掩碼,Destination 是主機時設為 255.255.255.255,預設路由設置為 0.0.0.0

Flags          標記

                ● U 該路由可以使用。
                
                 
                
                ● H 該路由是到一個主機(host),也就是說,目的地址是一個完整的主機地址。如果沒有設置該標誌,說明該路由是到一個網路,而目的地址是一個網路地址:一個網路號,或者網路號與子網號的組合。
                
                 
                
                ● G 該路由是到一個網關(gateway)。如果沒有設置該標誌,說明目的地 是直接相連的。
                
                 
                
                ● R 恢復動態路由產生的表項。
                
                 
                
                ● D 該路由是由改變路由(redirect)報文創建的。
                
                 
                
                ● M 該路由已被改變路由報文修改。
                
                 
                
                ● ! 這個路由將不會被接受。

Metric         路由距離(躍點數),到達指定網路所需的中轉數,是大型區域網和廣域網設置所必需的。

Ref            路由項引用次數 。

Use            此路由項被路由軟體查找的次數。

Iface          網卡名字,例如 eth0。

4.路由匹配過程

當主機需要向某個IP地址發起通信時,它會對路由表進行匹配,以確定如何發送數據包。匹配過程如下:

  1. 把通信的目的IP地址和路由表中每一個路由項的網路掩碼進行相與計算,如果相與後的結果匹配對應路由項的網路地址,則記錄下此路由項,繼續下一條目比對

  2. 當計算完路由表中所有的路由項後,選擇記錄下的路由項中的最長匹配路由(網路掩碼中具有最多“1”位的路由項)來和此目的IP地址進行通信。

  3. 如果存在多個最長匹配路由,那麼選擇具有最低躍點數的路由項。

  4. 如果存在多個具有最低躍點數的最長匹配路由,那麼:均根據最長匹配路由所對應的網路介面在網路連接的高級設置中的綁定優先順序來決定(一般有線(eth0) > 無線 (wlan0) > 移動信號(4G))。

  5. 如果優先順序一致,則選擇最開始找到的最長匹配路由。(排在前面的路由)

  6. 匹配不到就會走預設路由

4.1 查看路由匹配過程

traceroute 功能變數名稱/ip

例如:traceroute www.baidu.com

輸出:
    traceroute to www.baidu.com (61.135.169.121), 30 hops max, 60 byte packets
 1  192.168.0.1 (192.168.0.1)  0.484 ms  0.467 ms  0.460 ms
 2  * * *
 3  100.67.69.6 (100.67.69.6)  1.011 ms  1.011 ms 100.67.69.2 (100.67.69.2)  1.031 ms
 4  61.48.75.37 (61.48.75.37)  0.996 ms  2.544 ms  2.539 ms
 5  61.135.33.197 (61.135.33.197)  5.611 ms 61.148.146.181 (61.148.146.181)  1.412 ms 61.148.157.109 (61.148.157.109)  1.154 ms
 6  61.51.115.102 (61.51.115.102)  1.405 ms 61.148.146.178 (61.148.146.178)  1.121 ms 61.51.117.2 (61.51.117.2)  1.328 ms
 7  202.106.48.18 (202.106.48.18)  2.869 ms 61.49.168.78 (61.49.168.78)  2.843 ms  2.721 ms

5.擴展:windwos下的路由命令

簡單的的操作如下,

#查看路由狀態:

route print

#只查看ipv4(ipv6)路由狀態:

route print-4(-6)

#添加路由:route add 目的網路 mask 子網掩碼 網關 METRIC 躍點數  ---- 臨時

route add 192.168.1.0 mask 255.255.255.0 192.168.1.1 METRIC 3

# 添加永久:route -p add 目的網路 mask子網掩碼 網關 METRIC 躍點數

route -p add 192.168.1.0 mask 255.255.255.0 192.168.1.1 METRIC 3

# 刪除路由:route delete 目的網路 mask 子網掩碼(如果目的網路唯一可以不寫子網掩碼)

route delete 192.168.1.0 mask 255.255.255.0


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 原文鏈接: "https://xiaoheidiannao.com/articles/Clipboard.html" 更多電腦使用技巧可以訪問 "https://xiaoheidiannao.com" 查看哦! 剪貼板是一個很方便的工具,它能讓用戶存放多個 "複製" 或者 "剪切" 的記錄,但重啟電 ...
  • 更改顯卡配置文件 在目錄 /usr/share/X11/xorg.conf.d 下新建配置文件 10 nvidia.conf,添加如下內容: 在ubuntu18.04中 將最後兩個opyion添加到相應文件中,也可以成功 更改grub啟動參數,打開/etc/default下的grub文件 將 改為 ...
  • 壓縮相關知識常見壓縮文件擴展名:*.Z:compress程式壓縮的文件*.zip:zip程式壓縮的文件*.gz:gzip程式壓縮的文件*.bz2:bzip2程式壓縮的文件*.xz:xz程式壓縮的文件*.tar:tar程式打包的文件,並沒有壓縮過*.tar.gz:tar程式打包的文件,並且經過gzip... ...
  • ContOS7開啟ssh,實現遠程連接 1、查看確認是否已經安裝ssh服務 yum list installed | grep openssh-server 有如下輸出表示已經安裝ssh服務,可以直接去第三步ssh配置。如果什麼也沒提示說明沒有安裝,需要運行第二步安裝ssh服務。 2、安裝ssh服務 ...
  • 一 Pod和SVC網路 1.1 實踐準備及原理 Docker實現了不同的網路模式,Kubernetes也以一種不同的方式來解決這些網路模式的挑戰。本完整實驗深入剖析Kubernetes在網路層是如何實現及工作的。 實驗節點架構: 如上圖所示,Kubernetes的網路模型要求每個Node上的容器都可 ...
  • nc(netcat)實用程式幾乎可用於所有涉及TCP或UDP的事情。它可以打開TCP連接,發送UDP數據包,監聽任意TCP和UDP埠,進行埠掃描,處理IPv4和IPv6。與telnet不同,nc可以很好地編寫腳本,並將錯誤消息分離為標準錯誤,而不是像telnet一樣將錯誤消息發送至標準輸出。 語 ...
  • 環境:使用jenkins通過pipeline拉取github代碼 最近在Jenkins上新建Job時,使用Pipeline流水線方式自動化發佈項目報錯具體如下: ERROR: Timeout after 10 minutes” ERROR: Error fetching remote repo 'o ...
  • pyaudio模塊讀取設備名稱來指定相應的設備進行錄音,涉及操作系統編碼、IDE解碼等問題 ...
一周排行
    -Advertisement-
    Play Games
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...