2

我需要制作一个简单的 p2p vpn 应用程序,经过大量搜索后,我找到了一个名为 PYTUN 的 python tun/tap 模块,用于制作隧道。如何使用此模块在 2 个远程对等方之间创建隧道?

所有附加的文档仅显示如何在本地计算机上制作隧道接口并对其进行配置,但没有提及如何将其连接到远程对等方。

4

2 回答 2

0

pytun 是不够的。它用于将您的 Python 应用程序连接到系统网络接口。实际上,您将负责实现该系统网络接口。

如果您希望通过该网络接口路由的流量通过实际网络,那么 Python 程序的工作就是执行将数据从主机 A 移动到主机 B 的实际网络操作。

这可能需要很多工作才能做好。我建议您改用现有的 VPN 工具。

于 2013-06-27T17:40:30.150 回答
0

以防万一有人通过谷歌找到这个老问题:看看python-pytun (repository here )。有一些示例脚本展示了如何实现简单的 IP 和以太网隧道。

基本思想是在两个站点之间建立 TCP 连接(通过通常的套接字 API 访问);此外,通信双方创建一个 TUN 或 TAP 接口。

每个主机运行一个循环,从套接字和 TUN/TAP 接口读取数据(数据包),并将每个数据包写入另一个设备。这是您可以在隧道中添加加密的地方...

让我添加一个警告:虽然编写自己的 VPN 隧道应用程序可能很有趣,但如果您打算将隧道用于任何其他用途,我强烈建议您使用现有的隧道应用程序或堆栈(OpenVPN、IPSec...)一个有趣的项目:即使对于专家来说,也很难正确地获得加密和协议的东西——而对于非专家来说几乎是不可能的。

于 2016-02-17T08:41:17.910 回答