同じホームネットワーク上の別のLinuxマシンとフォルダーを共有するにはどうすればよいですか?


44

あるUbuntuマシン上のフォルダーを、同じホームネットワーク上の別のUbuntuマシンと共有しようとしています。フォルダを右クリックして[共有オプション]を選択すると、フォルダを共有するためにWindowsネットワーク共有サービスをインストールする必要があることが通知されます。Windowsはこれと何の関係がありますか?Windowsマシンと共有しようとはしていません...

回答:


22

Windowsはこれと何の関係がありますか?Windowsマシンと共有しようとはしていません...

あなたは正しい、これは混乱する可能性があります。それでは、まず用語を明確にしてみましょう。

Windowsがファイルとプリンターを共有する方法はSMBと呼ばれます。SAMBAプロジェクトの人々は、MicrosoftのすべてのプロトコルとLinux仕様を実装しています。したがって、Ubuntuは、Sambaと呼ばれるWindowsと同じ種類のファイル共有をサポートしています。

  • SAMBAを使用して、Linuxマシン間でファイルを共有できます。実際、たとえば、Windowsコンピューターを持っている友人がいる場合に、それを好むかもしれません。

  • 別の方法として、ファイルを共有するLinuxの方法(NFS(Network File System))を使用することもできます- 前の質問に対するこの回答は、その方法を説明しています。(しかし、かなり技術的です)

そのため、[共有オプション]ダイアログでパッケージのインストールを求められたとき、実際にはMicrosoftソフトウェアなどはインストールしていません。さあ、それをしてください、それは完全に安全です。

補遺:

Salih Eminの指示に従う前に、共有を有効にしてみてください。動作しない場合は、簡単な警告が表示されます。必要に応じて、Salihが説明する手順を実行できます。新しくインストールした最新のシステムで試してみましたが、実際にこれを行う必要がありました。


1
説明ありがとう。おかしいのは、私がマイクロソフトから逃げようとしていることであり、Linuxでさえ彼らの仕事の一部を使用していることがわかりました。あー
エミーズ

4
さて、サンバの人々は、マイクロソフト自身よりもはるかに優れたマイクロソフトのプロトコルを実装しています。そこにある慰め:-)
ステファノパラッツォ

8

現時点では、ランチパッドにリストされているLucidに小さなバグがあります:バグ#536766。このバグは、ファイル共有のセットアップを完了するために必要なパッケージをインストールするようユーザーに促しません。それが解決されるまで、ここに簡単な回避策があります。

libapache2-mod-dnssdをインストールして再起動する必要があります。このリンクをクリックしてインストールするか、ソフトウェアセンターでlibapache2-mod-dnssdを見つけます。

インストールしたら、[ システム]→[設定]→[個人ファイルの共有]に移動し、[ネットワーク上のパブリックファイルを共有する]ボックスをオンにします。

代替テキスト

すべて完了したら、パブリックフォルダ内でパブリックファイルの共有を許可しているネットワーク上の他のすべてのコンピュータを表示できるようになります。[ 場所 ] [ ネットワーク ]をクリックすると、使用可能なすべてのコンピューターとその共有パブリックフォルダーが表示されます。

サーバーアイコンをダブルクリックすると、デスクトップに関連するパブリックフォルダーがマウントされます。

リンクテキスト経由


それらのパッケージはapache Webサーバーに関連付けられていますか?私はすでにLAMPスタックの一部としてApacheをインストールしていますが、それを壊したくありません。
エミーズ

1
素晴らしい発見!(私は答えを編集しました。このパッケージは依存関係としてapache2.2-binをインストールします。このように簡単だと思われました)
Stefano Palazzo

1
@EmmyS、パッケージはApacheのインストールを中断しません。これらを問題なく実行しています。
RolandiXor

ディレクトリを実際に共有するのに役立つこのリンクを見つけました:itsfoss.com/share-folders-local-network-ubuntu-windows
MrMas

5

LinuxマシンでsimpleHTTPサーバーを実行し、他のマシンで同じHTTPサーバーにアクセスできます。

手順:

  1. まず、共有するフォルダーからターミナルを起動します。
  2. ターミナルで実行- python -m SimpleHTTPServer
  3. を使用してIPを確認してくださいifconfig
  4. 他のマシンのブラウザにIPアドレス:8000を入力します(たとえば、IPが127.3.4.123の場合、ブラウザに127.3.4.123:8000と入力します)

ダウンロードするフォルダーに必要なファイルを取得します。


4
ダウンロード!=共有。
エミーズ14

python3のためにそれはだが、私にとっては、素晴らしい答えだpython3 -m http.server
VanDavv

2

