關於linux的新增永久靜態路由的static-routes方法
一:使用 route 命令新增
使用route 命令新增的路由,機器重啟或者網路卡重啟後路由就失效了,方法:
//新增到主機的路由
# route add –host 192.168.1.11 dev eth0
# route add –host 192.168.1.12 gw 192.168.1.1
//新增到網路的路由
# route add –net 192.168.1.11 netmask 255.255.255.0 eth0
# route add –net 192.168.1.11 netmask 255.255.255.0 gw 192.168.1.1
# route add –net 192.168.1.0/24 eth1
//新增預設閘道器
# route add default gw 192.168.2.1
//刪除路由
# route del –host 192.168.1.11 dev eth0
二:在linux下設定永久路由的方法:
1.在/etc/rc.local裡新增
方法:
route add -net 192.168.3.0/24 dev eth0
route add -net 192.168.2.0/24 gw 192.168.2.254
2.在/etc/sysconfig/network裡新增到末尾
方法:GATEWAY=gw-ip 或者 GATEWAY=gw-dev
3./etc/sysconfig/static-routes : (沒有static-routes的話就手動建立一個這樣的檔案)
any net 192.168.3.0/24 gw 192.168.3.254
any net 10.250.228.128 netmask 255.255.255.192 gw 10.250.228.129
4.開啟 IP 轉發:
# echo "1" >/proc/sys/net/ipv4/ip_forward (臨時)
# vi /etc/sysctl.conf --> net.ipv4.ip_forward=1 (永久開啟)
這裡並沒有錯誤的地方,只不過之前沒有接觸對這些引數沒什麼想法,這次正好研究了下,大概瞭解了下沒個引數的意思。
首先從最簡單的是route add方法:
route add這個是新增路由的命令,這個沒什麼好說的,然後是後面的-host和net引數,根據緊跟引數後面的資訊可以發現host指的是新增一個主機到路由中,net是新增一個網段到路由中。在後面的引數是dev和gw,字面理解加上後面緊跟的值判斷,dev表示這個host或者這段net走的是那個網口,gw是gateway,自然是透過哪個閘道器了。對這裡為何指定網口或者指定閘道器都行呢,我的認識是這樣的,網口上配置有閘道器的資訊,指定的網口其實最終還是去讀取這個網口對應的閘道器資訊,等效於指定gw引數。不過指定網口一般是由於有多個網路環境的情況,如果網口沒有指定閘道器,會去讀取預設的閘道器,所以這裡一般要求把網口的閘道器資訊配置上去,在linux下很多時候閘道器資訊並不是配置在網口的配置檔案,比如:/etc/sysconfig/network-scripts/ifcfg-eth0 檔案裡面,而是在/etc/sysconfig/network這裡面,所以在用dev引數的時候需要小心這點,儘可能透過指定gw的方式。
為什麼會介紹到route add方法,因為後面會有用到。現在回到主題,關於static-routes的設定。網上一般的都是寫著:
any net 192.168.3.0/24 gw 192.168.3.254
設定的都是整個網段的,但如果是單個主機怎麼設定呢?同時從廠家那邊給了一個指令碼是:
eth0 x.x.x.x netmask 255.255.255.192 gw x.x.x.x
看上去也很對的樣子,但是執行發現netstat -an裡面看不到新增的資訊,完全不行。
然後我們在看下static-routes這個檔案的作用,根據網上的說法,static-routes其實在被network這個指令碼呼叫的,開啟這個指令碼:
/etc/rc.d/init.d/network
裡面有寫到:
# Add non interface-specific static-routes.
if [ -f /etc/sysconfig/static-routes ]; then
grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
/sbin/route add -$args
done
fi
network在執行的時候到static-routes裡面尋找any開頭的行,然後執行
/sbin/route add -$args 相當於手動執行了route add指令碼,那後面事情就簡單了,回到了手動執行的方式,根據前面的說明,正確的指令碼就是:
any host 10.0.0.10 gw 192.168.1.1
network執行的時候把any去掉,獲取後面的引數:host 10.0.0.10 gw 192.168.1.1
然後執行route add -host 10.0.0.10 gw 192.168.1.1
注意這裡host前面的-是network自帶的,不需要配置到static-routes檔案中。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15797451/viewspace-1255352/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux新增永久靜態路由資訊Linux路由
- suse 11 Linux 靜態路由的新增方法Linux路由
- LINUX新增靜態路由Linux路由
- mac/linux 新增靜態路由MacLinux路由
- Centos下新增靜態路由(臨時和永久有效)的操作記錄CentOS路由
- Linux-靜態路由相關配置Linux路由
- linux下新增路由的方法Linux路由
- windows 新增和刪除靜態路由Windows路由
- 關於php中靜態方法,靜態屬性的一些淺見PHP
- 靜態路由和動態路由的比較路由
- windows 下共用外網與內網的靜態路由新增Windows內網路由
- 靜態路由路由
- 靜態路由和動態路由路由
- 《Linux系統靜態路由和火牆路由》Linux路由
- 關於多執行緒訪問靜態方法的問題執行緒
- 關於Play框架的靜態檔案框架
- Linux 設定靜態路由表Linux路由
- 靜態ip設定路由器的方法是什麼路由器
- Java的方法靜態方法Java
- 靜態ip登陸網路時設定路由器的方法路由器
- Object上的靜態方法Object
- static靜態方法的使用
- net 靜態方法與非靜態方法
- 靜態路由原理與配置路由
- 靜態路由綜合實驗路由
- 關於php生成靜態問題PHP
- centos8.0配置靜態IP詳解及永久關閉防火牆CentOS防火牆
- 關於抽象類與靜態類的初步瞭解抽象
- Linux新增路由Linux路由
- linux配置靜態路由解決網路問題Linux路由
- Linux靜態路由是什麼?UG代表什麼?Linux路由
- 關於如何在Python中使用靜態、類或抽象方法的權威指南Python抽象
- 關於靜態引數和動態引數
- PHP 中 static 靜態屬性和靜態方法的呼叫PHP
- PHP類的靜態(static)方法和靜態(static)變數PHP變數
- 靜態方法
- 靜態變數與靜態方法變數
- Linux下把靜態庫編譯進PHP的方法Linux編譯PHP