1. 前言
最近做扫码登录功能, 就会发现一个问题, 对接第三方时会出现外网访问不到本地服务的情况; 就像我这里写个回调方法, 但是微信无法访问我本机服务啊. 是吧这样就无法进行本地调试, 直接上线或者直接提测风险很大, 怕是Bug 一堆 o(╥﹏╥)o
2. 内网穿透
2.1 解释说明
内网穿透原理是映射端口, 能让外网的电脑找到处于内网的电脑; 简单说就是局域网的服务外网访问不到,通过内网穿透技术来实现外网到内网的端口映射, 进行实现外网访问内网服务.
2.2 工具支持
市场上流行的支持内网穿透的工具包括 Ngrok, Natapp, 小米球, Sunny-Ngrok, echosite, Ssh + autossh, Lanproxy, Spike, Frp 等; 推荐使用Ngrok, 大多工具其实是基于Ngrok 进行二次开发的; 这里介绍下花生壳的内网穿透功能.
3. 花生壳内网穿透
花生壳官网: https://www.oray.com/, 内网穿透只是他支持的其中一个业务, 本身支持功能还是很多的, 想了解的话, 可以看完这篇文章再去了解, 嘻嘻.
3.1 注册用户获取免费域名
首先注册用户(我这里从新用户开始了), 注册后微信关注公众号, 获取免费的花生壳域名, 可用.
图3-1.注册账号图
图3-2.关注公众号获取免费域名图
3.2 本机安装花生壳 beta 版
官网下载花生壳 beta 最新版, 安装后打开登录, 账号密码同上面注册的账号密码.
图3-3.官网下载花生壳 beta 图
图3-4.花生壳 beta 版登录页面图
3.3 开通内网穿透服务
登录后可以看到主页面的三个功能. 我的域名, 目前就一个, 关注公众号获取的免费花生壳域名, 也可以购买, 如果你需要的话; 内网穿透就是支持外网访问内网的功能, 自诊断, 检查域名可用情况, 检查内网穿透服务可用情况; 选择内网穿透, 双击打开, 可以检查一下我的域名, 正常情况如图3-6 所示;
图3-5.花生壳 beta 版登录后主页面图
图3-6.自检测我的域名图
左侧二级菜单, 切换到内网穿透菜单选项, 新用户首次进入会提示免费开通服务, 点击免费开通会弹出图3-8 页面, 免费开通内网穿透服务, 好像是活动时间, 本身内网穿透体验版的价格是 6 元/年, 也还好了.
图3-7.内网穿透主页面图
图3-8.免费开通内网穿透图
图3-9.内网穿透产品购买图
图3-10.产品购买成功图(老实说, 图片好占篇幅啊)
3.4 内网穿透配置
开通内网穿透服务后进入内网穿透可查看内网穿透列表, 目前还是没有的.
图3-11.内网穿透产品图
点击新增映射, 按照提示编辑配置域名端口等信息, 保存即可; 其中内网主机就是本机IP , 打开命令行窗口, CMD 输入ifconfig /all 即可查看, 根据本机是无线还是以太网找到本机IPv4 地址即可, 如图3-13 所示; 内网主机端口要看你的本机服务是什么端口了;
图3-12.内网穿透配置图
图3-13.内网主机查看图
图3-14.内网穿透服务列表图
开启本机服务, 比如我这里是localhost:8080, 自诊断域名, 正常情况下如图3-15 所示
图3-15.内网穿透服务自诊断无误图
4. 内网穿透测试
本地创建一个SpringBoot 项目, 配置端口为8080; 运行项目, 通过本地访问localhost:8080 或192.168.80.56:8080, 都能直接访问方法 getProjectName() 获取到scancodelogin ; 开启上面配置的内网穿透服务, 本机花生壳 beta 登录状态; 访问域名即可映射到192.168.80.56:8080, 同样能请求本机服务; 如图4-2 所示 项目测试接口:
@RestController
public class ScanCodeLoginController {
@GetMapping(value = "/")
public String getProjectName() {
return "scancodelogin";
}
}
图4-1.本机访问本机服务成功图
图4-2.外网访问本机服务成功图
Power By niaonao
来源:oschina
链接:https://my.oschina.net/niaonao/blog/3434307