`
ikon
  • 浏览: 102517 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

8 个实用的 Linux netcat 命令示例

 
阅读更多

Netcat 或者叫 nc 是 Linux 下的一个用于调试和检查网络工具包。可用于创建 TCP/IP 连接,最大的用途就是用来处理 TCP/UDP 套接字。

这里我们将通过一些实例来学习 netcat 命令。

1. 在服务器-客户端架构上使用 Netcat

netcat 工具可运行于服务器模式,侦听指定端口

1 $ nc -l 2389

 

然后你可以使用客户端模式来连接到 2389 端口:

1 $ nc localhost 2389

现在如果你输入一些文本,它将被发送到服务器端:

1 $ nc localhost 2389
2 HI, oschina

在服务器的终端窗口将会显示下面内容:

1 $ nc -l 2389
2 HI, oschina

 

2. 使用 Netcat 来传输文件

netcat 工具还可用来传输文件,在客户端,假设我们有一个 testfile 文件:

1 cat testfile
2 hello oschina

而在服务器端有一个空文件名为 test

然后我们使用如下命令来启用服务器端:

1 $ nc -l 2389 > test

紧接着运行客户端:

1 cat testfile | nc localhost 2389

然后你停止服务器端,你可以查看 test 内容就是刚才客户端传过来的 testfile 文件的内容:

1 cat test
2 hello oschina

 

3. Netcat 支持超时控制

多数情况我们不希望连接一直保持,那么我们可以使用 -w 参数来指定连接的空闲超时时间,该参数紧接一个数值,代表秒数,如果连接超过指定时间则连接会被终止。

服务器:

1 nc -l 2389

客户端:

1 $ nc -w 10 localhost 2389

该连接将在 10 秒后中断。

注意: 不要在服务器端同时使用 -w 和 -l 参数,因为 -w 参数将在服务器端无效果。

4. Netcat 支持 IPv6

netcat 的 -4 和 -6 参数用来指定 IP 地址类型,分别是 IPv4 和 IPv6:

服务器端:

1 $ nc -4 -l 2389

客户端:

1 $ nc -4 localhost 2389

然后我们可以使用 netstat 命令来查看网络的情况:

1 netstat grep 2389
2 tcp        0      0 localhost:2389          localhost:50851         ESTABLISHED
3 tcp        0      0 localhost:50851         localhost:2389          ESTABLISHED

接下来我们看看IPv6 的情况:

服务器端:

1 $ nc -6 -l 2389

客户端:

1 $ nc -6 localhost 2389

再次运行 netstat 命令:

1 netstat grep 2389
2 tcp6       0      0 localhost:2389          localhost:33234         ESTABLISHED
3 tcp6       0      0 localhost:33234         localhost:2389          ESTABLISHED

前缀是 tcp6 表示使用的是 IPv6 的地址。

 

5. 在 Netcat 中禁止从标准输入中读取数据

该功能使用 -d 参数,请看下面例子:

服务器端:

1 $ nc -l 2389

客户端:

1 $ nc -d localhost 2389
2 Hi

你输入的 Hi 文本并不会送到服务器端。

 

6. 强制 Netcat 服务器端保持启动状态

如果连接到服务器的客户端断开连接,那么服务器端也会跟着退出。

服务器端:

1 $ nc -l 2389

客户端:

1 $ nc localhost 2389
2 ^C

服务器端:

1 $ nc -l 2389
2 $

上述例子中,但客户端断开时服务器端也立即退出。

我们可以通过 -k 参数来控制让服务器不会因为客户端的断开连接而退出。

服务器端:

1 $ nc -k -l 2389

客户端:

1 $ nc localhost 2389
2 ^C

服务器端:

1 $ nc -k -l 2389

 

7. 配置 Netcat 客户端不会因为 EOF 而退出

Netcat 客户端可以通过 -q 参数来控制接收到 EOF 后隔多长时间才退出,该参数的单位是秒:

客户端使用如下方式启动:

1 nc  -q 5  localhost 2389

现在如果客户端接收到 EOF ,它将等待 5 秒后退出。

 

8. 使用 Netcat 来处理 UDP 协议

netcat 默认是使用 TCP 协议,但也支持 UDP,可使用 -u 参数来启用 UDP 协议通讯。

服务器端:

1 $ nc -4 -u -l 2389

客户端:

1 $ nc -4 -u localhost 2389

这样客户端和服务器端都使用了 UDP 协议,可通过 netstat 命令来查看:

1 netstat grep 2389
2 udp        0      0 localhost:42634         localhost:2389          ESTABLISHED
英文原文, OSCHINA原创翻译
分享到:
评论

相关推荐

    8个实用的Linux netcat命令示例

    Netcat 或者叫 nc 是 Linux 下的一个用于调试和检查网络工具包。可用于创建 TCP/IP 连接,大的用途是用来处理 TCP/UDP 套接字。  这里我们将通过一些实例来学习 netcat 命令。  1、在服务器-客户端架构上使用 ...

    netcat下载 nc下载 netcat命令 nc命令

    netcat下载 nc下载 netcat工具下载 nc工具下载 netcat命令 nc命令

    Linux中Netcat命令整理

    netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,...Linux netcat 命令实例: 1,端口扫描 端口扫描经常被系统管理员和黑客用来发现在一些机器上开放的端口,帮助他们识

    netcat 瑞士军刀 linux windows netcat 瑞士军刀 linux windows

     win98用户可以在autoexec.bat加入path=nc的路径,win2000用户在环境变量中加入path中,linux含有这个命令(redhat) 1、基本使用  想要连接到某处: nc [-options] hostname port[s] [ports] ...  绑定端口等待...

    nc_bloaty.rar_creation_linux netcat

    Netcat is entirely my own creation Source Code for Linux.

    Linux下网络检测与通讯命令netcat、curl的Windows/DOS版

    Linux下网络检测与通讯命令netcat、curl的Windows/DOS版,经过多方努力才攒成的。...但Windows下只自带ping命令,好容易才找到另两个命令的Windows版本,虽然不是最新的,但基本用法一致,希望对大家有用。

    netcat1.10源代码

    使用netcat命令所能完成的事情令人惊讶。 netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了。你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它...

    ARM 版本netcat ARM 版本netcat ARM 版本netcat ARM 版本netcat ARM 版本netcat

    arm版本的netcat

    Linux-NC.rar_NC_linux nc_nc linux_netcat

    Linux下的NC程序,类似于windows下的nc

    netCat rpm安装包

    netCat rpm安装包,网络监控工具、

    Netcat-windows-linux.rar_netcat

    netcat在windows和Linux下使用方法,简单醒目,适合新人上手

    netcat-0.7.1.tar.gz

    这几天学习Linux网络编程的时候,由于用到了nc命令,无法通过yum下载,所以特地下载的netcat命令的软件包

    netcat-1.12源码包

    linux nc (netcat)源码 nc使用和telnet一样简单,功能却强大的很,不仅能用来启动一个端口用于侦听。当自编译时指定GAPING_SECURITY_HOLE参数的话,那真是。。。太强大了。 自己研究的话,实用价值更是不用多言了

    windows下的netcat

    windows下的netcat

    windows和linux环境下nc命令工具合集

    windows_nc&linux_nc.rar 包含了2个文件,一个是windows下命令nc,直接拷贝到windows/system32/下即可,另一个则是linux下的rm包

    netcat for win32

    Netcat是一个功能强大的网络实用程序,它使用TCP/IP协议在网络连接之间读写数据。 将下载的Netcat 解压,将文件夹中的所有内容复制到C:\Windows\System32的文件夹下 打开命令界面:Windows+R cmd 监听某个端口号:nc...

    linux和win下的NetCat(nc)

    linux和win下的NetCat(nc)

    netcat windows

    netcat windows系统,与linux系统之间文件传输,快捷方便

    netcat_for_liunx (+windows版本)

    netcat for liunx ,瑞士军刀,我一直很纳闷为什么netcat会叫瑞士军刀。在这里我会上传liunx下的netcat,windows版的话由于网上带病毒的比较多,先测试阶段,若实在需要欢迎留言。我后续会把自己真实使用的技巧发我...

Global site tag (gtag.js) - Google Analytics