Я слышал, что общий доступ к NFS через туннель SSH невозможен в Mac OS X: http://biowiki.org/MountingNFSThroughSSHTunnel
Я 2 дня пытался сделать это, но у меня ничего не вышло. Неужели это невозможно? Или что мне делать?
Получилось! В основном я следовал руководству, на которое ссылался в вопросе. Однако ОС, используемая в вопросе, отличается от CentOS и FreeBSD.
Сначала просто запустите FreeBSD с помощью SSH и NFS. Я использовал свежую новую установку в ВМ. Я сделал каталог, чтобы поделиться ttt
.
mkdir /ttt
chmod 777 /ttt
И экспортировал через NFS, добавив эту строку в /etc/exports
/ttt -alldirs
И добавьте эту строку в /etc/rc.conf
mountd_flags="-n"
Все сделано. Больше не требуется настройка на стороне сервера.
Флаг -n
включает монтирование без полномочий root. Кажется, что это проблема с безопасностью, но это самый простой способ. Я запрошу новый вопрос о безопасности этого флага.
И установите 2 туннеля SSH.
ssh -2 -N -L 5000:localhost:2049 eonil@test.local
ssh -2 -N -L 5001:localhost:1019 eonil@test.local
test.local
это адрес ящика FreeBSD. И localhost
в команде означает сам ящик FreeBSD. (Это будет оцениваться на стороне сервера) Вам нужно открыть несколько окон терминала, потому что я не установил -f
чтобы SSH оставался на переднем плане. Просто для проверки.
Номер порта 2049
порт по умолчанию для сервера NFS, и 1019
порт по умолчанию mountd
. Вы должны всегда указывать эти номера портов, потому что NFS не имеет официального номера порта по умолчанию. (Это просто стандарт де-факто :) Насчет mountd я не знаю. 2 дня ушло на то, чтобы узнать, что я должен указать эти проклятые номера портов.
А в другом терминале монтировать через туннели SSH.
mount_nfs -v -o port=5000,mountport=5001,tcp localhost:/ttt /tttm
я использовал -v
для сообщений журнала. у меня есть /tttm
папка на моем Mac. Эти сообщения,
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
переключатели выглядят небезопасно. Если вы знаете конфигурацию получше, дайте мне знать. Спасибо.
В Snow Leopard mountport
и port
варианты, похоже, поддерживаются, но если руководство лжет (что не так уж необычно, поскольку Apple часто просто копирует руководства FreeBSD), вы не сможете этого сделать. ssh
не знает, как туннелировать Sun RPC или UDP; вам нужно будет добавить оба из них в ssh
и удаленный sshd
, и Sun RPC в частности, будет, мягко говоря, сложно.
(strings /sbin/mount_nfs
похоже, указывает на то, что эти параметры фактически поддерживаются.)