私はそれがSAMBAパッケージが下にリストされているか、それが説明の少なくとも一部であると信じています。別の方法として、別のメカニズムを使用すると思われる環境設定->ファイル共有を試すことができます。ただし、Sambaはインストールしておくと便利です。


私は、SambaがLinuxとWindowsの間の共有を許可したという印象を受けました(間違って、どうやら)。私はWindowsと共有したくない、別のLinuxマシンとだけ共有したい。
エミーズ

いいえ、あなたは正しかった。もちろん、両方のマシンにsambaをインストールする必要があります。
ステファノパラッツォ

両方のマシンでSMBプロトコルを使用する必要があります。Windowsはこれを1つの方法で行います。Linuxマシンは、sambaでそれを行います。
ハリネズミの認知症

2

「qweborf」をインストールできます。HTTPを介してディレクトリを共有し、他のホストはブラウザでアクセスできるようになります。

また、webdavを有効にし、ディレクトリをファイルシステムの読み取り/書き込みとしてマウントできるようにすることもできます(davfs2、KDE、Gnome2、OsXでテスト済み)。


2

Ubuntuへのシームレスな統合が必要で、Windowsの互換性に関心がない場合は、SSHが最適です。

LAN経由で2台のLinuxマシン間でファイルを共有するにはどうすればよいですか?を参照してください

SSHサーバーのインストールが必要になる場合があります。

sudo apt-get install openssh-server

クライアントのファイルマネージャーアプリから、次の方法でサーバーにアクセスできます。

sftp://servername.local

端末から、またはプログラムでファイルにアクセスするには、を使用sshfsしてクライアントのファイルシステムにマウントポイントを作成します。


SSHを介してファイルをコピーする他のプログラム的な方法にはscp、および(さらに良い)がありrsyncます。
nobar

2

Linuxのみのネットワークの場合、SSHFSはネイティブで安定しており、非常に高速であることがわかりました。2つのXubuntuマシン(18.04)がSSH経由で/ homeフォルダーを共有しています。

パスワードを入力せずにfstabを使用して、このsshfsをセットアップし、再起動後に自動的に再接続する方法を次に示します。リモートのサスペンド/再開後に再接続する方法については、serverfaultユーザーkubanczykに感謝します。

接続元のコンピューターには「ローカルマシン-surfbox」を、接続先のコンピューターには「リモートマシン-devbox」を使用します。

以下の「remoteuser」をリモートマシンにログインするユーザー名に、「localuser」をローカルマシンにログインするユーザー名に置き換えます。ユーザー名を確認するにはecho $USER、リモートマシンとローカルマシンのターミナルに入力します。

また、userIDとgroupIDを確認してください。両方とも1000でなければなりません。

GroupID:id -g localuser UserID:id -u localuser

1.ローカルおよびリモートマシンのIPアドレスを取得します。

hostname -I

ローカルマシン( 'surfbox')に192.168.1.150を使用し、リモートマシン( 'devbox')に192.168.1.151を使用します

2.パッケージをローカルおよびリモートマシンにインストールする

sudo apt install sshfs fuse ssh

3.グループヒューズを作成し、それにlocaluserを追加します

グループを作る: sudo groupadd fuse

グループにlocaluserを追加します。 sudo usermod -a -G fuse $user

4. fuse configで「allow_other」を有効にします

fstabにマウントするときにこのオプションが必要になります

/etc/fuse.confコマンドラインエディターで編集します。前にハッシュタグを削除してuser_allow_other保存します。

5.ローカルマシンでSSHキーを生成する

プロンプトが表示されたらパスワードを入力しないでください。Enterキーを押して空白のままにします。

ssh-keygen -t rsa -C youremail@example.com

キーはローカルマシンのホームディレクトリ/.sshフォルダーに保存されます

6.ローカルマシンの公開SSHキーをリモートマシンに転送します

ssh-copy-id -i ~/.ssh/id_rsa.pub remoteuser@192.168.1.151

リモートマシンのリモートユーザーのパスワードの入力を求められます。ローカルマシンの公開キーが、リモートマシンの〜/ .ssh / authorized_keysファイルに追加されました。

7.リモートマシンの/ homeフォルダーをマウントするローカルマシンの/ mntフォルダーにディレクトリを作成します。

リモートマシンにとって意味のある名前を選択してください。

sudo mkdir /mnt/devboxhome

8.ターミナルからリモートマシンの/ homeディレクトリをマウントします

sshfsの構文は

sshfs [user@]host:[directory] mountpoint [options]

を使用しております

sudo sshfs [remoteuser]@192.168.1.151:/home/[remoteuser] /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/[localuser]/.ssh/id_rsa

例:「steve」がローカルマシンとリモートマシンの両方のユーザー名であると仮定する

