关于宿主机与虚拟机网络连接的怪现象
假期結束回到學校,本來計劃好了一些要做的事情,可是計劃趕不上變化,剛打開電腦就被一個上網問題所困住了。。。
我們學校用的是電信的天翼校園寬帶,而且也只有電信這一家,可以說是壟斷。。。至于為什么沒有其他的ISP,官方說法是我們這邊太偏僻了,沒有基站,不好布線等等。。其實真實原因嗎,咳咳,大家心里都清楚。。。。
說到這個上網問題,我忍不住又要吐嘈一下。。。凡是用過電信的天翼校園寬帶的都會有同一個感受——太坑。。。限制使用路由器,也就是說一個帳號只能一個人用,動態密碼6小時一換,投訴電話不知打了多少,電信官方說是為了安全,說什么無線用著不安全。。是的,我承認無線的確存在著不安全性,相比較而言有線的確略微安全一些,不過這不能成為電信打算搞壟斷的借口。。。一人一個帳號,說白了不就是想多賺些錢,多獲取些利益嘛。。。電信不就是怕如果支持了路由器撥號,一個宿舍就只買一個帳號,然后賺的錢就少了嘛。。。其實這想法完全是沒有必要的。。。以我自身的切身經歷來說,我曾經也和舍友一起買過可以使用路由器的“黑號”,8M帶寬,三個人用。按理說其實也差不多了。。。如果只是打打游戲的話,其實帶寬使用量不是很大的。。。但是如果其中有人用諸如迅雷之類的軟件下載東西,尤其是幾個G的東西,那么迅雷就會把所有的帶寬資源都搶占一空,別說打游戲了,連打開個網頁都困難。。雖然可以限制資源的利用,但畢竟都是舍友,而且大家都出了錢,這么做也不怎么好意思。。。再加上后來“黑號”被封,我也就再沒有和別人合租過無線網。。。
但是如今這個互聯網時代,手機上個網最好都是在有無線覆蓋的地方。。光靠那每個月300M的數據流量哪夠,再加上這邊信號又差,有時候都連不上。。為了蹭個無線還要跑去食堂。。。
好像有點跑題了。。。。。總而言之,電信的天翼校園寬帶就是坑,吐嘈不完的坑。。。。
言歸正傳。。。正如上面所說,我現在用的是天翼校園寬帶,它是需要專門的撥號軟件進行撥號的,而這個撥號軟件只有windows和mac兩種版本,而我恰恰使用的是Linux。。(電信這是在瞧不起Linux嗎,還是瞧不起使用Linux的學生???)因此我為了上個網就必須煞費苦心,比別人多繞點路。。。(我會說我還打了無數個電話去電信那邊反應情況嗎?可是結果呢。。。。。)
之前我都是在虛擬機中開一個winxp充當網關,讓Linux宿主機去共享Winxp的網絡。(詳細做法:首先確保虛擬機XP中已裝天翼校園客戶端,然后共享天翼校園客戶端生成的網絡連接適配器。接著把本地連接的IP和宿主機的IP設置成同一網段,具體來說XP中本地連接IP為192.168.0.1,宿主機中IP為192.168.0.250,網關為192.168.0.1,子網掩碼都是255.255.255.0。然后宿主機再設置一個DNS服務器地址,一般為8.8.8.8。不過我有時設成8.8.8.8會無法連接,因此我設成了電信的DNS:218.2.2.2)
這一次,我仍是按以往的步驟打開了虛擬機,帳號是連上了,虛擬機中也可以上網,但是宿主機卻無法上網。。。于是開始一步步排查。。。
首先我排除了網線問題,因為之前都是可以用的,而且虛擬機中也可以上網。然后是IP設置問題,雙向互ping一下,都可以通,排除兩邊的防火墻問題(注:如果出現虛擬機可以ping通宿主機,而宿主機ping不通虛擬機,很可能是虛擬機設置了防火墻)。然后檢查DNS,通過nslookup可以查找到IP地址,排除。。
現在的問題是:直接ping外網,可以ping通,但就是無法打開網頁,一直顯示正在連接。。。用netstat查看,果然有大量的SYN_SENT狀態。意思就是說我一直再向遠端發送連接請求,但是卻無法建立連接(TCP三次握手中的過程)。。我上網谷歌百度了一番,有說是設置了代理服務器的,不過我并未設置,查看了一下,的確未設置。也有說是協議問題,要netsh winsock reset,但是未見成效。。。要說感染病毒嘛,看了下進程,沒有占用率很大的。。。
最后用wireshark抓了包看了看。我在虛擬機和宿主機上都抓了一下,發現了這樣一個現象:
首先先假設我的宿主機的IP為192.168.0.250,虛擬機的本地連接IP為192.168.0.1,連接外網的IP是動態分配的,假設為58.2.2.2。
1、在虛擬機中抓包:192.168.0.250和58.2.2.2都可以從DNS服務器上獲取百度的地址,假設為180.3.3.3。然后192.168.0.250和58.2.2.2分別向180.3.3.3發送SYN包,180.3.3.3也分別回了一個SYN+ACK包,但是之后58.2.2.2向180.3.3.3發送了一個ACK包,卻不見192.168.0.250的ACK包。
2、在宿主機中抓包:192.168.0.250和58.2.2.2都可以從DNS服務器上獲取百度的地址,假設為180.3.3.3。然后192.168.0.250和58.2.2.2分別向180.3.3.3發送SYN包,但是這一次180.3.3.3卻只向58.2.2.2發送SYN+ACK回包,看上去就像是發給192.168.0.250的回包被截了一樣。。
我不知道如何解決,最后實在沒有辦法,只好重裝了虛擬機,好在問題也在重裝后解決了。。。。
轉載于:https://blog.51cto.com/liandesinian/1561098
總結
以上是生活随笔為你收集整理的关于宿主机与虚拟机网络连接的怪现象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 航旅纵横之我看
- 下一篇: 权威解读GitHub、Apache疑云: