ソリューション1

ソリューション1

netnsここではVPNを使用しましたが、sshfs正常に動作しませんでした。私が試したことは次のとおりです。

root@ubuntu:/mnt# ip netns exec secured sshfs -d -o sshfs_debug -p PORT USER@HOST: MOUNTPOINT
SSHFS version 2.8
FUSE library version: 2.9.7
nullpath_ok: 0
nopath: 0
utime_omit_ok: 0
executing <ssh> <-x> <-a> <-oClearAllForwardings=yes> <-oPort=PORT> <-2> <USER@HOST> <-s> <sftp>
Server version: 3
Extension: [email protected] <1>
Extension: [email protected] <2>
Extension: [email protected] <2>
Extension: [email protected] <1>
Extension: [email protected] <1>
unique: 1, opcode: INIT (26), nodeid: 0, insize: 56, pid: 0
INIT: 7.26
flags=0x001ffffb
max_readahead=0x00020000
   INIT: 7.19
   flags=0x00000011
   max_readahead=0x00020000
   max_write=0x00020000
   max_background=0
   congestion_threshold=0
   unique: 1, success, outsize: 40

つまり、lsマウントポイントには何も表示されません。アイテムがまったくありませんsshfs 何も印刷しないでくださいon ls、これもおかしいようです。何が問題なのでしょうか?

ベストアンサー1

残念ながら、これは予想される動作です。

http://man7.org/linux/man-pages/man8/ip-netns.8.html

ip netns execはインストールネームスペースを作成し、すべてのネットワーク固有のネームスペース設定ファイルをネットワークネームスペース対応アプリケーションのファイルルールである/ etcの既存の場所にバインドマウントすることによってこの設定を自動的に処理します。

つまりip netns exec <namespace> <command>、 を使用すると、コマンドは他のネットワークネームスペースだけでなく、他のマウントネームスペースでも実行されます。要求どおりにインストールは成功しましたが、sshfsインストール内容を表示できません。


ソリューション1

単にネットワークコマンドプロンプトを開き、そこで作業を開始できます。

ip netns exec secured bash
sshfs -d -o sshfs_debug -p PORT USER@HOST: MOUNTPOINT
# ... use MOUNTPOINT

ソリューション2

共有を作成したら、マウントネームスペースを再入力できます。

    ip netns exec secured sshfs -d -o sshfs_debug -p PORT USER@HOST: MOUNTPOINT
    ps -ef | grep sshfs
    root 1880     1  0 13:15 ?        00:00:00 sshfs -p PORT USER@HOST:. MOUNTPOINT

    # Now run a command (ls) in the same mount namespace
    nsenter --mount -t 1880 ls

    # You can of course run a command prompt there
    nsenter --mount -t 1880 bash

解決策3

これはより複雑になる可能性があり、まだこのオプションを正しく見ていません。

上記の引用によると、マウントネームスペースは追加のネットワーク構成に使用されます。しかし理論的にはchroot

入力ネットワーク名前空間を使用nsenter --netし、chrootaを使用して必要なネットワーク構成を設定できます。これにより、sshfsデフォルトのインストール名前空間内で実行できます。

おすすめ記事