美文网首页码农的世界Linux红红火火恍恍惚惚
完败ngrok?一键开启内网穿透神器serveo

完败ngrok?一键开启内网穿透神器serveo

作者: Jkanon | 来源:发表于2019-07-30 22:52 被阅读3次

    啥是内网穿透?举个栗子,工作中我们经常遇到以下场景:

    • web 应用开发
      向别人展示我们本机(局域网)的web demo以及调试一些远程的API (比如微信公众号,企业号的开发)
    • 内网项目的访问
      一般项目部署在内网环境之后,远程调试(包括数据库访问)是比较困难的一件事。这个时候可以使用 tcp 协议去连接访问,减少了出差的必要性。
    • 硬件设备操控
      从事物联网相关行业的用户和设备打交道比较多,但是大多数情况下,设备很难有自己的公网IP。

    这些情况下我们就需要一款神器来让我们的服务暴露在公网之中,以从其它任何地方进行访问。那到底我们该怎么做?按照以往的经验,我们可以选择花生壳,或者ngrok。

    但是今天我要介绍的是一个更好的选择:serveo

    神奇之处就在于无需下载安装任何的软件,一条命令搞定!,更重要的是它免费,完全免费,真的免费,重要的事说三遍!

    基本用法

    假设你想要在公网之中暴露3000端口,那么你只需在命令终端中输入以下命令:

    ssh -R 80:localhost:3000 serveo.net
    

    终端会用绿色字体提供一个网址(如果是初次输这条命令,会询问你是否相信传送过来的RSA钥匙指纹,请选择 yes),你就可以用提供的网址从任何一台能够访问互联网的电脑,用浏览器来进行访问。如下图:


    其它用法

    • 端口转发
      如果对80,443,22以外的端口进行转发,那将是原始的tcp包
    • 自定义域名
      绑定自己已有的域名或子域名

    更多用法详情请访问官网

    Windows用户

    由于这个命令是用ssh来生成的,因此只适用于类unix系统,如Linux和Mac。
    但是window用户也不是没法使用,只是得走些弯路。

    • 安装git for window,从git bash执行命令
      Git for Windows 提供了一个仿真环境,这样我们可以通过git bash执行ssh命令。
    • 安装ssh客户端
      这里我也为大家准备了一套工具,下载请戳这里
      下载解压后将解压目录添加进PATH环境变量或者进入解压目录启动cmd即可进行ssh操作。

    其它问题

    • Invalid Host Header
      使用了webpack-dev-server的前端项目进行内网穿透的时候,浏览器显示Invalid Host Header
      原因:webpack-dev-server出于安全考虑,默认检查hostname,如果hostname不是配置内的,将中断访问。
      解决办法:设置 webpack-dev-server 的配置项 disableHostCheck 为 true 以禁用这一检测。

    相关文章

      网友评论

        本文标题:完败ngrok?一键开启内网穿透神器serveo

        本文链接:https://www.haomeiwen.com/subject/wcvorctx.html