远程服务器访问工具研究与实践

近期,出于工作需要,经常需要远程访问客户的服务器。然而,并非所有的服务器都可以开放外部端口进行远程访问。使用向日葵等软件并不总是方便。因此,我尝试了许多工具,包括zerotier等。另外由于一些服务器位于国外,工具的兼容性也带来了一些困难。

于是我开始寻找自己的组网工具解决方案,并最终发现了snltty大佬的项目链接: https://github.com/snltty/p2p-tunnel 。通过学习后发现该项目是基于tun2socks实现的。

tun2socks的优点在于将虚拟网卡数据打包到Socket代理中,但是它会过滤掉ping(ICmp)数据包,而且自行返回成功的数据包,这并不符合我的需求。

于是,我深入研究了tun2socks的实现方式,并手动基于tun/tap实现了一个简易的解决方案。

核心代码:

Linux核心代码:

以下是远程桌面的效果:

客户端运行:

打洞成功:

测速:

项目代码地址:

https://github.com/hn-lyf/RemoteNetwork

测试客户端:

Linux-x64版本

Windows-x64版本

Windows-x86版本

标签:游戏攻略