linux nc (NetCat) 命令详解


<<nc>>

==端口扫描:/usr/local/nc -z -w 2 usa.v26.top 2626==

参数:
-i secs 延时的间隔
-l 监听模式,用于入站连接
-n 指定数字的IP地址,不能用hostname
-o file 记录16进制的传输
-p port 本地端口号
-r 任意指定本地及远程端口
-s addr 本地源地址
-u UDP模式
-v 详细输出——用两个-v可得到更详细的内容
-w secs timeout的时间
-z 将输入输出关掉——用于扫描时,其中端口号可以指定一个或者用lo-hi式的指定范围。

==开启本地端口监听:nc -lv 33139==

nc -v -z 192.168.10.197 79-100
# nc -v -w 2 192.168.2.34 -z 21-24
nc: connect to 192.168.2.34 port 21 (tcp) failed: Connection refused
Connection to 192.168.2.34 22 port [tcp/ssh] succeeded!
nc: connect to 192.168.2.34 port 23 (tcp) failed: Connection refused
nc: connect to 192.168.2.34 port 24 (tcp) failed: Connection refused

从192.168.2.33拷贝文件到192.168.2.34
在192.168.2.34上: nc -l 1234 > test.txt
在192.168.2.33上: nc 192.168.2.34 < test.txt

简单聊天工具
在192.168.2.34上: nc -l 1234
在192.168.2.33上: nc 192.168.2.34 1234
这样,双方就可以相互交流了。使用ctrl+C(或D)退出。

保存Web页面
while true; do nc -l -p 80 -q 1 < somepage.html; done

模拟HTTP Headers
nc www.huanxiangwu.com 80
GET / HTTP/1.1
Host: ispconfig.org
Referrer: mypage.com
User-Agent: my-browser
#在nc命令后,输入红色部分的内容,然后按两次回车,即可从对方获得HTTP Headers内容。

例子

#!/bin/bash
date=`date -d today +"%Y%m%d-%H%M"`
port=`grep sshport= /ips/shell/ssh-ips.sh |awk -F = '{print $2}' 2>&1`
/usr/local/bin/nc -z -w3 a.gateares.com $port >/dev/null 2>&1
che=$?
echo $che
if [ $che == 1 ];then
  printf $date >> /var/log/check_ssh.log
  /ips/shell/ssh-ips.sh >> /var/log/check_ssh.log 2>/dev/null
fi