【基本介绍】
nc是可以打开任意端口的TCP/UDP连接和监听。
The nc (or netcat) utility is used for just about anything under the sun involving TCP or UDP. It can open TCP connections, send UDP packets, listen on arbitrary TCP and UDP ports, do port scanning, and deal with both IPv4 and IPv6. Unlike telnet(1), nc scripts nicely, and separates error messages onto standard error instead of sending them to standard output, as telnet(1) does with some.
【基本参数】
参 数:
-g<网关> 设置路由器跃程通信网关,最丢哦可设置8个。
-G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w<超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。
【简单实例】
传输命令/文件
[code="linux"]
# nc -l 1000
hello ni
# telnet 192.168.197.128 1000
Trying 192.168.197.128...
Connected to 192.168.197.128.
Escape character is '^]'.
hello ni^H^H
[/code]
[code="linux"]
# cat testfile
cat: testfile: No such file or directory
# nc -l 1000 > testfile
# cat testfile
insert into pressent values(1,'na');
insert into pressent values(2,'na');
# cat sql
insert into pressent values(1,'na');
insert into pressent values(2,'na');
# cat sql | nc 192.168.197.128 1000
[/code]
实现与memcached,redis等需要交换的程序的通信
[code="linux"]
# printf "set chen 0 0 5\r\n61123\r\n" | nc 127.0.0.1 11211
STORED
# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
get chen
END
get chen
END
get chen
END
get chen
VALUE chen 0 5
61123
END
[/code]
扫描端口
[code="linux"]
# nc -z -w2 127.0.0.1 1-30
Connection to 127.0.0.1 22 port [tcp/ssh] succeeded!
[/code]
【参考引用】
[url]http://www.thegeekstuff.com/2012/04/nc-command-examples/[/url]
[url]http://blog.zyan.cc/post/384/[/url] [url]http://bbs.chinaunix.net/thread-3654112-1-1.html[/url]
nc是可以打开任意端口的TCP/UDP连接和监听。
The nc (or netcat) utility is used for just about anything under the sun involving TCP or UDP. It can open TCP connections, send UDP packets, listen on arbitrary TCP and UDP ports, do port scanning, and deal with both IPv4 and IPv6. Unlike telnet(1), nc scripts nicely, and separates error messages onto standard error instead of sending them to standard output, as telnet(1) does with some.
【基本参数】
参 数:
-g<网关> 设置路由器跃程通信网关,最丢哦可设置8个。
-G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w<超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。
【简单实例】
传输命令/文件
[code="linux"]
# nc -l 1000
hello ni
# telnet 192.168.197.128 1000
Trying 192.168.197.128...
Connected to 192.168.197.128.
Escape character is '^]'.
hello ni^H^H
[/code]
[code="linux"]
# cat testfile
cat: testfile: No such file or directory
# nc -l 1000 > testfile
# cat testfile
insert into pressent values(1,'na');
insert into pressent values(2,'na');
# cat sql
insert into pressent values(1,'na');
insert into pressent values(2,'na');
# cat sql | nc 192.168.197.128 1000
[/code]
实现与memcached,redis等需要交换的程序的通信
[code="linux"]
# printf "set chen 0 0 5\r\n61123\r\n" | nc 127.0.0.1 11211
STORED
# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
get chen
END
get chen
END
get chen
END
get chen
VALUE chen 0 5
61123
END
[/code]
扫描端口
[code="linux"]
# nc -z -w2 127.0.0.1 1-30
Connection to 127.0.0.1 22 port [tcp/ssh] succeeded!
[/code]
【参考引用】
[url]http://www.thegeekstuff.com/2012/04/nc-command-examples/[/url]
[url]http://blog.zyan.cc/post/384/[/url] [url]http://bbs.chinaunix.net/thread-3654112-1-1.html[/url]