我的 Mac OS X 有很多问题。系统只能通过 SSH 访问,无法通过 FTP 和 SMB 访问。因此我尝试集中精力于 FTP,这似乎更容易调试,而且这可能是两种服务都存在的问题。
首先我使用以下命令启用 ftpd:
sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist
然后我尝试 ftp。但什么也没发生。我收到标准错误:操作超时。
之后我再次尝试,并在 MacBook Pro 上进行了 tcpdump。对我来说看起来不错:
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 目录中还有另一个文件。该文件的启动命令行开关错误。删除此文件后,访问就可以正常工作了。