新闻资讯

新闻资讯 通知公告

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

编辑:009     时间:2020-02-18

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

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

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

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

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

基本用法

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

ssh -R 80:localhost:3000 serveo.net

其它用法

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

Windows用户

由于这个命令是用ssh来生成的,因此只适用于类unix系统,如Linux和Mac。
但是window用户也不是没法使用,只是得走些弯路(经网友提醒,win10已自带OpenSSH,这里一并讨论)。

  • 安装OpenSSH客户端
    • win10
      win10默认自带OpenSSH,如果cmd无法识别ssh命令,那可能是此功能未启用,需要配置启用一下。
      启用方法:

      • 在Win10任务栏的Cortana小娜搜索框中输入“可选功能”,然后点击搜索结果中的“添加可选功能”打开“管理可选功能”窗口。
      • 点击“添加功能”按钮,在可选功能列表中即可看到“OpenSSH客户端”。
      • 选中它,点击“安装”按钮即可安装OpenSSH客户端。

      安装成功之后,在cmd命令提示符窗口中即可运行ssh命令。

    • 其它window系统
      微软的Powershell团队已将OpenSSH进行开源
      下载解压后将解压目录添加进PATH环境变量或者进入解压目录启动cmd即可进行ssh操作。

  • 安装git for window,从git bash执行命令
    Git for Windows 提供了一个仿真环境,这样我们可以通过git bash执行ssh命令。

其它问题

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


作者:Jkanon
链接:https://www.jianshu.com/p/33d0a8f77961
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

回复列表

相关推荐