小弟才疏学浅,有个关于UDP的问题想请教请教各位高人。
如上图所示,这是一个十分普通的网络,首先分析分析问题:
用户A到用户F均是外网用户,我们不认识的人。在公司内部,架设了一个中心VPN,然后下来是分为内部网和DMZ区域。中心VPN的IP假设是:192.168.180.2,DMZ区域的服务器A的IP是:192.168.180.3,服务器B的IP是:192.168.180.4,共用的网关是:192.168.180.1。
接下来,问题来了,我做了一个UDP的程序,服务器端架设在服务器A上面,然后把客户端给了外网的某个用户,就假如说是用户C吧,然后用户C请求我们服务器A的地址:192.168.180.3,端口是1234。由于服务器A在DMZ区域,他是暴露在公网上的,在公网上的IP就是192.168.180.3(不知道DMZ是否出去之后IP会变么?),用户C也访问到了,服务器端程序上显示用户C已经登录,但是服务器端回传数据到用户C的时候,用户C始终收不到数据,不知道这是为什么了。。。回传的时候,传的IP和端口就是用户C发过来的时候的IP和端口。
刚刚又测试一次,公网对公网可以,但是服务器到路由器下面的电脑,或者服务器到VPN下面的电脑就回传不过去数据了,所以问题可能出现在服务器端获取的客户端IP上,不知道有没有哪位高人可以指点指点,关于服务器端获取的客户端的公网IP应该怎么样获取?
客户端使用 netstat 查看下客户端c和服务器a(192.168.180.3 1234)建立连接的ip地址和端口是什么.
看了你的问题我也觉得很困惑
显示C登陆了,表示已收到数据,但不能回传。。。
但是DMZ在公网上的IP绝对不会是192.168.180.3,这个是内网IP,外网访问DMZ时会转换。
我想了想,问题可能在DMZ的访问规则,一般应该会加一条不能访问内网,为了安全,在应用VPN时,可以认为A-F他们都属于内网的主机,但DMZ不能访问内网,也许这就是问题的所在。
DMZ 出去之后IP 应该不会变的,本身就相当局域网,你用的VPN工具有没有其他限制?