[小技巧]如何使用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命令行工具
笔者电脑上没有自带NetCat,需要安装才能使用。这里用Homebrew来快速安装。
brew install netcat
如果没有安装Homebrew,可以通过下列命令安装。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
有疑问可以参阅
建立一个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
