解惑:如何使得寢室的電腦和實驗室的電腦遠程相互訪問
一、前言
自從接觸計算機網絡之后就一直想着把實驗室的電腦和自己寢室的電腦遠程連接起來,結果總是郁郁不能成功,網上這樣的教材也少的可憐,於是總是擱置下去,但是總是在腦中揮之不去,直到最近才有了一些思路和理解。
二、解決辦法
2.1 前置條件
首先就是需要准備的環境,這里為了保密,將一些關鍵數據做了某些處理:
登錄路由器:登陸的方法就是首先在自己的電腦上ipconfig/ifconfig出當前的網關,這個地址就是路由器的地址。
路由器中的“端口轉發”和DMZ的區別:端口轉發一條規則只能轉一個端口,只是映射指定的端口。DMZ后,路由的所有端口都轉發到指定的內網機器,開了DMZ后,不用再做端口轉發。DMZ相當於映射所有的端口,並且直接把主機暴露在網關中,比端口映射方便但是不安全。 端口映射:端口映射分為動態和靜態,動態端口映射:當連接關閉時,NAT網關會釋放分配給這條連接的端口,以便以后的連接可以繼續使用。靜態端口映射: 就是在NAT網關上開放一個固定的端口,然后設定此端口收到的數據要轉發給內網哪個端口,不管有沒有連接,這個映射關系都會一直存在,就可以讓公網主動訪問內網的一個電腦。DMZ是“demilitarized zone”的縮寫,中文名稱為“隔離區”,也稱“非軍事化區”。它是為了解決安裝防火牆后外部網絡不能訪問內部網絡服務器的問題,而設立的一個非安全系統與安全系統之間的緩沖區,這個緩沖區位於企業內部網絡和外部網絡之間的小網絡區域內,在這個小網絡區域內可以放置一些必須公開的服務器設施,如企業Web服務器、FTP服務器和論壇等。另一方面,通過這樣一個DMZ區域,更加有效地保護了內部網絡,因為這種網絡部署,比起一般的防火牆方案,對攻擊者來說又多了一道關卡。
電腦安裝的系統:windows或Linux
系統需要進行的操作:
- 如果是Linux系統,我們需要安裝ssh相關的軟件(openssh-client,openssh-server,ssh等),之后在電腦上運行這個ssh(sudo /etc/init.d/ssh start或者service ssh start),並且使用 ps -ef|grep ssh 去檢查是否可以連接。
- 如果是windows系統,首先我們要關閉防火牆,這個是必須關閉的,不然不能ping通,同時需要在控制面板中進行遠程連接設置。之后就需要安裝SecureCRT這樣的軟件,以便能夠遠程連接和登錄到具有ssh服務並打開的Linux系統。
寢室:一台路由器、幾台筆記本電腦通過WiFi連接至該路由器,當然也可以使用網線。
登錄路由器可以查看詳細的信息,路由器的公網IP(210.41.xx.xxx),寢室PC的IP(192.168.1.xxx)。
實驗室:一台路由器、幾台台式機和筆記本,通過網線或者WiFi連接至路由器。
同樣的登錄路由器查看路由器的公網IP(211.83.xxx.xxx),自己實驗室的台式機或筆記本的IP(192.168.31.xxx)。
2.2 實驗室PC連接寢室PC
這一步其實就是讓寢室的PC能暴露出來,在公網上能夠得到訪問,需要在寢室的路由器上設置,將自己想要暴露出去的機器的IP做成虛擬服務器,這樣當外網鏈接到這個寢室的公網IP的時候,就會被導向到自己寢室的筆記本的IP上面,這是一種IP之間的映射關系。具體的方法根據路由器的不同而有所不同,包括需要暴露出的端口號(22),需要暴露出的IP等,設置完成生效即可。
將IP映射並暴露出來之后,我們需要做的就是在遠程(實驗室)進行連接了,這里我們寢室用的是Linux(Ubuntu18.04.2),實驗室里面我們首先使用windows系統安裝着SecureCRT的電腦來新建連接,輸入寢室的公網IP和需要連接的電腦的端口號(22),之后成功的話需要輸入計算機的密碼,然后確認登錄即可登錄成功了。當然也可以使用實驗室的Linux系統來登錄,這個更容易一點,使用ssh 寢室的公網IP,輸入密碼,確認登錄即可。
這樣我們就能從實驗室訪問寢室的電腦了。既然我們等於登錄了寢室的電腦,那我們是不是相當於寢室的電腦和實驗室的電腦都在實驗室的感覺呢?!但是如果我們回去了寢室,就不能享受這樣的方便了,於是我們需要使得實驗室的電腦也能夠被寢室的電腦遠程訪問。
2.3 寢室PC訪問實驗室PC
其實這里是大同小異的,首先在實驗室登錄到實驗的路由器上面,找到端口映射或者虛擬服務器,然后將訪問規則寫入路由器,並使之生效即可(這里我們可以設置訪問的端口不是22,以便與實驗室的其他同學進行區別)這樣當我們從寢室訪問實驗室電腦的時候使用同樣的辦法,如果是windows使用SecureCRT輸入實驗室的公網IP,輸入相應的密碼登錄即可。由此可以看到上述設置之中最重要的就是路由器了。
在這里我們如果在實驗室,還需要到寢室進行設置嗎?!答案是不用的,因為在2.2中我們已經能夠登陸寢室的Linux系統了,那么我們只需要在登錄的系統中使用ssh 實驗室的公網IP即可。設置我們還可以將筆記本連接到其他的WiFi來使用SecureCRT連接實驗室的台式機的電腦,看看設置是否成功。
2.4 路由器的設置
這里寢室使用的迅捷路由器,實驗室使用的小米路由器,其中登錄之后的UI界面是不一樣的,迅捷路由器是並列的,很容易找到設置虛擬服務器的地方,而小米路由器需要繞一點,從系統設置-》高級功能-》端口轉發中找到,最后一定要使之生效。
另外小米路由器還有一個DHCP,IP與MAC靜態綁定,我們可以了解一下,這樣我們設置的IP就和這台電腦進行一一綁定了,不會再被重新分配導致連接失敗的情況發生。
三、windows與windows之間的遠程桌面連接
同樣的,windows之間的連接不需要ssh了,但是微軟有着功能更強大的遠程連接工具,我們可以通過這個連接工具來實現兩台windows電腦之間的連接,首先讓我們考慮局域網下的兩台windows系統,IP分別為:192.168.31.144和192.168.31.160。
首先確保完成以下幾件事情:
1、關閉兩台電腦的防火牆;
2、在“我的電腦”-》“屬性”下面的遠程連接設置中允許遠程桌面。
3、使用win+R,輸入gpedit.msc打開本地組策略編輯器界面,在兩台電腦上都要進行設置:
在下面界面中的條目,將一些允許的配置,默認是關閉的,打開之后輸入TERMSRV/*,來使得生效。至於選擇多少個這樣的配置可以根據實際情況考慮,並且要使得生效需要使用gpupdate /force來更新組策略。
此策略設置適用於使用 Cred SSP 組件的應用程序(例如遠程桌面連接)。 此策略設置在通過 NTLM 實現服務器身份驗證時適用。 如果啟用此策略設置,則可以指定可向其分配用戶保存的憑據的服務器(保存的憑據是通過使用 Windows 憑據管理器來進行選擇以保存/記憶的憑據)。如果未配置(默認情況下)此策略設置,則在正確的相互身份驗證之后,允許向運行在任何計算機上的遠程桌面會話主機 (TERMSRV/*) 分配保存的憑據,但條件是,客戶端計算機不是任何域的成員。如果客戶端加入某個域,則默認情況下不允許向任何計算機分配保存的憑據。如果禁用此策略設置,則不允許對任何計算機分配保存的憑據。 注意: 可以將“允許分配保存的憑據用於僅 NTLM 服務器身份驗證”策略設置設置為一個或多個服務主體名稱(SPN)。SPN 表示可以向其分配用戶憑據的目標服務器。指定 SPN 時允許使用單個通配符。 例如: TERMSRV/host.humanresources.fabrikam.com 表示在 host.humanresources.fabrikam.com 計算機上運行的遠程桌面會話主機 TERMSRV/* 表示在所有計算機上運行的遠程桌面會話主機。 TERMSRV/*.humanresources.fabrikam.com 表示在 humanresources.fabrikam.com 中的所有計算機上運行的遠程桌面會話主機
4、確保兩台電腦都有密碼,如果密碼為空,有兩種解決辦法,一種是在剛剛的本地組策略編輯器中進行密碼設置,另一種是打開賬戶設置,設置新的密碼。
5、確保連接的時候兩台電腦都在同一局域網下,並且沒有關機,休眠,然后使用對方的IP,用戶名,密碼即可登錄了,在連通之后還要注意如果將被連接的電腦睡眠或關機,則連接斷開。需要注意的是,一旦一台電腦被遠程連接,另一台電腦就會被鎖屏,如果強行登陸,則被連接的電腦將會掉線。
最后讓我們使用公網來連接,同樣的需要在路由器中將這個網址使用NAT靜態綁定暴露出去,方法比較簡單,設置相關的端口規則或者虛擬服務器即可。然后將一台電腦連接到其他WiFi上面就可以測試了,發現完全可以連接。我們發現windows的遠程桌面功能還是挺不錯的,功能也比較強大,但是美中不足的是,有的時候我們在輸入正確的賬戶密碼的時候卻連接失敗,筆者也遇到這樣的情況,每當這個時候就需要檢查一下上面的一些設置看看是否是正確的,如果還是不行的話就去網上查一下看看到底是怎么回事。如下圖所示,我們可以看到遠程桌面的端口是3389,連接是沒問題的,但是容易遭受黑客攻擊,這個時候我們可以通過修改注冊表來解決這個問題,選擇自定義的端口來連接,具體可以參考這個網址來修改。
到了這里我們可以思考一下這兩台電腦如何進行文件傳輸呢,其實也非常簡單,在連接的時候進行一些設置,將本電腦上的一些磁盤映射到遠程的電腦上即可實現文件傳輸了,非常的方便。
注意:在上述的操作中,可能有的鍵盤映射可能會出問題,解決辦法為Fn+NumLock來切換回正常的輸入。
ps:有興趣的同學可以嘗試一下在A電腦上遠程控制B,並且在控制B的界面上遠程控制A,這個時候會發生什么事情呢?!(兩台都滅屏了,哈哈~~)很有意思吧!如果是在B電腦上聽音樂,B的實體電腦會播放嗎?如何能使得B的實體電腦播放呢?如果是對B關機呢?
四、修改Windows遠程桌面端口號
修改端口號有這幾種好處,第一,避免端口沖突,特別是一些常用的端口,自己占用之后別人就只能選擇其他端口了;第二,增加安全性,修改端口之后使得外在侵入需要不斷嘗試,避免敏感端口被入侵,但是能夠登錄到路由器的人還是能夠看到的。那么我們就要理解IP+portNumber的使用了,如果我們輸入IP+端口號,那么這個端口號指的是需要連接的其他電腦的端口號,這點很重要。
下面我們來舉例說明:
首先明確修改本機遠程桌面端口號的意義是指其他機器訪問本機的時候最終進行通信的端口號是已經修改的端口號,那么其他機器是否要指明自己訪問的本機的端口號呢?!分兩種情況,第一種是局域網訪問,這點就必須需要了,也就是“內網IP+端口A(修改過的,記為A)”,不然使用默認端口號3389不能進行通信;第二種是外網遠程訪問,這個時候我們在本機所在的路由器上已經進行了端口映射設置,規則如下:外網端口(3389)-》內網IP+內網端口A+TCP協議;這樣的話使用外網訪問其實如果外網端口是3389,則會自動為我們轉換,這個時候就不需要帶端口號了,即使要帶也是3389。當然是用內網用本局域網的公網IP來訪問也是不需要的。一切都是因為NAT.
其次我們來談談怎么修改端口號吧,其實很簡單修改注冊表,然后重啟即可。
注意要修改兩個部分的,然后重啟,這樣即可生效。
最后就是路由器的設置了,端口映射一定要思考清楚是外網的什么端口映射到內網的什么IP,什么端口,使用什么協議,這樣就能完全理解了。
比如本機修改端口為A,那么在本機所在的路由器上就要對外網連接到本機所對應的端口改為A;如果外網的端口為B,那么就需要在本機所在路由器上修改外網端口為B,本機根據情況修改。訪問時如果是外網則不需加端口號,如果是內網,則須指明端口號。也就是在mstsc中輸入IP:port即可。
五、總結
由此可以看到其實不使用DNS域名服務器,不需要域名也是可以遠程進行連接的,前提是我們需要知道對應的公網IP,其實我們學習的計算機網絡也是這樣講的,路由器在尋路的過程之中使用的協議並沒有涉及到域名解析的,而是在剛開始的時候使用DNS服務器來獲得域名對應的IP地址,也就是我們的公網IP,僅此而已。但是加上了域名與IP的綁定之后,使得我們更方便的記憶和使用相應的網站。同時路由器的設置,IP地址與公網地址的端口綁定(NAT),端口轉發規則,windows的防火牆設置等等都是我們需要理解和掌握的。最后既然都搞定這個了,那么在一個局域網內,我們也很容易的使得兩個電腦相互訪問了。如果兩個都是Linux,那么都安裝ssh,運行並且ping通即可,如果都是windows,那么就要使用遠程桌面了,如果一個Linux,一個windows,那么我們可以使用windows上的SecureCRT來鏈接即可。