使用nc进行网络测试

nc也就是netcat,传说中的瑞士军刀,它并不是ncat。 习惯上大家都会搞混这几样。

近日想用nc测试下代理情况下的udp连接,结果一直报

1
nc: no proxy support for UDP mode

使用的命令如下

1
nc -u   -X5  -x10.171.84.238:33080 114.114.114.114 53

这就奇怪了,看着命令没有问题啊,而且代理也确认是socks5的。

那就只能翻代码了, https://github.com/openbsd/src/blob/master/usr.bin/nc/netcat.c

在466行里写着

1
2
3
4
5
6
7
8
9
89  int	uflag;					/* UDP - Default to TCP */
90 int vflag; /* Verbosity */
91 int xflag; /* Socks proxy */
...
...
...
466 if (xflag) {
467 if (uflag)
468 errx(1, "no proxy support for UDP mode");

我去,合着是压根就不支持proxy下使用udp模式。

不过发现ncat居然是支持的。

1
ncat -u 114.114.114.114 53 --proxy 10.171.84.238:33080 --proxy-type socks5