因为有内网穿透和异地组网的需求,经常需要 VPN 这种东西。
不过日常使用中,即使在国内同一个城市的两个地方,使用同一个 ISP,之间互联的网络也算不上稳定,例如 Windows RDP 启用 UDP 就经常遇到画面静止不动的情况,如果关闭 UDP,仅用 TCP 就有点卡……
kcptun 可以解决遇到的 TCP 不流畅问题,不过 kcptun 仅支持在服务端转发,而且在内网服务器是没有公网 IP 的,一个 kcptun 也只能转发一个固定 TCP 端口,而且最麻烦的是,也仅支持 TCP 转发。
之前 V2 有位高人写的 tinyFecVPN 效果也不错,VPN 可以转发 L3,但是不支持多客户端,每个点对点之间都要独立运行一个程序,独立指定一个 /24 (然而只用到其中两个 IP,汗),管理有点麻烦,另外其用的 tun 也不支持 L2 组网,也就是桥接。
在貌似找不到符合自己需求的现成方案的情况下,就参考了 kcptun 和 tinyFecVPN,用 kcp-go 造了一个:
一个服务端支持多个客户端;虚拟网卡也可以自行选择使用 tun 还是 tap ;支持为客户端分配 IP,当然如果用的是 tap,你还可以使用自己的 DHCP 服务器。
因为参考(其实是 copy )了 kcptun,所以 kcptun 可以通过命令行参数调整的 KCP 参数,在这个 VPN 程序上都可以用。
源码和使用教程都已经放在了 GITHUB 上,有需要或者有兴趣的可以了解一下:https://github.com/yzsme/kcpvpn
当然程序弄好不久,目前就我自己在使用,所以很大概率会有我没发现的 BUG
最后,提醒一下:本程序仅用于异地组网,不支持其它用途,使用时请严格遵守当地法律
1
ganwen 2019-11-03 15:13:37 +08:00
东西是好东西,但没人回复。
国人对这种 vpn 的需求太少了,主要是拿来科学不方便,可惜咯。 |
2
whywhywhy 2019-11-04 08:27:33 +08:00
能不能从服务器下发路由表,如果没有的话希望有。
|