L2TP在Linux桌面上一直是「二等公民」,NM一直没有加入官方的L2TP插件,因为NM开发者觉得现有的L2TP工具质量不高,连不用配置文件直接用命令参数或者stdin驱动都不行。(最近的一个好消息就是xl2tpd复活了:https://github.com/xelerance/xl2tpd

但是Android好像没有这个哦?所以我最近去瞄了瞄Android的源码,发现不少东西...

首先他们为了支持PPTP和L2TP,给内核加了两个模块:pppopns、pppolac
https://android.googlesource.com/kernel/common/+/android-3.10/drivers/net/ppp/

其次他们在用户空间写了个mtpd来调用那两个模块:
https://android.googlesource.com/platform/external/mtpd/+/master

因为L2TP往往需要IPSec,他们顺便给ipsec-tools写了个wrapper:
https://android.googlesource.com/platform/external/ipsec-tools/+/master

当然还有用Java写的一些界面的东西来调用这些东西,这里就不列举了。

总结来说,Google是个搞定一个东西,开源在自己tree里就完事的主,可惜Linux桌面连个搞定东西的主都没有...

习题(没人做我就改天自己做吧):
研究Chrome OS如何支持L2TP(应该和Android完全不同)

-- 
您收到此邮件是因为您订阅了 Google 网上论坛的“广州 GNU/Linux 用户组”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 [email protected]。
要向此网上论坛发帖,请发送电子邮件至 [email protected]。
通过以下网址访问此论坛:http://groups.google.com/group/gzlug。
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。

回复