為了安全的原因,很多人都把服務(wù)器默認的遠程連接端口(windows是3389,linux是22)改成了其他數(shù)字,但是一旦忘記了這個新設(shè)置的端口號,怎么辦呢?我今天在維護一臺服務(wù)器時,就遇到了這個情況,當時更改端口號時沒有及時記錄下來,現(xiàn)在要連接才發(fā)現(xiàn)這個低級失誤。
遇到這個情況,我想大家首先想到的就是掃描端口了。但是網(wǎng)上的在線工具,都是要我們輸入端口號來檢測是否開啟,這肯定不能滿足要求,因為1-65535這么多數(shù)字我們不可能每個都手動輸入去檢測。
好在,我后來找到了這個小工具:ScanPort,它能自動掃描某一服務(wù)器的所有開放端口。
端口掃描器 ScanPort
端口掃描工具ScanPort是一個小巧的網(wǎng)絡(luò)端口掃描工具,并且是綠色版不用安裝即可使用。使用也很簡單,輸入起始IP和結(jié)束IP(對于一臺服務(wù)器來說,起始IP和結(jié)束IP是相同的),端口號(多個端口號用逗號隔開,也可以指定一個范圍如從1到100,就寫:1-100),然后點擊“掃描”即可。
掃描速度很快,掃描結(jié)果顯示所有開啟的端口號。由于開啟的端口號并不多,一般也就十幾二十個,所以很容易就找到自己設(shè)置的遠程端口號了。
最后附上此工具的下載:
鏈接: https://pan.baidu.com/s/1c3uwj88 密碼: tkmt
相關(guān)知識:端口數(shù)能否超過65535
碰到某人的服務(wù)器~3389端口變成了78650。
通常服務(wù)器的端口都是1-65535他來個頂你肺啊78650。。。你說怪不怪。。。
這種問題我還真是頭一次聽說,經(jīng)查閱相關(guān)資料得知:
看看專家告訴你答案:
哈哈 tcp port 大小為 16 bit 是否能超過 65535 可想而知啦??!
不過 Windows 會有一個問題 telnet www.sina.com.cn 65616 大家可以測試一下 !
這實際上是訪問 www.sina.com.cn 的 80 端口,為什么呢?如果想不出來就回學(xué)校重新學(xué)去!
注:65616 - 65536 = 80
以下是引用片段:
main()
{
unsigned short int tcp_port=65616;
printf("%u",tcp_port);
}
有些軟件,比方說 Windows 的 telnet,可能用了 32 bit 的數(shù)據(jù)類型記錄 port,這樣 port 表面上看到是可以超過 65535。
但是 tcp header 明確定義了 tcpport 為 16 bit,那即便某些應(yīng)用程序使用了 32 bit 的數(shù)據(jù)類型,最終結(jié)果也是被強制轉(zhuǎn)換。
簡單的來說,就是:
1、在應(yīng)用程序里邊可以使用4字節(jié)或更多字節(jié)來儲存端口號。
2、當調(diào)用了系統(tǒng)的tcp/ip通訊之后,系統(tǒng)底層強制將大于65536的端口轉(zhuǎn)換回正常范圍。
3、并且在轉(zhuǎn)換過程中,不會返回任何錯誤信息,一切都悄然進行了,所以應(yīng)用層的程序不會有任何特別反應(yīng),這一切都在系統(tǒng)底層悄然完成了。
4、轉(zhuǎn)換的方式為:端口號 - 65536 = ?,問號處既是轉(zhuǎn)換結(jié)果。
5、如果轉(zhuǎn)換后的端口還超過65535呢?那就繼續(xù)轉(zhuǎn)換,直到小于等于65535為止,所以 telnet www.baidu.com 131152 也是可以完美執(zhí)行的,(65536 + 65536 + 80 = 131152)。