通常,可以用scp完成两台主机间的文件传输任务,但在主机间未建立信任关系的情况下,scp每次都需要输入密码,用起来感觉不是很方便,之前这篇笔记介绍过不用输入密码执行脚本或传输文件的方法,但对于一些临时性的任务,准备工作还是比较麻烦。
        本笔记介绍一种简单的不用密码即可实现两台主机间的文件传输的技巧—借助Linux的nc工具,方便之处:1) Linux系统通常默认安装nc工具,不需额外安装;2) 传输文件时不需输入密码。不足之处:需要在两台机器上分别输入一条命令。^_^

1. what is nc ?
        nc是netcat的简写,关于nc是什么,man如是说:arbitrary TCP and UDP connections and listens
        nc可以方便地实现任意TCP/UDP端口的侦听,连接的建立,端口的扫描,等等。也即,nc既可以作为server以TCP或UDP方式侦听指定端口,也可以作为client发起TCP连接或方式UDP包。下面要介绍的技巧就是借助其TCP连接来实现主机间文件传输的。
        nc的控制参数不少,常用的几个参数如下所列:
        1) -l
        用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接。
        2) -p <port>
        指定nc要使用的端口。若之前已指定-l,则这里的-p指定具体的侦听端口;若未指定-l,则表示向这个端口发起连接。
        备注:nc要连接的目的端口可以是具体的整数,也可以直接通过服务名指定,这种情况下,nc会负责将name映射至某个well-known port(可用cat /etc/services查看这些端口跟服务名的映射关系)
        3) -s <hostname/ip-address>
        指定发送数据的源IP地址,适用于多网卡机器
        4) -u
        指定nc使用UDP协议,默认为TCP
        5) -v
        输出交互或出错信息,新手调试时尤为有用
2. use nc to transmit data between hosts
        经过上面对nc的简介,估计不少同学已经知道怎么用nc来实现两台机器间的文件传输了。这里对实现流程做简单说明。
        1)在数据接收方的机器上侦听指定端口

     nc -l -p 8210 > demo.txt        # 在本机8210端口侦听TCP连接,将收到的数据写入文本文件
nc -l -p 8210 > demo.tar.bz2 # 在本机8210端口侦听TCP连接,将收到的数据写成压缩文件

2)在数据发送方机器上向指定地址(ip+port)以TCP方式发送数据  

     nc dest_ip 8210 < demo.txt      # 向ip为dest_ip的机器的8210端口发送demo.txt文件
nc dest_ip 8210 < $(tar -jcvf demo.tar.bz2 demo.txt) # 压缩后发送

3)-v打印出错信息
        接收方:nc -v -l -p 8210 

        发送方:nc -v dest_ip 8210

注意:使用nc传文件时,需注意操作次序,receiver先侦听端口,sender向receiver所在机器的该端口发送数据。否则发送失败。

=============== EOF ===============

最新文章

  1. 【codeblocks配置】C对Mysql数据的查询
  2. 微信公众平台开发教程(十一)微信&quot;企业号“上线
  3. 利用扩展事件(Xevents)捕捉高消耗查询
  4. if语句写在while语句外面效率更高
  5. PuTTY + Xming 远程使用 Linux GUI
  6. android studio github 项目导入问题
  7. 使MYSQL能被外部访问_xeyuu_新浪博客
  8. HDU 1232:流问题(并检查集合)
  9. 201521123111《Java程序设计》第9周学习总结
  10. PAT乙级--1003
  11. 关于AJAX使用中出现中文乱码的问题
  12. C# http 性能优化500毫秒到 60 毫秒
  13. File类 详解!
  14. ASP.NET开发总结
  15. python_条件语句
  16. [hdu5503]EarthCup[霍尔定理]
  17. 【WIN10】WIN2D——基本圖形的繪製
  18. Tomcat访问日志浅析 (转)
  19. Mac下Intellij IDea发布JavaWeb项目 详解二 (新建Module)
  20. 5分钟实现集群-NTP时间同步

热门文章

  1. JMF框架
  2. no module named flask.ext.login
  3. MYSQL 多行转多列
  4. JS字符串
  5. 优先队列(stl)
  6. UIStepper swift
  7. [编译] g++ 与 Makefile
  8. D3js初探及数据可视化案例设计实战
  9. [canvas]通过动态生成像素点做绚丽效果
  10. 基于visual Studio2013解决C语言竞赛题之0306分数转换
  11. 浅析Linux的软中断的实现
  12. 【IACV】边缘检测技术传统的方法与理论
  13. Little Sympathy for Bear Stearns : NPR
  14. org.apache.commons.lang3.tuple.Pair 作为更新参数,XML 中的 Sql 取不到值、报错
  15. 转 the best for wcf client
  16. 瓦片切图工具gdal2tiles.py改写为纯c++版本(二)
  17. Confluence 6 选择一个外部数据库
  18. fresco xml配置属性不起作用
  19. Java面试题全集
  20. 进程控制fork vfork,父子进程,vfork保证子进程先运行