[小技巧]如何使用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
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值