Linuxのヒント:ファイル転送にNCを使用する

創造を続け、成長を加速させましょう!「ナゲッツデイリーニュープラン・6月アップデートチャレンジ」に参加して2日目です。クリックしてイベントの詳細をご覧ください。

以前にサーバーにファイルをコピーする場合は、scpを使用するか、ftpサーバーにアップロードしてから、使用する必要のあるサーバーに再度ダウンロードします。これら2つの方法に問題はありませんが、欠陥もより明白です。

  • scp:認証の確認を依頼する
  • ftp:サードパーティのストレージシステムが必要です。使用後に削除しない場合、ファイルは常にそこにあります。

次に、ファイルコピーを実現するためのncat(つまり、nc)の使用法を紹介します。

ncナレッジポイント

1.基本的な手順とインストール

ncat / ncは、catに似たネットワークコマンドであり、ネットワークの読み取り、書き込み、リダイレクトで一般的に使用されます。非常に強力な機能を提供します。この記事では、基本的な使用姿勢とアプリケーションシナリオを紹介します。

まず、システムがインストールされているかどうかを確認します

  • Ubuntuにはデフォルトでこのコマンドがあります
  • centosは単独でインストールする必要があります
# 判断是否有安装 ncat命令
which ncat
# which nc 也可以判断是否安装有这个命令
复制代码

インストールされていない場合は、次のコマンドを実行します

sudo yum install nc -y
#  yum install nmap-ncat -y
复制代码

2.ポートリンクを聞きます

マシンのポートをリッスンすることは、ネットワークサービスを開始することと同じです

# nc -l 端口号
nc -l 9999
复制代码

知らせ

  • 上記のデフォルトのリスニングはtcpポートです
  • udpを指定するには、nc -l -u 9999

3.リモートサーバーに接続します

# nc ip 端口号
nc 127.0.0.1 9999

# 如果需要链接的是udp端口,可以加一个 -u
复制代码

接続後、情報を送信できます(サーバーはEnterキーを押した後、クライアントから送信データを受信します)

3.ncファイルのコピー

上記の場合に基づいて、ncを使用してファイルのコピーを実行できます

ターゲットサーバー、ポートリスニングを開始します

nc -l 9999 > save.txt
复制代码

ファイルのアップロードに使用される、ファイルが属するサーバー

nc 127.0.0.1 9999 < data.txt
复制代码

説明する

  • 上記はファイル転送のためにudpポートを取ることも-uでき、それを追加することができます
  • プロセスを逆にして、ファイルが属するサーバーのポートでリッスンし、ターゲットサーバーを使用してファイルをダウンロードすることもできます(上記の方法は、ファイルが属するサーバーがアクセスを制限するシナリオに適用できます)。ポート;ターゲットサーバーのIPが不明な場合は以下が適用されます)
# 文件所属服务器
nc -l 9999 < data.txt

# 下载文件的服务器
nc 127.0.0.1 9999 > save.txt
复制代码

4.プロキシとしてのnc

単純なフォワードとしてncを使用する

ncat -l 8080 | ncat 192.168.0.2 80
复制代码

上記のコマンドは一方向転送を実装し、ローカル8080にリンクされた接続をに転送します192.168.0.2:80

双方向パイプラインを実装する場合は、次のように実行できます

mkfifo 2way
ncat -l 8080 0<2way | ncat 192.168.0.2 80 1>2way
复制代码

上記のプロキシ方式に加えて、-cコマンド

ncat -u -l  80 -c  'ncat -u -l 8080'
复制代码

5.まとめ

ncはサーバー間のネットワークデータ伝送によく使用され、その基本的なパラメータは次のとおりです(nc -h取得による)

-4 使用IPV4
-6 使用IPV6
-c, --sh-exec <command> 接收到的命令通过command(例如/bin/bash)执行
-e, --exec <command> 和-c差不多
--lua-exec <filename> 接收到的数据通过脚本filename执行
-m, --max-conns <n> 最大并发连接数(单独开启不生效,需配合--keep-open/--broker使用)
-d, --delay <time> 读写收发间隔时间
-o, --output <filename> 将会话数据转储到文件
-i, --idle-timeout <time> 读写超时时间
-p, --source-port port 指定连接使用的源端口号(client端使用)
-s, --source addr 客户端指定连接服务器使用的ip(client端使用)
-l, --listen 绑定和监听接入连接(server端使用)
-k, --keep-open 在监听模式中接受多个连接(配合-m使用)
-n, --nodns 不使用DNS解析主机名
-t, --telnet 响应telnet连接
-u, --udp 使用udp协议,默认tcp
-v, --verbose 显示详细信息
-w, --wait <time> 连接超时时间
--allow 允许指定主机连接
--allowfile 允许指定文件内的主机连接
--deny 拒绝指定主机连接
--denyfile 拒绝指定文件内的主机连接
--broker 启用代理模式
--proxy <addr[:port]> 指定代理主机ip和port
--proxy-type <type> 指定代理类型("http" or "socks4")
--proxy-auth <auth> 代理身份验证
复制代码

一般的に使用されるコマンド-lは、ポート番号を監視するために-v使用され、接続の詳細を表示するために使用され-u、udpポートが監視されていることを示します

このペーパーでは、2つの簡単な例を示します

  • ファイル転送
  • 転送をリクエストする

灰色の連絡先

本がないよりも本がない方が良いです。上記の内容は純粋に1つの家族からのものです。個人的な能力が限られているため、必然的に脱落や間違いがあります。バグを見つけたり、より良い提案がある場合は、批判して修正してください。 。 ありがとうございました

  • 個人サイト:blog.hhui.top
  • Weiboアドレス:Xiaohuihuiブログ
  • QQ:グレーグレー/ 3302797840
  • WeChatパブリックアカウント:灰色のブログ

おすすめ

転載: juejin.im/post/7102376741728944164
おすすめ