我听说在Mac OS X上通过SSH隧道的NFS共享是不可能的: http : //biowiki.org/MountingNFSThroughSSHTunnel
我已经尝试了两天,但是我失败了。 这真的不可能吗? 或者我该怎么做?
在Snow Leopard中, mountport
和port
选项似乎是被支持的,但是如果手册在说谎(并不常见,因为苹果通常只是复制FreeBSD手册),那么你将无法做到这一点。 ssh
不知道如何隧道或RPC或UDP; 你将不得不把这两个添加到ssh
和远程sshd
,特别是Sun RPC将是很难说的。
( strings /sbin/mount_nfs
似乎表明这些选项实际上是受支持的。)
我成功了! 大多数情况下,我遵循我在问题中链接的教程。 然而问题中使用的操作系统是CentOS与FreeBSD不同的地方。
首先使用SSH和NFS启动FreeBSD。 我在VM中使用了全新的安装。 我做了一个目录分享ttt
。
mkdir /ttt chmod 777 /ttt
并通过将此行添加到/etc/exports
来通过NFS /etc/exports
/ttt -alldirs
并将此行添加到/etc/rc.conf
mountd_flags="-n"
全做完了。 不需要更多的服务器端设置工作。
标志-n
启用非根安装。 感觉有些安全问题,但是这是最简单的方法。 我会发布一个关于这个标志的安全性的新问题。
并build立2个SSH隧道。
ssh -2 -N -L 5000:localhost:2049 [email protected] ssh -2 -N -L 5001:localhost:1019 [email protected]
test.local
是FreeBSD框的地址。 而命令中的localhost
意味着FreeBSD盒子本身。 (这将在服务器端进行评估)您必须打开多个terminal窗口,因为我没有设置-f
保留SSH前台。 只是为了检查。
端口号2049
是NFS服务器的默认端口, 1019
是mountd
默认端口。 您必须始终指定此端口号,因为NFS没有正式的默认端口号。 (这只是事实上的标准:)我不知道mountd。 了解到我必须指定这些该死的端口号的事实了2天。
而在其他terminal中,通过SSH隧道进行挂载。
mount_nfs -v -o port=5000,mountport=5001,tcp localhost:/ttt /tttm
我使用-v
作为日志消息。 我的Mac上有/tttm
文件夹。 这些消息,
mount localhost:/ttt on /tttm mount flags: 0x0 127.0.0.1 tcp,port=5000,mountport=5001, fh 28 ea58774dc6ccd11b0c000000016a00003300c1da0000000000000000 NFS options: 0x3004200 fg,retrycnt=1,vers=3,sec=sys (1)
印刷和共享卷出现在位置/tttm
!
我的方法可能有很多安全问题。 如chmod 777
或-n
开关看起来不安全。 如果你知道更好的configuration,请让我知道。 谢谢。