首先描述一下环境:宿舍局域网只有内部地址192.168.32.x,通过网关192.168.32.1(内部地址)202.114.x.y(外部地址)可以上网,但需要收费。同时学校为了方便大家内部访问,免费开放ftp:202.114.x.z。我实验室有台计算机202.114.a.b可以免费上网。所以我设想以ftp服务器为平台,连接宿舍和实验室的机器达到免费上网的目的,同时也造福同学。
    我的初步设想是:实验室和宿舍的计算机将要发给对方的数据传到ftp服务器的某个临时文件中,同时定期检查该临时文件,下载对方上传的数据,解成ip包后给ip协议栈。总的思想就是ip-in-ftp。但具体要怎么做,看那些资料,用到哪些库,哪些函数,如何操作ip协议,还请各位有经验的大侠指导指导。    我在文中提到的ftp服务器上没有任何其它权限,除了能够添加文件之外,连删除文件的权限都没有。
    在不通过收费认证的情况下我的机器只能访问这台ftp服务器(202.114.x.z)。当然我实验室的计算机也可以访问它。这里的访问是指仅上传下载文件而已。但vpn的前提是我宿舍的机器和实验室的机器要能互访。

解决方案 »

  1.   

    我认为不用担心速度,我实验室的机器和宿舍的机器访问上述ftp服务器的速度都是2M,延迟也几乎可以忽略。
      

  2.   

    实现倒是可能,不过还有点麻烦。
    内部PC 
    截包 -> 套上自己的协议 -> 套上ftp协议 -> 传给ftp
    免费PC
    连上ftp -> 获取指定文件 -> 根据协议解包 -> 外网相当于自己是代理,但是估计瓶颈在ftp传输和文件操作上