导航:[首页]->[linux]->[使用NC测试网络或建立服务器]

在老版本中,有-c命令直接执行命令,新版本仍然可以通过其他方式。

##Server

#include <stdio.h>
int main()
{
	char buf_[1024];
	do{
		if(gets(buf_))
		{
			printf("recv : %s\n",buf_);
			fflush(stdout);
		}
	}while(1);
	return 0;
} 

rm -f /tmp/f; mkfifo /tmp/f
cat /tmp/f | ./a.out | nc -l -p 12345 127.0.0.1 > /tmp/f

##Client

nc 127.0.0.1 12345

root@qjw-VirtualBox:~# nc 127.0.0.1 12345
fasdf
recv : fasdf
fasdf
recv : fasdf
fasdf
recv : fasdf
fasdf
recv : fasdf
fasdf
recv : fasdf

##模拟shell

cat /tmp/f | /bin/sh -i 2>&1 | nc -l -p 12345 127.0.0.1 > /tmp/f

若跨主机连接nc服务器,nc可能会报如下错误

Invalid connection to [local address] from <UNKNOWN> [remote address]"

只需要将nc -l -p port ip 中的ip去掉,直接 nc -l -p 12344 即可。

  1. http://www.computerhope.com/unix/nc.htm
  2. http://linux.die.net/man/1/nc
  3. http://chronoslinux.org/wiki/Kernel_Programming_Tips