最近有个项目需要用到内网穿透技术,在网上找了很多资料都没有解决,请大神指点该如何进行,最好有例子!(不支持uPnP协议)

解决方案 »

  1.   

    简单的就是有个代理服务器,其实就是有个中介的电脑上面运行一个程序,然后2个内网的程序都主动连上这个中介程序,由这个中介程序负责2个内网tcp连接的数据中转,接收一个套接字的数据,然后发给另一个
      

  2.   

    http://www.cnblogs.com/nightwatcher/p/3476742.html
      

  3.   

    http://blog.csdn.net/small_qch/article/details/8815028
      

  4.   


    http://www.cnblogs.com/nightwatcher/p/3476742.html
    http://blog.csdn.net/small_qch/article/details/8815028
      

  5.   

    基于.NET平台和C#语言实现TCP NAT穿越
    https://www.cnblogs.com/zhangguihua/p/9996254.html
      

  6.   

    内网TCP/IP UDP   实现 NAT打洞  —— 这个可能有点难 
    而且也不是每个 路由器 都支持,而且因为不稳定 所以需要非常健壮的 容错机制)搜索 “NAT打洞”  “NAT内网穿透”--------------------------------------
    建议的做法就是: 
    找个中间的公网服务器,部署一个中介服务:当两端都连上中介后,对双方的字节 进行转发。
      

  7.   

    C#代码实现TCP穿透(打洞)
    https://blog.csdn.net/roujie3519/article/details/84540049
      

  8.   

    既然使用 TCP那就转发吧。可以做到实时通讯,而且简单可靠。
      

  9.   

    不用隧道技术实现的话,只能转发了。
    而转发上其实目前也算比较好实现,一般是虚拟dns,内部构造一个虚拟化网络。每个套接字给他一个虚拟域名,剩下的事情就和传统代码一摸一样了虚拟dns构建目前也比较简单,docker下有一堆人家已经配置好的单机/集群的虚拟dns系统,2小时就能构建一套了
      

  10.   

    TCP 本来就是双向的,所以只要把信令协议设计好了,能反映业务就可以了。例如:<xxxxx>对我说:.......................................
    我对<yyyyy>说:.......................................你的信令只要给消息的发送者和接收者能够标记出来,那么这样的消息发给服务器,服务器自然就(找到具体的TcpClient对象而)把这个消息原封不动地再推送给目标客户端进程了,实际上比你以前见过的信令功能更简单(因为只是转发而已)。这是普通的 TCP 通讯,例如 websocket 等等都可以直接实现,都是一个业务信令设计问题。只不过你之前设计信令时你没有想到要转发,而都是让服务器干点更复杂的业务而已。