ping問題解決方法_20190305

文 : 韋東山
我們深受windows、ubuntu、開發(fā)板之間互PING問題的困擾,
特別為這個問題錄了視頻(https://v.qq.com/x/page/h0505eg7z0m.html)
無奈還是有很多很多同學不看視頻直接發(fā)問,或者說看了視頻也解決不了問題,所以我再試圖用幾頁文檔解決這個問題。
這是ping問題解決方法最新文檔,遇到問題首先看這里,也希望這是最后一個文檔。
根據(jù)網(wǎng)線不同的連接情況大致可以分為3種情況:
一、 Windows通過WIFI上網(wǎng),開發(fā)板離無線路由器很近
二、 Windows通過WIFI上網(wǎng),開發(fā)板離無線路由器很遠
三、 Windows不使用WIFI網(wǎng)卡
每種情況都可以分為網(wǎng)線連接,VMWare里選擇的網(wǎng)卡,設置IP和驗證 四部分,下面我們分別來講解,請大家根據(jù)自己的具體情況來選擇。
?一. Windows通過WIFI上網(wǎng),開發(fā)板離無線路由器很近
1.1 網(wǎng)線連接
如下圖接線(開發(fā)板的網(wǎng)線,一定接到路由器,不要接到電腦):
如果你只想讓Windows和Ubuntu互通,可以不接開發(fā)板的網(wǎng)線。

1.2? VMWare里選擇WIFI網(wǎng)卡
如果你只想讓Windows和開發(fā)板互通,可以不啟動VMWare,當然也就不用去設置VMWare和Ubuntu。
很多電腦有多網(wǎng)卡,比如WIFI網(wǎng)卡、有線網(wǎng)卡。
在這種連接情況下,VMWare必須選擇橋接模式、必須選擇WIFI網(wǎng)卡。
如下圖操作(VMware版本不同,菜單可能有所差別,請自行尋找;新版vmware player沒有菜單項去選擇網(wǎng)卡,請安裝對應的pro版本):

1.3? 設置IP
? Windows的WIFI網(wǎng)卡IP、ubuntu的IP、開發(fā)板的IP,三個IP必須處于同一網(wǎng)段(何為同一網(wǎng)段?就是前面的IP都一樣,就最后面3位不同)。
a. Windows的IP一般都是自動分配的,在命令行執(zhí)行:ipconfig,確定它的IP,
假設為192.168.1.10
b. Ubuntu的IP需要手工設置,在Ubuntu的終端執(zhí)行:ifconfig ,確定網(wǎng)卡名,
可能是eth0、eth4、ens33,假設是ens33
再執(zhí)行:sudo? ifconfig? ens33? 192.168.1.100? ?// 配置網(wǎng)卡IP為192.168.1.100
c. 開發(fā)板運行UBOOT時、運行LINUX時,
它們的IP需要分別設置,這兩個階段的IP沒有聯(lián)系,
這兩個階段不會同時運行,所以它們的IP可以相同。
如果開發(fā)板正在運行UBOOT,執(zhí)行以下命令設置IP:
set? ipaddr? 192.168.1.123
save
如果開發(fā)板正在運行LINUX,執(zhí)行以下命令設置IP:
echo? “ifconfig? ?eth0? 192.168.1.123”? >> /etc/init.d/rcS
reboot
1.4? 驗證
① 驗證Windows和Ubuntu互通:
在Windows命令行執(zhí)行:
ping? 192.168.1.100? ? // ping Ubuntu,如果有數(shù)據(jù)返回就表示通了,如下圖:

注意:Windows ping Ubuntu 不通可以執(zhí)行如下命令關閉Ubuntu防火墻在嘗試(下同,不在重復):
sudo ufw disable // 輸入密碼123456再回車
反過來ping如果不通可以嘗試關閉Windows防火墻(具體請百度,下同,不在重復)?
② 驗證Windows和“正在運行uboot的開發(fā)板”互通(第②③步,只要做一個就可以):
注意:UBOOT不回應PING數(shù)據(jù),所以你是PING不通UBOOT的,
只能在UBOOT去PING別的電腦。

如果顯示“alive”就表示通了。
有時候Windows有防火墻導致PING不通,可以嘗試去PING ubuntu的IP。
③ 驗證Windows和“正在運行Linux的開發(fā)板”互通(第②、③步,只要做一個就可以):
類似第①步,在Windows命令行下PING開發(fā)板的IP。
注意,開發(fā)板必須啟動進入了Linux,它才能被Windows PING通。
二.? Windows通過WIFI上網(wǎng),開發(fā)板離無線路由器很遠
2.1? 連接網(wǎng)線
2.1.1 Windows電腦和開發(fā)板的網(wǎng)線,都接到另一個集線器或路由器
強烈建議買一個網(wǎng)絡集線器,很便宜的,20塊錢之內(nèi);土壕可以買一個路由器代替集線器。
如下圖接線(開發(fā)板和電腦的網(wǎng)線,接到網(wǎng)絡集線器,開發(fā)板和電腦不要用網(wǎng)線直連):
如果你只想讓Windows和Ubuntu互通,請看上一章(第1章):不需要接開發(fā)板網(wǎng)線,不需要買集線器。

2.1.2 電腦和開發(fā)板用網(wǎng)線直連(不建議)
我不想再買網(wǎng)絡集線器了(強烈建議不要這樣做,否則使用過程中麻煩時不時發(fā)生):
如果你只想讓Windows和Ubuntu互通,請看上一章(第1章):不需要接開發(fā)板網(wǎng)線,不需要買集線器。

電腦和開發(fā)板的網(wǎng)線直連時,
這是要特殊對待的情況!
如果電腦和開發(fā)板用網(wǎng)線直連,開發(fā)板上的程序,必須使能網(wǎng)卡!
否則,Windows里看到的有線網(wǎng)卡就有一個紅叉。
紅叉表示"斷開",
都"斷開"了你別再問我為什么PING不通。
所以,
如果電腦和開發(fā)板用網(wǎng)線直連,開發(fā)板上的程序,必須使能網(wǎng)卡:
a. 如果你要在開發(fā)板上玩UBOOT:
? ?原生UBOOT是個奇葩,
? ?它平時不使能網(wǎng)卡,
? ?只有在使用網(wǎng)絡命令那一小會,才使能網(wǎng)卡。
? ?所以,必須更換為"全程使能網(wǎng)卡的UBOOT",
? ?我們提供的JZ2440的uboot,已經(jīng)全程使能網(wǎng)卡了,
你可以在它的前2行打印信息里看到:enable Ethernet alltime
b. 如果你要在開發(fā)板上玩LINUX,
? ?這個LINUX必須有網(wǎng)卡驅(qū)動,必須配置了網(wǎng)卡,
? ?可以在開發(fā)板里執(zhí)行類似這樣的命令:
? ?ifconfig eth0 192.168.1.123?
2.2? VMWare里選擇有線網(wǎng)卡
如果你只想讓Windows和開發(fā)板互通,可以不啟動VMWare,當然也就不用去設置VMWare和Ubuntu。
很多電腦有多網(wǎng)卡,比如WIFI網(wǎng)卡、有線網(wǎng)卡。
在這種連接情況下,VMWare必須選擇橋接模式、必須選擇有線網(wǎng)卡。
如下圖操作(VMware版本不同,菜單可能有所差別,請自行尋找;新版vmware player沒有菜單項去選擇網(wǎng)卡,請安裝對應的pro版本):

2.3? 設置IP
注意注意注意:Windows中的WIFI網(wǎng)卡、有線網(wǎng)卡,它們2個IP的網(wǎng)段絕不能相同!
WIFI網(wǎng)卡的IP一般是自動分配的,一般都是192.168.1.xxx,
那么我們就把有線網(wǎng)卡IP設為 192.168.2.xxx,不能跟WIFI網(wǎng)卡在同一網(wǎng)段。
Windows的有線網(wǎng)卡IP、ubuntu的IP、開發(fā)板的IP,三個IP必須處于同一網(wǎng)段。
a. Windows的有線網(wǎng)卡IP怎么手工設置請自行百度,
假設為192.168.2.10
b. Ubuntu的IP需要手工設置,在Ubuntu的終端執(zhí)行:ifconfig ,確定網(wǎng)卡名,
可能是eth0、eth4、ens33,假設是ens33
再執(zhí)行:sudo? ifconfig? ens33? 192.168.2.100? ?// 配置網(wǎng)卡IP為192.168.2.100
c. 開發(fā)板運行UBOOT時、運行LINUX時,
它們的IP需要分別設置,這兩個階段的IP沒有聯(lián)系,
這兩個階段不會同時運行,所以它們的IP可以相同。
如果開發(fā)板正在運行UBOOT,執(zhí)行以下命令設置IP:
set? ipaddr? 192.168.2.123
save
如果開發(fā)板正在運行LINUX,執(zhí)行以下命令設置IP:
echo? “ifconfig? ?eth0? 192.168.2.123”? >> /etc/init.d/rcS
reboot
2.4? 驗證
① 驗證Windows和Ubuntu互通:
在Windows命令行執(zhí)行:
ping? 192.168.2.100? ? // ping Ubuntu,如果有數(shù)據(jù)返回就表示通了,如下圖:

② 驗證Windows和“正在運行uboot的開發(fā)板”互通(第②③步,只要做一個就可以):
注意:UBOOT不回應PING數(shù)據(jù),所以你是PING不通UBOOT的,
只能在UBOOT去PING別的電腦。

③ 驗證Windows和“正在運行Linux的開發(fā)板”互通(第②③步,只要做一個就可以):
類似第①步,在Windows命令行下PING開發(fā)板的IP。
注意,開發(fā)板必須啟動進入了Linux,它才能被Windows PING通。
三.? Windows不使用WIFI網(wǎng)卡
3.1? 連接網(wǎng)線
3.1.1 Windows通過有線網(wǎng)卡接路由器上網(wǎng),開發(fā)板離路由器很近
如果你只想讓Windows和Ubuntu互通:不需要接開發(fā)板網(wǎng)線。

3.1.2 Windows通過有線網(wǎng)卡接路由器上網(wǎng),開發(fā)板離路由器很遠
? ? 強烈建議買一個網(wǎng)絡集線器,很便宜的,20塊錢之內(nèi);土壕可以買一個路由器代替集線器。
如果你只想讓Windows和Ubuntu互通,請看3.1.1節(jié):不需要接開發(fā)板網(wǎng)線,不需要買集線器,但是電腦的網(wǎng)線必須接到路由器(這樣網(wǎng)卡才不是斷開狀態(tài),才可使用)。

3.1.3 不上網(wǎng),Windows電腦和開發(fā)板的網(wǎng)線,都接到集線器或路由器
開發(fā)板和電腦,使用網(wǎng)線連接,通過集線器或路由器互連:
如果你只想讓Windows和Ubuntu互通:不需要接開發(fā)板網(wǎng)線,但是電腦的網(wǎng)線必須接到路由器或集線器(這樣網(wǎng)卡才不是斷開狀態(tài),才可使用)。

3.1.4 電腦和開發(fā)板用網(wǎng)線直連(不建議)
我不想再買網(wǎng)絡集線器了(強烈建議不要這樣做,否則使用過程中麻煩時不時發(fā)生):
如果你只想讓Windows和Ubuntu互通,但是又沒有集線器或路由器:仍需要用網(wǎng)線連接電腦和開發(fā)板(這樣網(wǎng)卡才不是斷開狀態(tài),才可使用)。

電腦和開發(fā)板的網(wǎng)線直連時,
這是要特殊對待的情況!
如果電腦和開發(fā)板用網(wǎng)線直連,開發(fā)板上的程序,必須使能網(wǎng)卡!
否則,Windows里看到的有線網(wǎng)卡就有一個紅叉。
紅叉表示"斷開",
都"斷開"了你別再問我為什么PING不通。
所以,
如果電腦和開發(fā)板用網(wǎng)線直連,開發(fā)板上的程序,必須使能網(wǎng)卡:
a. 如果你要在開發(fā)板上玩UBOOT:
? ?原生UBOOT是個奇葩,
? ?它平時不使能網(wǎng)卡,
? ?只有在使用網(wǎng)絡命令那一小會,才使能網(wǎng)卡。
? ?所以,必須更換為"全程使能網(wǎng)卡的UBOOT",
? ?我們提供的JZ2440的uboot,已經(jīng)全程使能網(wǎng)卡了,
你可以在它的前2行打印信息里看到:enable Ethernet alltime
b. 如果你要在開發(fā)板上玩LINUX,
? ?這個LINUX必須有網(wǎng)卡驅(qū)動,必須配置了網(wǎng)卡,
? ?可以在開發(fā)板里執(zhí)行類似這樣的命令:
? ?ifconfig eth0 192.168.1.123?
3.2? VMWare里選擇有線網(wǎng)卡
如果你只想讓Windows和開發(fā)板互通,可以不啟動VMWare,當然也就不用去設置VMWare和Ubuntu。
很多電腦有多網(wǎng)卡,比如WIFI網(wǎng)卡、有線網(wǎng)卡。
在這種連接情況下,VMWare必須選擇橋接模式、必須選擇有線網(wǎng)卡。
如下圖操作(VMware版本不同,菜單可能有所差別,請自行尋找;新版vmware player沒有菜單項去選擇網(wǎng)卡,請安裝對應的pro版本):

3.3? 設置IP
Windows的有線網(wǎng)卡IP、ubuntu的IP、開發(fā)板的IP,三個IP必須處于同一網(wǎng)段。
a. 設置Windows的有線網(wǎng)卡IP:
如果有線網(wǎng)卡接到路由器,那么它的IP一般會自動分配,
可以在Windows命令行下執(zhí)行 ipconfig 查看,
假設為192.168.1.10;
如果有線網(wǎng)卡的IP沒有自動分配,可以手工設置,方法請自行百度。
也假設為192.168.1.10
b. Ubuntu的IP需要手工設置,在Ubuntu的終端執(zhí)行:ifconfig ,確定網(wǎng)卡名,
可能是eth0、eth4、ens33,假設是ens33
再執(zhí)行:sudo? ifconfig? ens33? 192.168.1.100? ?// 配置網(wǎng)卡IP為192.168.1.100
c. 開發(fā)板運行UBOOT時、運行LINUX時,
它們的IP需要分別設置,這兩個階段的IP沒有聯(lián)系,
這兩個階段不會同時運行,所以它們的IP可以相同。
如果開發(fā)板正在運行UBOOT,執(zhí)行以下命令設置IP:
set? ipaddr? 192.168.1.123
save
如果開發(fā)板正在運行LINUX,執(zhí)行以下命令設置IP:
echo? “ifconfig? ?eth0? 192.168.1.123”? >> /etc/init.d/rcS
reboot
3.4? 驗證
① 驗證Windows和Ubuntu互通:
在Windows命令行執(zhí)行:
ping? 192.168.1.100? ? // ping Ubuntu,如果有數(shù)據(jù)返回就表示通了,如下圖:

② 驗證Windows和“運行uboot的開發(fā)板”互通(第②、③步,只要做一個就可以):
注意:UBOOT不回應PING數(shù)據(jù),所以你是PING不通UBOOT的,
只能在UBOOT去PING別的電腦。

如果顯示“alive”就表示通了。
有時候Windows有防火墻導致PING不通,可以嘗試去PING ubuntu。
③ 驗證Windows和“運行Linux的開發(fā)板”互通(第②③步,只要做一個就可以):
類似第①步,在Windows命令行下PING開發(fā)板的IP。
注意,開發(fā)板必須啟動進入了Linux,它才能被Windows PING通。
總結:情況這么多,不知道你有沒有看暈,還是不清楚的話還是看視頻吧。我們已經(jīng)盡力了。

欲第一時間獲取嵌入式干貨,請關注微信公眾號baiwenkeji
技術交流請?zhí)砑觽€人微信(13266630429),驗證:B站