局域网内windows部署的Java服务,手机上无法访问

最近在开发小程序,因为需要在手机上面进行预览,所以需要将Java运行在局域网内,手机上面的小程序才能成功访问服务。但是自己在配置时遇到了一些问题,导致在windows上面的服务无法在局域网内不访问到,所以记录一下如何解决这个问题。

1.保证在同一个局域网内

windows 上面 使用 ipconfig 查看网络

这里我的电脑连接的手机的热点。

2.服务绑定 IP 与 端口

1.绑定正确的地址

这里注意,绑定的 ip 地址不能是本地回环地址,比如 127.0.0.1,localhost 这种,这样的地址无法被外部访问。可以绑定电脑在局域网内的地址或者 0.0.0.0(监听本机所有的 ip 地址),这样就能通过局域网内的 ip 连接到服务器。端口也要正确绑定,保证端口没有被占用。如:

这里我是使用 netty 来实现的 HTTP 服务

//绑定ip和端口
ChannelFuture sync = server.bind("0.0.0.0", 9000).sync();
System.out.println("server run in :"+host +":"+ port);
ChannelFuture sync1 = sync.channel().closeFuture().sync();

可以使用命令来查看端口是否被占用:

netstat -ano | findstr :9000

如果什么都没有返回就表示没有被占用

服务启动后也可以查看端口的占用情况,检查端口是否绑定在自己的服务上

先查看端口的占用情况,根据返回的占用进程查看进程信息

tasklist /fi "PID eq 1234"

2.防火墙开放端口

要确保所绑定的端口,在 windows 内对外开放了

1.打开控制面板进入系统和安全里面的防火墙,点击高级设置,在这里进行端口的开放

2.点击入站规则,新建规则

3.点击端口,选择 tcp 选择特定端口,然后填写自己需要开放的端口,然后选择允许连接,然后一直下一步

4.启用规则

当我们通过上面的配置后应该就能看到我们所添加的配置,然后我们需要点击这个配置,点击启用规则,这样才会生效,端口才能对外开放。

入站规则是指控制从外部网络进入计算机的流量的规则。它管理着外部请求如何访问计算机上的服务和资源,比如 Web 服务、远程桌面等。

出站规则是指控制从计算机到外部网络发出的流量的规则。它管理计算机上程序或服务向外部发送的请求,如浏览器访问网站、软件向外发送数据等。

这里我们作为服务器,并不需要像外界发送请求,所以只需要配置入站规则就行了。

3.允许应用访问网络

经过上面的操作,理论上来讲,端口和ip地址都已经配置好了,局域网内的其他的主机,应该就能正常访问电脑服务了,但是我在实际实验时发现还是不能进行访问,但是将防火墙直接关闭后却能够进行访问,自己还一度认为,是端口的问题,然后经过搜索发现应用也需要进行允许网络访问请求。

这是因为防火墙有几个层,不止有对网络层面流量的过滤,还有应用层的过滤,因为 java 文件是 Java 来运行 ,所以还需要允许Java的网络连接。

在入站规则中选择自己服务运行的 java 然后双击,点击允许连接,点击确定即可。

这样我们的服务就能被局域网内的其他主机访问到了。如下面就是在手机访问到的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值