如何使用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