回复内容:
如果只是实现一个简单的VPN,个人使用,的确非常简单。代码量最多几百行。因为现在各大操作系统内核都已经内置TUN/TAP 支持,应用层通过相应接口就可以非常容易的建立点对点的tunnel,并生成虚拟网卡。之后通过iptables之类的工具设置好系统数据转发就OK了。基本现在的VPN也都是这样实现。
关于TUN/TAP:
https://zh.m.wikipedia.org/wiki/Tun
一个非常简单的Linux C实现版本:
https://github.com/cloudwu/mptun
Python 实现类似,基本流程无外乎是打开 /dev/net/tun 操作 TUN 接口,TCP或者UDP之类建立数据转发通道转发数据。