解決win7、win8不能通過設置網關上網的問題

實驗室沒有硬件路由器,而是直接連網絡中心,實驗室一臺電腦作爲主機,Dr客戶端撥號上網,利用anyrouter軟路由使得實驗室都能上網。XP,Ubuntu系統下通過設置本機IP、掩碼、網關以及DNS服務器都能順利地上網,然而win7以及win8下不管怎麼設置卻始終不能上網。用各種指令(當然主要是arp啦)研究了半天,終於發現不管怎麼設置,win7win8的網關始終默認是同網段的,並且總是以.254結尾的,也就是說它默認就是連接X.X.X.254網關,而且是動態的。

  OK,總算髮現了問題,由於是在同一網段中,那便設置地址也就是IP以及對應的Mac就行了。首先想到用arp綁定.254的IP到開啓anyrouter電腦的Mac地址,總是拒絕訪問,無奈,只能用netsh命令啦:

netsh interface ipv4 show interface  查看接口參數,主要就是看本地連接/以太網(win8下的稱呼)的Index索引號,一般是11,也有12的,

netsh interface ipv4 set neighbors Index “IP” “Mac” store=persistent/active  Index就是本地連接的索引號,IP就是那網關.254,Mac就是安裝軟路由的Mac地址/LinkLayerAddress(win8下稱呼),store爲存儲狀態,persistent爲永久生效(默認值),active將在下一次啓動時有效。

以上命令win7win8都可以使用,當然最好以管理員身份運行,使用後可以看到arp裏面.254的IP變爲了靜態類型。

在win8下會提示netsh在以後的版本中可能會廢除,建議使用TCP/IP的Powershell,類似的命令爲:

Get-NetIPInterface  查看接口

Set-Netneighbor -IPAddress X.X.X.254 -InterfaceIndex 11/12 -LinkLayerAddress xxxxxxxxxxxx  //注意不要-連接

其中會出現一個問題,那就是Set-Netneighbor命令只能對permanent類型的IP使用,而.254在arp裏面顯示爲動態的,爲stale狀態,也就是說這個命令不能綁定非靜態的鄰域IP和Mac地址,具體解決方法:

考慮使用New-NetNeighbor -IPAddress X.X.X.254 -InterfaceIndex 11/12 -LinkLayerAddress xxxxxxxxxxxx

這樣生成的IP-Mac的State就是Permanent。當然netsh命令下有類似的add neighbors命令,應該也可以成功新建鄰域IP-Mac對。至此,不管使用舊版本的netsh還是Powershell中的TCP/IP指令,都能正確的在win7/win8下通過網關上網~~~


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章