[小技巧]如何使用Mac命令行建立一個TCP連接?

太長不看

這裏筆者直接拋出答案,想快速知道答案的讀者可以直接看這裏↓

nc -v ip_address port

下面是筆者的一些例子。可以看到我們分別與谷歌的Public DNS服務器(8.8.8.8:53)、百度的HTTP服務器(220.181.38.148:80)和HTTPs服務器(220.181.38.148:443)成功建立了TCP連接。

~$ nc -v 8.8.8.8 53
dns.google [8.8.8.8] 53 (domain) open
~$ ping baidu.com
PING baidu.com (220.181.38.148): 56 data bytes
64 bytes from 220.181.38.148: icmp_seq=0 ttl=50 time=84.007 ms
~$ nc -v 220.181.38.148 80
220.181.38.148 80 (http) open
~$ nc -v 220.181.38.148 443
220.181.38.148 443 (https) open


NetCat命令行工具

NetCat是一個功能豐富的網絡命令行工具,下面簡單列舉一下NetCat命令的特性。

  • 建立對外TCP/UDP連接
  • DNS Forward與Reverse check
  • 能指定任意的本地端口作爲送信源端口
  • IP地址欺騙
  • 端口掃描
  • 鬆散路由功能
  • 支持Standard Input/Output
  • 低速送信模式
  • Server模式
  • Telnet模式
  • 傳輸文件
  • Backdoor (誤…

以上功能參考 Netcat_JP_Wiki


安裝NetCat命令行工具

筆者電腦上沒有自帶NetCat,需要安裝才能使用。這裏用Homebrew來快速安裝。

brew install netcat

如果沒有安裝Homebrew,可以通過下列命令安裝。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

有疑問可以參閱 homebrew官網


建立一個TCP連接

安裝好NetCat命令行工具之後,通過下面的方式能夠建立一個TCP連接到任意服務器,並且通過指定flag v (Verbose)能使反饋打印到屏幕。

~$ nc -v 8.8.8.8 53
dns.google [8.8.8.8] 53 (domain) open
$ netcat -v 220.181.38.148 443
220.181.38.148 443 (https) open
↑這裏的netcat和nc命令雖然有微妙的不同,但是幾乎可以理解爲同一程序和其別名。↑

相信看到這裏,讀者已經能知道通過-v我們能夠實現端口掃描。進行端口掃描的時候最好加上flag z(zero I/O 模式),就能自動斷開與服務器的連接。

nc -vz ip_address port

相關連接

  1. Homebrew官網
  2. NetCat官網
  3. NetCat_JP_wiki
  4. IANA - Service Name and Transport Protocol Port Number Registry
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章