网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
客户端通过TCP连接到服务器8888端口,发送hello,服务器对其回复ok,之后即可互相通信。
//陈硕简单用法:
//本地服务器监听
nc -l 1234
//客户端
nc localhost 1234
使用ctrl+C(或D)退出
当然也可以通过telnet
命令进行测试: telnet localhost 8888
2)如果是测试局域网两台主机的通信时,客户端连接远程Remote主机的IP地址即可。
命令则为:
nc -nv 113.54.154.215 8888
3) 为了观察一个TCP的标准连接,也就是三次握手四次挥手的内部实现,我们通过tcpdump
进行监测一个完整的连接。
当连接本地服务器回环地址时,使用的是lo网卡。
sudo tcpdump -i lo -n tcp port 8888
当连接为远程服务器时,使用的是此时Ubuntu 16.04环境下的ens33网卡。
sudo tcpdump -i ens33 -n tcp port 8888
可以清晰的看到三次握手。
2. 端口扫描
端口扫描经常被系统管理员和黑客用来发现在一些机器上开放的端口,帮助他们识别系统中的漏洞。
nc可以运行在TCP或者UDP模式,默认是TCP,-u参数调整为udp.
假定服务器此时开启了端口8888。
客户端对IP地址为113.54.154.215的8880附近相邻10个端口进行TCP扫描。
客户端命令为:
nc -nvz 113.54.154.215 8880-8890
测试如下:
2)若采用UDP扫描,则服务器和客户端的命令修改如下:
添加-u
选项
服务器:
nc -ulp 8888
客户端:
nc -unvz 113.54.154.215 8880-8890
3. 文件传输
大部分时间中,我们都在试图通过网络或者其他工具传输文件。有很多种方法,比如FTP,SCP,TFTP,NFS等等,但是当你只是需要临时或者一次传输文件,真的值得浪费时间来安装配置一个软件到你的机器上嘛。假设你想要传一个文件test.cpp 从A 到B。A或者B都可以作为服务器或者客户端,
让A作为服务器,B为客户端。将服务器A上的文件下载到客户端B上。
Server:
nc -lp 8888 < test.cpp
Client:
nc -n 113.54.154.215 8888 > test.cc
这里我们创建了一个服务器在A上并且重定向netcat的输入为文件test.cpp
,那么当任何成功连接到该端口,netcat会发送file的文件内容。
在客户端我们重定向输出到test.cc
,故意是两个文件的后缀不同,此时查看文件的大小属性。
此时客户端将网络接收到的数据重定向为test.cc
,如果数据不需要则将其重定向到/dev/null
即可。
2)当然我们可以将客户端的文件发送给服务器,此时将test.cc
上传给服务器。
Server
nc -lp 8888 > test.cc
Client
nc -n 113.54.154.215 8888 < test.cc
此时服务器收到的文件重定向到test.cc
,我们可以查看此时服务器的文件:
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
友,可以添加戳这里获取](https://bbs.csdn.net/topics/618668825)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!