linux下添加路由的方法:
一:使用 route 命令添加
使用route 命令添加的路由,機器重啓或者網卡重啓後路由就失效了,方法:
//添加到主機的路由
# route add –host 192.168.168.110 dev eth0
# route add –host 192.168.168.119 gw 192.168.168.1
//添加到網絡的路由
# route add –net IP netmask MASK eth0
# route add –net IP netmask MASK gw IP
# route add –net IP/24 eth1
//添加默認網關(馬連窪)
# route add default gw IP
//刪除路由
# route del –host 192.168.168.110 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.3.254
2.在/etc/sysconfig/network裏添加到末尾
方法:GATEWAY=gw-ip 或者 GATEWAY=gw-dev
3./etc/sysconfig/static-router :
any net x.x.x.x/24 gw y.y.y.y
-----------------------
異常:linux
虛擬機中從新配置好了網卡信息,可是訪問不到局域網中的另一個網段。ubuntu
緣由:服務器
雖然在網卡信息中添加了新的網關信息,可是在靜態路由列表(route -n)中沒有設置其爲默認。網絡
解決:spa
添加路由(臨時,永久)rest
linux下靜態路由修改命令
方法一:
添加路由
route add -net 192.168.0.0/24 gw 192.168.0.1
route add -host 192.168.1.1 dev 192.168.0.1
刪除路由
route del -net 192.168.0.0/24 gw 192.168.0.1router
add 增長路由
del 刪除路由
-net 設置到某個網段的路由
-host 設置到某臺主機的路由
gw 出口網關 IP地址
dev 出口網關 物理設備名ip
增長默認路由ci
route add default gw 192.168.0.1
默認路由一條就夠了路由
route -n 查看路由表
方法二:
添加路由
ip route add 192.168.0.0/24 via 192.168.0.1
ip route add 192.168.1.1 dev 192.168.0.1
刪除路由
ip route del 192.168.0.0/24 via 192.168.0.1
add 增長路由
del 刪除路由
via 網關出口 IP地址
dev 網關出口 物理設備名
增長默認路由
ip route add default via 192.168.0.1 dev eth0
via 192.168.0.1 是個人默認路由器
查看路由信息
ip route
保存路由設置,使其在網絡重啓後任然有效
在/etc/sysconfig/network-script/目錄下建立名爲route-eth0的文件
vi /etc/sysconfig/network-script/route-eth0
在此文件添加以下格式的內容
192.168.1.0/24 via 192.168.0.1
重啓網絡驗證
附:在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 (永久開啓)
若是在rc.local中添加路由會形成NFS沒法自動掛載問題,因此使用static-routes的方法是最好的。不管重啓系統和service network restart 都會生效
按照linux啓動的順序,rc.local裏面的內容是在linux全部服務都啓動完畢,最後才被執行的,也就是說,這裏面的內容是在netfs以後才被執行的,那也就是說在netfs啓動的時候,服務器上的靜態路由是沒有被添加的,因此netfs掛載不能成功。
static-routes文件又是什麼呢,這個是network腳本執行時調用的一個文件,這個文件的放置在/etc/sysconfig目錄下,在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
從這段腳本能夠看到,這個就是添加靜態路由的方法,static-routes的寫法是
any net 192.168.0.0/16 gw 網關ip
這樣的話,在啓動network腳本的時候路由就自動添加上了,又由於network是在netfs前面啓動的,天然在掛載nfs的時候就正常了。
這樣看來,若是須要添加靜態路由,使用static-routes文件要比使用rc.local好,並且當改變了網絡配置,須要重啓network腳本的 時候,相應的靜態路由是能夠自動添加上的,但這時若是使用rc.local的話,在重啓network服務的時候,本來添加好的靜態路由就消失了。
例子 虛擬機ubuntu沒法上網應該是0.0.0.0,這樣就把全部的包都掩掉了,使用下面的命令:#route del default (刪除默認路由)#route add default gw 172.16.52.1最後如此路由表纔是正常的root@yyt01:~# netstat -rKernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface172.16.52.0 * 255.255.255.0 U 0 0 0 eth0default 172.16.52.1 0.0.0.0 UG 0 0 0 eth0