python

用 Python 操作虚拟网卡

在我的 XTunnel 项目中,已经用 Python 作过这种相对底层的工作了(这说明 Python 果然还是非常强大的,上下层通吃啊),不过那边目前还是只实现了 Linux 的版本。后来我又陆陆续续地把 Windows 以及 Mac 下的操作方法给搞通了,今天就来总结一下。

在 Linux 内核中,特别是在现在的发行版中,应该都已经有了 TUN/TAP 虚拟网卡的驱动程序,看一下有没有 /dev/net/tun 这个文件就可以知道了。如果没有,就执行一下 sudo modprobe tun 这个命令吧。如果还是没有,那就 Google 之吧。下面上代码:

利用 XMPP 协议实现 VPN

这主意是我一同学想到的(至少是他告诉我的),基于一种实际的需要。假设你有两台内网机,都没有公网地址,你想从一台机器访问另一台机器的服务,这时要怎么办呢?当然很可能是我无知了,就我所知,网上倒是有一些提供这类服务的网站,但都是基于 Windows 的远程桌面的,至于 Linux ,我没找过。

于是那家伙联想到了 IM Bot 这种东西。现在网上有各种各样的 IM Bot ,可以通过与之聊天执行各种各样的自动化任务,那为什么不能让它把发过去的命令交给另一台机器的 Shell 执行,并把结果返回呢?这不就实现了一个简单的 Telnet 了吗?这就是最初的想法了(我没去找现成实现,因为我也该练练手了)。而我刚好才折腾过 OpenVPN ,于是就有了标题所说的这个最终想法。这样的话,就能一下子从只支持一种应用协议到支持几乎所有的应用协议了,而且实现的工作量也同时减到了最低。真是好主意啊,自我夸奖一下 :-)