[小技巧]如何使用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
发布了24 篇原创文章 · 获赞 24 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ToraNe/article/details/102730379