用nc命令来进行文件传输

从官博上转载过来,很有用的一个小技巧


工作中,由于开发机与线上机器分属不同的机房,需要跳板机进行登录,而跳板机的scp功能貌似受限,导致线上和线下机器传输数据非常麻烦,速度还较慢。得高手指点,nc也可用于文件传输,且不依赖于scp。

用法很简单:

1、从跳板机传文件至开发机:

在跳板机上: nc -l  端口号 < 待传输文件名

在开发机上: nc  跳板机ip 端口号 > 待传输文件名

2、从开发机传文件至跳板机:

在跳板机上: nc -l 端口号 > 待传输文件名

在开发机上: nc 跳板机ip 端口号 < 待传输文件名

文件传输结束后,都会自动关闭本次侦听连接。

你也来试试吧 :) .

在 Linux 系统之间进行文件传输时,有多种命令和工具可以使用,每种工具适用于不同的场景和需求。以下是一些常用的文件传输方式及其使用方法: ### 使用 `scp` 进行安全复制 `scp` 是基于 SSH 协议的安全文件复制命令,适合在本地和远程主机之间传输文件。它支持加密传输,保证了数据的安全性。 - **从本地复制文件到远程主机** ```bash scp /path/to/local/file username@remote_host:/path/to/remote/directory ``` - **从远程主机复制文件到本地** ```bash scp username@remote_host:/path/to/remote/file /path/to/local/directory ``` - **递归复制整个目录到远程主机** ```bash scp -r /path/to/local/directory username@remote_host:/path/to/remote/directory ``` - **使用指定的 SSH 端口进行复制** ```bash scp -P 2222 /path/to/local/file username@remote_host:/path/to/remote/directory ``` - **使用私钥文件进行身份验证** ```bash scp -i /path/to/private_key /path/to/local/file username@remote_host:/path/to/remote/directory ``` ### 使用 `rsync` 实现增量同步 `rsync` 是一个功能强大的远程文件同步工具,支持增量备份、压缩传输、权限保留等特性,适合在需要频繁同步大量数据的场景中使用。 - **基本用法** ```bash rsync -avz /path/to/local/file username@remote_host:/path/to/remote/directory ``` 其中 `-a` 表示归档模式(保留权限、时间戳等),`-v` 表示显示详细信息,`-z` 表示启用压缩传输。 ### 使用 `nc`(Netcat)进行快速传输 `nc` 是一个网络工具,可以在两台主机之间建立 TCP/UDP 连接并传输数据,适合在不需要加密的局域网环境中使用。 - **接收方监听端口** ```bash nc -l 9000 > received_file ``` - **发送方发送文件** ```bash nc 192.168.1.128 9000 < file_to_send ``` 这种方式适合快速传输文件,但不适用于公网环境,因为缺乏加密机制[^3]。 ### 使用 `curl` 进行基于 URL 的传输 `curl` 支持多种协议(如 HTTP、FTP、SFTP 等),适合在脚本中进行自动化文件下载和上传。 - **下载文件并保存为指定名称** ```bash curl -O http://example.com/path/to/file ``` - **使用用户名和密码访问受保护资源** ```bash curl -u username:password http://example.com/protected/file ``` - **发送 POST 请求并上传数据** ```bash curl -d "param1=value1&param2=value2" http://example.com/submit ``` - **指定请求方法为 GET 并传递参数** ```bash curl -X GET "http://example.com/api?param1=value1" ``` - **设置请求头信息** ```bash curl -H "Authorization: Bearer token" http://example.com/api/data ``` ### 使用 `ftp` 或 `sftp` 进行交互式传输 - **使用 `ftp` 连接服务器并上传文件** ```bash ftp example.com put /local/path/file.txt /remote/path/ ``` - **使用 `sftp`(基于 SSH 的安全 FTP)连接服务器** ```bash sftp user@example.com put /local/path/file.txt /remote/path/ ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值