我有一个小型的 Ubuntu 9.04 路由器,用作 NAT 盒和 PPTP 服务器。断电后,除 PPTP 服务器外,其他设备仍能正常工作。Windows 客户端开始“在网络上注册您的计算机”,但随后显示
错误 742:远程计算机不支持所需的数据加密类型。
我做了一些研究,我认为问题出在 ppp_mppe 模块上。当我尝试运行“modprobe ppp_mppe”时,它会无限期挂起。
什么原因会导致此挂起?有什么想法可以进一步排除故障吗?
谢谢您的帮助!
更新: 我仍然遇到该问题,但是我找到了更多信息。
当第一个用户尝试连接到 pptp 时,进程列表显示 modprobe sha1 正在运行,并且每次连接尝试都会有一个 modprobe ppp_mppe 实例。如果我此时 killall modprobe,则下一次连接尝试将成功,并且一切都会正常,直到下次重新启动。我计划在未来的某个时候进行全新安装,但我真的很想找到真正的原因。
答案1
dmesg
可能会告诉您模块未加载的原因。但如果它只是挂起,那么它可能不会加载。这是我在查看日志文件后要做的事情,看看它是否指向某个特定的东西。
首先,如果您仍安装有较旧的内核版本,请重新启动并查看它是否可以正常工作。如果是这样,那么最新内核的 ppp_mppe_module 可能已损坏。我会启动到救援模式或实时 CD 上,然后 fsck 根文件系统和引导文件系统,以确保您没有任何其他损坏的文件。
其次,使用 重新安装内核sudo apt-get install --reinstall <name_of_kernel_package>
。这应该会替换该内核的所有模块,并修复损坏的模块(如果这是问题所在)。 aptitude search linux-image | grep ^i
应该会列出所有已安装的内核。
答案2
我敢打赌,断电后您已经启动了新内核。作为快速修复,您可能可以重新启动旧内核以使其尽快恢复运行,然后按照其他建议尝试重新安装内核模块等。
答案3
检查dmesg
尝试加载模块时显示的内容。那里应该有一些关于正在发生的事情的信息。您是否尝试过重新安装 pptpd 和 ppp_mppe 模块?
答案4
这可能是由于 ppp_mppe 的一些必需文件损坏造成的。您可以尝试:
strace modprobe ppp_mppe
您可以在其中看到 modprobe 正在做什么以及 ppp_mppe 在启动时尝试测试什么。然后您可以测试目录(如果存在),或者您可以删除损坏的文件...