Windows在局域网内无法访问Linux服务器上的web项目问题

背景

在Linux服务器上部署了一个在Giithub上开源的web项目,一个用ruby写的项目,在Linux服务器上安装了rvm,利用rvm下载ruby环境的各个版本,并用bundle管理下载项目需要的软件包

bundle exec rackup

项目运行正常,端口号为9292 ,LInux服务器本地可以通过
curl http://127.0.0.1:9292
正常访问

之前在自己电脑的ubuntu系统上部署过这个项目,在本地可以通过http://127.0.0.1:9292进行访问,但是部署到Linux服务器上以后,项目运行正常但无论如何都不能在同一局域网下的windows电脑上进行访问

问题描述

本机状态
系统:Windows 10
防火墙状态:打开(但是这个无所谓,项目部署在Linux服务器上)
同一局域网下可以ping通Linux服务器,但是,使用telnet ip 9292 提示连接拒绝
如图
telnet IP 端口号访问失败
PS:win10下如何安装telnet可以参考下面的链接
win10系统安装telnet客户端

Linux服务器:CentOS系统
防火墙关闭,之前按照相关教程把9292端口开启了,后来又把防火墙整个关闭了,但是始终无法在win10电脑上访问网页

PS:开启端口与关闭防火墙可参考下面的文章
linux:centos7开启80端口,开放外网访问

且端口运行正常:
在这里插入图片描述
终于!!!我遇到了这篇文章
Windows 与 Linux下关于端口不能访问的问题
真的是救我于水火之中啊
之前也走了一些弯路,配置nginx或者apache等,主要是和我遇到的情况不符合,但是文章挺详细的,链接放在下面可供参考:
Nginx服务器安装及配置文件详解

宿主机访问本机虚拟机中的web服务器

原因分析

根据Windows 与 Linux下关于端口不能访问的问题所述,完全不是防火墙或者权限配置的问题,而是一个简单的网络地址问题:
localhost本质上是一个域名,理论上可以指向任何IP地址,只不过一般都是指的是环回地址:127.0.0.1对于环回地址而言,其他计算机是不能访问的!!!
看这张图
在这里插入图片描述
9292端口绑定在环回地址上
所以telnet 192.168.1.127 9292提示Connection Refused,因为端口9292在127.0.0.1上

192.168.1.127作为9292端口绑定的参数,并重新启动程序之后,看到端口信息如下:
在这里插入图片描述
之后再用win10电脑访问 192.168.1.127:9292 就访问成功啦!

解决步骤

把 localhost 对应的地址127.0.0.1改成主机的IP地址
在这里插入图片描述
改成:
在这里插入图片描述
使用命令

vim  /etc/hosts

改动即可
完结撒花!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值