仮想マシンAで12345番ポートで待ち受けをし、受け取ったデータをファイルに出力する仮想マシンBで、上記の待ち受けをしているホストの12345番ポートに対し、ファイルの内容を出力する仮想マシンAでファイルの内容が受け取れたことを確認この記事はこんな人におすすめ!ncコマンドの使用方法を知りたい仮想マシンを使用して実際にファイルを転送してみたいファイル転送でncコマンドを使用した場合、どのような動作をするのか知りたい記事の概要ncコマンドをどのように使用するのか、実際に使用した場合、どのような動作をするのか知るために、Linuxで仮想マシンを2つ使用して、ncコマンドでファイルの内容を仮想マシン同士で送るという検証をしました。検証の際、実際にどのような動作でファイルの内容が転送されるのか詳しく記載しています。ncコマンドの使用法についてもわかりやすく記載しています。Linuxの勉強をしている方にはとてもオススメです!なぜなら、仮想マシンを使用して1から設定を行っているため、ncコマンドでファイルを転送するために必要な設定が全部わかります。ncコマンドを利用するには、ファイアウォールに穴あけをしたりと、様々な設定が必要になります。そのため、実際にncコマンドを使用するために必要な情報を身に着けることが出来ます。ncコマンドについてncコマンドはホストからホストへ、データや、ファイルの内容を転送したりすることが出来ます。NetCatコマンドを省略したもので、実際にデータを転送るときには、TCP、UDPのプロトコルを使用してデータを転送します。11x※上記の仮想マシンA、Bはデフォルトの設定状態で使用。(仮想マシン出来立てほやほや)※WindowsのPC(メモリ8G)で上記の2種類の仮想マシンを動作させました。そのため、メモリの使用率が高かったです。今回は仮想マシン2台でncコマンドを使用してファイルの内容を転送します。事前に転送するファイルを作成しておき、ファイアウォールで穴あけ作業をしてからncコマンドを使用して、実際にファイルの内容を転送します。具体的に対応する作業の内容と手順を以下にまとめました。ファイル転送をするために行う作業リスト1.仮想マシンB⇒仮想マシンAにテキストファイルの内容を出力。2.仮想マシンAは12345番ポートで待ち受け。3.仮想マシンAは12345ポートで受信したファイルの内容をテキストファイルに出力。4.仮想マシンAのファイヤーウォールで12345ポートを穴あけ。検証内容イメージncコマンド(netcat)のインストール方法ncコマンドを使用するためにパッケージのインストールを行います。※インストール済みの方は対応不要です。epel-releaseパッケージのインストールnetcatパッケージをインストールするために、まず、epel-releaseパッケージをインストールする必要があります。インストールするコマンドは↓のコマンドです。epel-release※yumの-yオプションは、すべての問い合わせに対してyesと回答するオプションです。簡単にepel-releaseパッケージについて説明します。epel-releaseとは:epel-releaseは、yum用のレポジトリです。コマンドを実行した際に、インターネットからパッケージをダウンロード、インストールしますが、その際にダウンロード、インストールする場所(パッケージが蓄積されている保管場所)のことです。netcatコマンドは、epel-releaseのパッケージの中にあるので、epel-releaseパッケージをインストールすることで、インストールすることが可能になります。netcatパッケージのインストールnetcatパッケージのインストールは↓のコマンドでインストールする出来ます。netcat以上でncコマンドが使用できるようになりました!ncコマンドのオプション・業務でよく使う使い方ncコマンドで使用できるオプションや、業務でよく使用する使い方をご紹介します。クライアントとして動作させる方法ncコマンドでよく使用される使い方として、確認したい対象のサーバーのホストに対して、ポートを指定し、クライアントとして動作させ、疎通確認を行うという使い方をします。その際のncコマンドの使用法は以下です。12345TCPではなく、UDPで疎通の確認を行う場合は、「-u」オプションを使用する。12345サーバーとして動作させる方法ncコマンドでサーバーとして動作させ、1時的に指定したポートで待ち受けをするには↓のコマンドを使用します。※このコマンドは一度クライアントとの通信に成功するとポートが閉じてしまいます。‘cat’」でポートを解放することが出来る。ポート番号ファイルの転送方法ncコマンドを使用して直接クライアントとサーバーでファイルを転送する際に使用する方法です。<サーバーからクライアントにファイルを転送する際に使用するコマンド>サーバーで転送するファイルを指定し、ポートを解放。クライアントで、転送されたファイルを受け取り、ファイルに出力します。受け取ったファイルを出力するパス<クライアント側からサーバー側にファイルを転送るする方法>サーバー側でポートを解放し、ファイルを受け取った際の出力先を指定。クライアント側で転送するファイルの指定。転送するファイルのパス仮想マシン間でファイルを転送るための事前準備ここからは仮想マシン間でncコマンドを使用してファイルを転送する作業を行っていきます。ncコマンドを使用して、ファイルの内容を転送する前に、2つ事前に準備を行います。・仮想マシンBで、転送するファイルを作成。・仮想マシンAで12345番ポートを穴あけ。仮想マシンB(ファイルを転送する側)で転送するファイルを作成します。今回はファイル「test.log」を作成し、中身に日付を入れています。ファイルの中に入れる内容はなんでも大丈夫です。--list-all「ports:」の項目で何も記載されていないことから、12345番ポートはまだ解放されていないことが分かります。rules:2.12345番ポートを解放するためにコマンドを入力。--permanent※一時的にポートを解放するのであれば「–permanent」は不要です。「–permanent」を使用するとポートが解放されたままです。※上記のコマンドはrootの権限で実行する必要があります。--permanentsuccess3.ファイアウォールを再起動する。※ファイアウォールを再起動させないとポートを解放させても設定が反映されません。~]#4.ポートが解放されたか確認する。--list-all「ports:」の項目でtcpの12345番ポートが解放されたことが確認できます。rules:<補足>ファイアウォールの設定を変更させてポートを解放する方法で、ファイルを編集する方法もあったので、記載します。ファイアウォールの設定ファイルは「/usr/lib/firewalld/services/」のディレクトリにあります。このディレクトリの中にあるファイルを編集することでポートを解放するすることが出来ます。上記のファイルの中身は↓のような構成になっています。・/usr/lib/firewalld/services/の中にpublicなどというファイル名のファイルがあると思うのでそのファイルに以下を追加する。port=”12345′′/>「ssh.xml」を例にとると↓の太文字の部分に追加する。←この部分</service>・ファイアウォールを再起動する。※今回は日付の内容を転送しているため、日付の内容が表示されています。幅広く携わり、現在は大規模政府公共データの移行プロジェクトを担当。