导航:[首页]->[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