伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

本机端口如何让外网访问?还是自己做一个映射工具的好

来源:本站原创 浏览:66次 时间:2022-11-17
前言

还记得以前做微信支付的时候,需要微信的服务器回调结果给我们,虽然微信服务器可以直接访问我们云服务器,但是想在本地debug的话,还得需要一些诸如frp、ngrok的工具来做映射,但是当时大一年少无知,这些工具后来才知道,硬生生的先把采集信息的工程部署的云服务器,然后在触发一次微信支付,让微信服务器回调一下,把他传递的数据保存下,在回到本地写校验逻辑,一来一去做测试,非常的慢而且麻烦,最后做完了,也来回了七八次。

后来知道了frp和ngrok,非常的方便,运行后访问他给出的域名,即可让外网访问本地指定的端口,这样就实现了内网映射。但是他们太慢了,有时候延迟了一两秒。

于是就想自己做一个,我是属于能自己写出来的不会用第三方的,虽然有很多此类开源的项目,比我写出来的更好,但是技术总归是人家的,毕竟做咸鱼,也要最最最最咸的那条。

项目地址:

https://gitee.com/hxl495/java-intranet-mapping

下面看一下演示。

项目演示

如果要运行,需要准备一台云服务器,这套工具的原理就是:服务器开两个端口,端口A负责监听http请求,将接收到的数据转发到端口B上,端口B会和我们本机相连,本机最后通过Okhttp等工具向本机指定端口上进行http请求,然后在一层层返回。

我们把jar包上传至云服务器进行如下命令操作,http端口号为80,意味着我们可以直接通过域名去访问,socket端口为7070,就需要我们本机上指定连接的远程端口为7070。

root@iZbp1brrrx37m2ijwcg751Z:/usr/app/jar# java -jar InnerNetOut-Server.jar 
【-------------------------------------------------】
启动服务端
    java -jar x.jar server http=7777 socket=1010

    http:外界网络发起http请求时,服务端所监听的端口

    socket:服务端收到信息后,将在此端口中转发数据
启动客户端
    java -jar x.jar client server=1010 forward=8080

    server:连接服务器的端口

    forward:转发到本地的端口
【-------------------------------------------------】

root@iZbp1brrrx37m2ijwcg751Z:/usr/app/jar# java -jar InnerNetOut-Server.jar server http=80 socket=7070
Jan 24, 2021 10:13:47 AM com.h.net.server.LocalSocket initAbstractSelectableChannel
INFO: Socket 服务器启动成功,端口7070
Jan 24, 2021 10:13:47 AM com.h.net.server.HttpNioServer initAbstractSelectableChannel
INFO: HTTP 服务器启动成功,端口80

接着在本地启动客户端,他需要三个参数,分别是远程主机端口,远程主机ip,将转发在哪个端口?

jav-jar InnerNetOut-Server.jar  client server=7070 remoteip=www.xxxxx.com forward=8080

然后在本地启动一个项目,简单写一个GET请求,启动的端口号为8080。

 @GetMapping("test")
    public String test(){
        return "test";
 }

然后直接访问您的域名,即可映射到本地,在加上上次写的Tomcat Class热替换,为了让Tomcat支持热替换,我直接修改了他的源码,完美解决微信回调问题。

原理即实现

流程相对简单,就是通过纯Socket去转发而已,但是在项目中使用的是NIO,当然里面还有几个不完善的地方,等待去改进,如容错处理,图片问题,对,涉及到文件传输暂时还不支持,但是HTTP中头部信息都可以进行转发。


  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net