是否可以公开访问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
答案 0 :(得分:3)
是的,这是可能的,但配置有多个步骤,每个步骤的详细信息因使用的硬件/软件而异。总的来说虽然它可以像这样完成:
将来宾操作系统配置为 dhcp预留 或静态IP 。
为VM添加 dhcp预订 (如果使用DHCP)
添加指向VM的IP地址的端口转发规则
答案 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)