sudo sshfs steve@192.168.1.151:/home/steve /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/steve/.ssh/id_rsa

RSA公開鍵をリモートマシンに転送したので、リモートユーザーパスワードの入力を求められません。

マシンが信頼されていないという警告が表示され、追加する必要がある場合はプロンプトが表示されます。リモートマシンを信頼済みとして追加します。

9.確認:リモートマシンの/ homeディレクトリを参照する

ローカルマシンのターミナルで、/ mnt / devboxhomeの下にリモートマシンの/ homeディレクトリをリストできるようになりました。

cd /mnt/devboxhome ls

または、Nautilusを使用してディレクトリを参照します。すばらしいです。

10.再起動後の再接続を有効にする

これを実現するために、/ etc / fstabにエントリを追加します。ローカルマシンのユーザーIDとグループIDが必要です。これを見逃した場合は、イントロをご覧ください。コマンドラインエディタで/ etc / fstabを編集し、/ etc / fstabの最後にこれらの2行を追加します

# Mount devbox at boot remoteuser@192.168.1.151:/home/[remoteuser]/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/[localuser]/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0

  • delay_connectは、リモートマシンにディレクトリをマウントしようとするまでネットワークが稼働するまでカーネルを待機させます。
  • ブート時にルートとして実行しているため、localuserのホームディレクトリに保存されているキーファイルを指定する必要があります。
  • allow_other-実際のマウントを行うユーザー以外のユーザーは、マウントされたファイルシステムにアクセスできます。
  • idmap = user-接続しているユーザーのUIDのみを変換します
  • 再接続、ServersLiveInterval、ServerAliveCountMax -sshはキープアライブpingを送信します。場合はServerAliveCountMax、連続するpingが失敗し、再接続します。

ローカルマシンとリモートマシンにスティーブとしてログインするユーザーは次のようになります。

steve@192.168.1.151:/home/steve/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/steve/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0

重要:リモートディレクトリの後ろのスラッシュ:steve@192.168.1.151:/ home / steve /

/ etc / fstabを保存して....

11.再起動

これで、ローカルマシンのリモートマシン/ homeディレクトリにアクセスできるはずです。/ mnt / devboxhome Nautilusでは、このフォルダーをプレースバーにドラッグできます。

12.繰り返し

リモートマシンで同じ手順を再度実行して、ローカルマシンの/ homeディレクトリを共有します。


素敵な答え。私はfstabでsshfsファイルシステムをマウントできることを知りませんでした。
オーガニックマーブル

0

ファイルを共有する私の方法:

sudo npm install -g http-server

共有したいフォルダーに移動し、ターミナルを開いて次のコマンドを実行します:

http-server -o 

そのコマンドの出力で示されたIPアドレスで、同じネットワーク内のすべてのマシンのそのフォルダーにアクセスできます。


0

zx81roadkillが正しい場合は、「sshfs」を使用します。Sambaはがらくたで、NFSはごみです。Sshfsは、ここカリフォルニアの私のコンピューターからアルゼンチンのコンピューターまで完全に使用可能です。それは完全に安全で、他のものと同じくらい高速です(私はギバビットラインを持っています)。

Sshfsは、SambaやNFSと比較して比較的新しいですが、どちらよりもはるかに優れています。以下に実行例を示します(すべてのパッケージがインストールされていると仮定)

# mount "username"'s home directory on "machine"
  mkdir -p /tmp/my_mount ; sshfs username@machine: /tmp/my_mount
# mount the root directory on "machine" (note: if "username" on "machine"
# can't write to the file, neither will you.  You have "username"'s privs
  mkdir -p /tmp/my_mount ; sshfs username@machine:/ /tmp/my_mount
# mount the directory "Videos" on "username"'s account on "machine"
  mkdir -p /tmp/my_mount ; sshfs username@machine:Videos /tmp/my_mount

パスワードを入力すると、/ tmp / my_mountには「machine」上の「username」のすべてのファイルが含まれます。SambaやNFSをいじってはいけません。それらは、構成またはセットアップのいずれかを行うのに意味のない痛みです。

アンマウントするには:

fusermount -u /tmp/my_mount

そして、それが失敗した場合(何らかの理由で):

umount -f /tmp/my_mount

マウントポイントを介して送信されるすべてのデータは暗号化されます。なぜこれがリモートマシンへのマウントを行う標準の完全に受け入れられた方法ではないのかは、私には謎です。シンプルさの点で、他のどの方法よりもはるかに優れています。

生の速度が必要な場合は、おそらくジャンクSambaの肥大化した部分がそれを行うか、NFSが必要です。知りません、100 MB / s +で十分です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.