У меня много проблем с моей Mac OS X. Система доступна только через SSH, но не через FTP и не через SMB. Поэтому я попытался сосредоточиться на FTP, кажется, его легче отлаживать, и, возможно, это одна проблема для обеих служб.
Сначала я включил ftpd с помощью:
sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist
Затем я пытаюсь зайти на ftp. Но ничего. Я получил стандартную ошибку: Operation timed out.
После этого я попробовал еще раз и сделал tcpdump на MacBook Pro. Выглядит нормально для меня:
tdmacpro:~ root# tcpdump port 21
tcpdump: data link type PKTAP
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on pktap, link-type PKTAP (Packet Tap), capture size 65535 bytes
17:32:53.539323 IP 192.168.0.58.49191 > 192.168.0.2.ftp: Flags [S], seq 2091779555, win 65535, options [mss 1460,nop,wscale 3,nop,nop,TS val 271391148 ecr 0,sackOK,eol], length 0
Итак, пакеты доходят до MacBook Pro, но он не отвечает.
После этого я создал новую виртуальную машину на моем MacBook Pro, чтобы быть уверенным, что никакой переключатель не создаст никаких проблем. Затем ftp-клиент был в моей виртуальной машине. Но та же ошибка.
После этого я попробовал ftp user@MBP_IP, снова та же ошибка.
После этого я отключил fptd с помощью
sudo -s launchctl unload -w /System/Library/LaunchDaemons/ftp.plist
и запустил ftpd вручную с помощью
/usr/libexec/ftpd -d -D -l -U
снова та же проблема.
Затем я использовал другой терминал и сделал:
ftp localhost
Это работает. Так что я думаю, что ftpd настроен правильно. Но я также контролировал ftp.plist
с новой установкой. Тот же контент.
Есть ли у кого-нибудь еще предложения, как локализовать проблему или как ее решить?
решение1
Вы пытаетесь подключиться через это:
ftp localhost
Когда я считаю, что вы хотите, sftp
что это вариант SSH, ftp
который все/все используют в настоящее время; не-SSH ftp просто слишком уязвим. Так что попробуйте это вместо этого:
sftp localhost
Или это:
sftp user@localhost
решение2
Итак, я решил проблему. В пользовательском каталоге LaunchDaemons был еще один файл. У этого файла были неправильные ключи командной строки запуска. После удаления этого файла доступ заработал.