知道局域网地址,和网关地址
公网上的一端怎么通过udp主动发送数据包给局域网内的机器,
或者通过tcp和局域网网内监听的机器建立连接。

解决方案 »

  1.   

    一个方法是使用代理。还可以使用udp 打洞
      

  2.   

    这个到没有弄过,不懂,有人说NAT 穿透,有的人 端口映射,学习
      

  3.   

    服务端在内网中的代理服务器上做好了NAT后,需要采取一些手段通知外面的客户端
    这就是所谓的反弹端口原理,
    一般有些通过一些公开的个人空间等,服务端定时更新自己的信息,客户端定期去获取,然后客户端主动连接
      

  4.   

    surstar(断水流www.uisoft.net准备出本诗集叫《执着》售价13.1) 说得对,既然都知道了局域网的IP,直接通信就行了。
      

  5.   

    1,如果可以手动在网关上添加静态端口影射,最好。
    2,如果局域网的NAT类型是full cone,则局域网中的服务器自启动开始定时向任何一个有效公网地址发UDP包,实现网关上的端口映射。公网上的客户端就可以向网关发UDP包,端口号要靠猜测的。
    3,如果服务器操作系统是XP,用路由器+ADSL上网,且路有器开通了UPNP功能,则可以在服务器启动时自动用UPNP功能在路由器上添加端口映射。一般监听端口和映射端口用同一个端口号,据说这样可以从外部用TCP连接进来,我还没有搭建过这个环境测试。
    其它,用一个代理服务器做消息转发。服务器和客户端要都连上代理服务器。
      

  6.   

    除非以下两种,否则不可能实现1、你内网机器有真IP (NAT 映射),那么你可以使用任何手段了
    2、在你机器上有一个木马程序,主动向外面一台服务器UPD连接,并保持这个连接。这样你就在网关上一直留有你的端口映射。假如你想连接内网这台机器,可以从服务器上取出这个端口,进行直联。除了以上两点,是不可能连上的。
      

  7.   

    UDP数据包是可行的,现在网上UDP穿透NAT的文章到处都有,可以搜搜,或者来我的BLOG看看http://beast.blog.edu.cnTCP不可行,除非是你的内网服务器主动连接你的外网客户端,不过也不是没有办法,现在网上有的是相关软件,你可以去申请一个域名,然后让外网的那端通过解析域名来连接,当然这需要一些软件支持:)
    或者,最简单的方法,你从你内网的NAT网关那里搞一个端口绑定,也就是把它的某固定端口冲定向到你的机器上就行了,不过人家未必让你搞:)