从VMWARE访问xampp到公共IP

时间:2016-03-10 10:02:36

标签: xampp vmware

是否可以公开访问127.0.0.1:8080我有一个在VM上运行的项目应用程序,我该怎么办?

图:

function getReportLink(req,res){
    var params = req.body;

    // Send 200 response -> Doing the job in background
    respond(res,200,'OK');

    var json;
    var requestName = params.requestName;
    var sessionId = params.sessionId;
    var startDate = params.startDate;
    var endDate = params.endDate;
    var customerId = params.customerId;
    var uaid = params.uaid;
    var jsonFileName = requestName+'_'+customerId+'_'+uaid+'_'+unix()+'.json';
    var platformUrl = require(current_path+path.sep+'platform').getPlatformUrl(config.environment);


    async.series([
        // Call getrequestName on spring-ws
        function(callback){
            var requestBody = {sessionId:sessionId,asynch:false,startDate:startDate,endDate:endDate,formatedForTimezone:true,timeZoneOffset:timeZoneOffset};
            var reportParams = params;
            _.each(_.keys(reportParams), function (key) {
                if(key==='reportType' && reportParams[key]<=0){
                    // We don't add it
                }else{
                    requestBody[key] = reportParams[key];
                }

            });
            logger.debug(jsonFileName);
            logger.debug(requestBody);

            request({
                uri: platformUrl+'get'+reportParams.requestName,
                method: 'POST',
                json: true,
                timeout: 600000,
                headers: {'content-type': 'application/json'},
                body: requestBody}, 
                function(error, response, body) {
                    if(!_.isUndefined(response)){
                        logger.debug(jsonFileName);
                        logger.debug('Response: '+ response.statusCode);
                    }
                    if (error || response.statusCode == 500) {
                        logger.debug(jsonFileName);
                        logger.error(error);
                        logger.debug('Received:'+JSON.stringify(body));
                        if(!_.isUndefined(returnUrl) && returnUrl){
                            return respond(res,500, 'Error when getting ressource');
                        } else {
                            return logger.error('Error when getting ressource');
                        }
                    } else {
                        json = body;
                        if( _.isUndefined(json) || _.isNull(json)){
                            logger.debug(jsonFileName);
                            logger.debug('Received:'+JSON.stringify(json));
                            if(!_.isUndefined(returnUrl) && returnUrl){
                                return respond(res,500, 'Error when getting ressource - not a json object');
                            } else {
                                return logger.error('Error when getting ressource - not a json object');
                            }
                        } else {
                            logger.debug(jsonFileName+' : '+' OK go to next');
                            callback(null, 'getReportName');
                        }

                    }
                });
        },
        // Save Json on filesystem
        function(callback){
            logger.debug(jsonFileName+' : '+' Saving on disk');
            if(_.isUndefined(json)){
                logger.error('Json is undefined...');
            }
            fs.writeFile(jsonFileName, JSON.stringify(json), 'utf8', function (err) {
                if (err) return logger.error(params);
                callback(null, 'writeJson');
            });
        }
    ]);
}

我没有任何选择权我应该怎样做我对此非常陌生。的 #respect

4 个答案:

答案 0 :(得分:3)

是的,这是可能的,但配置有多个步骤,每个步骤的详细信息因使用的硬件/软件而异。总的来说虽然它可以像这样完成:

VMware config

  1. 使用bridged network

  2. 配置VM
  3. 将来宾操作系统配置为 dhcp预留 静态IP

  4. 路由器配置

    1. 为VM添加 dhcp预订 (如果使用DHCP)

    2. 添加指向VM的IP地址的端口转发规则

    3. XAMPP配置

      1. 确保XAMPP服务器正在侦听所有接口。

答案 1 :(得分:2)

只要vm具有已配置的网络并且因此能够与您的LAN通信(使用VM配置中的桥接网络是一种很好的方式)和互联网,就可以使外部设备可以访问网络/互联网。

因此,您很可能需要在路由器上定义端口重定向/端口转发,端口8080上外部IP(167.1.174.21)上的所有传入数据包都会转发到您的虚拟机的本地IP和相关的xampp会话。

此时可能出现的问题可能是根据可能的DHCP配置更改VM的IP地址。在VM上使用固定IP或为固定IP配置一些基于mac的规则,或者增加dhcp-server的租约时间(将路由器设置为无限制)

理论上,但请在您这样做之前三思而后行。如果您不习惯IT安全性,则不建议运行野外可用的Web服务器。即使你决定这样做,使用xampp听起来对我来说也是错误的。 xampp专为本地开发而设计。测试目的,而不是用于生产用途。

答案 2 :(得分:2)

步骤1 :除上述解决方案外,在安装xampp的本地网络中,将本地IP设置为静态IP,例如路由器设置中的“192.168.1.125” - >地址预留选项

保留地址后

第2步:打开路由器 - >端口转发 - >设置端口&amp; ip转发。

第3步:现在您检查公共IP和宾果游戏,现在您可以从vmware或任何其他网络访问公共IP。

答案 3 :(得分:2)

关键是使虚拟机具有桥接连接。

您可以通过查看this one来完成此操作。

然后对虚拟机执行端口转发,就像在LAN上使用真机一样。