Linux:網絡指令(route)
學習自:route命令 - Linux命令大全 | linux教程
1、說明
route命令用于顯示、設置Linux網絡路由表,route命令設置的主要是靜態路由。
要實現兩個不同子網之間的通信,需要一臺連接兩個網絡的路由器,或者同時位于兩個網絡的網關來實現。
Linux系統種設置路由通常是為了解決這個問題:該linux系統在一個局域網中,局域網中有一個網關,能夠讓主機訪問互聯網,那么就要將該機器的IP設為Linux機器的默認路由。
要注意,直接通過命令行的方式添加路由,只是臨時的,重啟后失效,如果要永久生效,需要去/etc/rc.local下添加route命令。
2、用法
用法:route 選項
選項:
選項 |
說明 |
| -A | 設置地址類型(默認IPv4) |
| -C | 打印Linux核心的路由緩存 |
| -v | 詳細信息模式 |
| -n |
不進行DNS解析(不顯示域名,例如default,gateway) 直接顯示數字形式的ip地址 |
| -e | 以netstat的格式顯示路由表 |
| -net IP地址 | 到某個網絡的路由表 |
| -host IP地址 | 到某個主機的路由表 |
| add (后跟-net或-host) | 增加指定路由記錄(臨時) |
| del(后跟-net或-host) | 刪除指定路由記錄(永久) |
| Target | 目標主機或目標網絡 |
| gw 網關IP | 設置默認網關 |
| mss | 設置TCP的最大區塊長度(MSS),單位MB |
| window | 指定通過路由表的TCP連接的TCP窗口的大小 |
| dev 網卡設備名 | 路由記錄表示的網絡接口 |
例子
1、顯示當前路由
route

route -n不會進行DNS解析,比如上文的default和gateway都會代之以具體IP,速度更快

解釋:
- Destination:目的主機/網絡的IP
- Gateway:發送到的網關
- Flags:路由標志,代表當前網絡結點狀態:
- U:UP,該路由當前為啟動狀態
- H:Host,該路由為某個主機路由
- G:Gateway,該路由為某個默認路由
- D:Dynamically,該路由為動態寫入
- R:Reinstate Route,使用動態路由重新初始化的路由
- M:Modified,該路由是路由守護程序或導向器動態修改
- !:該路由為關閉狀態
- Iface:網卡名
2、添加一條路由:route add -net destIP netmask 網關地址 dev 網卡
route add -net 192.168.60.11 netmask 192.168.60.1 dev ens192
增加一條路由,到目的地址192.168.60.11,網關192.168.60.1,通過網卡ens192轉發
3、刪除一條路由:route del -net dest_IP netmask 網關 dev 網卡
route del -net 192.168.60.11 netmask 192.168.60.1 dev ens192
刪除到192.168.60.11,網關192.168.60.1,通過網卡ens192進行轉發的路由
4、添加刪除默認網關
route add default gw 192.168.60.1 route del default gw 192.168.60.1
錯誤
1)netmask doesn't match route address
不能隨意添加一個route,執行指令
route add -net 192.168.10.11 netmask 255.255.255.0 gw 192.168.10.1 dev enp0s8
時可能會報錯netmask doesn't match route address,原因是-net 后跟網段,而非某個指定的IP。如果要指定IP,應該使用host。
2)SIOCADDRT: Network is unreachable
在解決了第一個問題之后,如果單純把-net改為-host,會報錯SIOCADDRT: Network is unreachable,這是因為在添加一個新的網段時,它的出口地址應該是當前ip路由表中的當前有的地址,否則會出現這個錯誤:SIOCADDRT: 沒有那個進程。
以上兩個問題的解決思路來源:route路由失敗,為何?_格格巫 MMQ!!的博客-CSDN博客
Linux route_route: netmask doesn't match route address_格格巫 MMQ!!的博客-CSDN博客

浙公網安備 33010602011771號