写久了web倦了,第n次开始尝试网络开发,于是熟悉一下常用工具。
尝试了一下netcat来测试服务器,或者充当客户端都异常好用。于是记录一下常用的一下命令
1. 充当服务器,或者客户端进行访问
通过nc建立一台服务器用于监听端口:
nc -l 9999
此时nc处于了监听状态, 我们可以开启一台客户端来访问对应接口
nc 127.0.0.1 9999
然后现在客户端向服务器发起了链接,尝试在链接中的客户端随便输入一些信息
Hello World...
可以在服务器端看到,服务器会直接输出这些信息到控制台。
2. 传输文件
首先要确保你和目标地址能够建立起连接,比如是在同一个局域网内,或者可以ip地址直接访问的云主机之类
在服务器端,我们开启一个服务器对一个端口进行监听,并且将输出的信息重定向到一个目标文件
nc -l 9999 > target_file
然后客户端找到要传输的文件
cat source_file | nc localhost 9999
传输完成之后,就可以看到服务器自动停止了。然后去找下目标文件 就已经在那里了,这个方法在局域网内传文件太方便啦。
3. 客户端超时控制
客户端超时控制 是增加一个-w选项例:
nc -w 10 localhost 9999
这里注意,在10秒内没有任何操作就会被自动断开,但是在10秒内你做了任何操作,都可以再续10秒。
4. 强制netcat服务器端保持启动状态:
如果跟着做了上面实验的话就会发现一个问题,当客户端推出之后,服务器端也会立即跟着退出。除了那个文件传输的例子以外我们不希望任何一个服务器会在客户端退出之后就立即结束服务,所以我们需要让服务器一直保持服务。
nc -k -l 9999
5. 使用netcat处理udp
Netcat在使用-l启动服务器或者发起客户端连接的时候默认使用了tcp协议,但是使用-u参数可以让他使用udp来发起连接
nc -u -l 9999 //使用udp来启动服务器
nc -u localhost 9999 //使用udp来访问服务器
另外在早些时候的版本,或者某个rewrite版本里面还有一个-e参数,用于将访问重定向到某个目标机器的应用,这么邪恶的东西我man 了一下我的nc没有发现。可能需要另外开坑的时候去玩玩看。目前来看测试服务器的话上面的功能就够用了,访问具体url的时候 还可以借助curl来玩。linux世界的工具真是强大啊。!
Reference:
https://www.oschina.net/question/12_50469?sort=default&p=3 8 个实用的 Linux netcat 命令示例