首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux下ngrok使用教程

ngrok 是一个反向代理工具,它允许你将本地运行的网络服务暴露到公网。以下是在 Linux 下使用 ngrok 的基本教程:

基础概念

ngrok 通过创建一个安全的通道,将你的本地网络服务(如 Web 服务器)暴露到互联网上。它使用一个公共 URL 来转发流量到你的本地服务,并且提供了实时访问日志。

安装 ngrok

首先,你需要下载并安装 ngrok。你可以从 ngrok 的官方网站下载适合你操作系统的版本。

代码语言:txt
复制
# 下载 ngrok
wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip

# 解压文件
unzip ngrok-stable-linux-amd64.zip

# 将 ngrok 移动到 /usr/local/bin 目录
sudo mv ngrok /usr/local/bin/

配置 ngrok

在使用 ngrok 之前,你需要注册一个账户并获取一个 authtoken。登录 ngrok 的网站,然后在终端中运行以下命令来设置你的 authtoken:

代码语言:txt
复制
ngrok authtoken YOUR_AUTH_TOKEN

启动 ngrok

假设你有一个本地运行的 Web 服务器,监听在端口 80 上。你可以使用以下命令启动 ngrok

代码语言:txt
复制
ngrok http 80

这将启动 ngrok 并提供一个公网 URL,通过这个 URL 外部用户可以访问你的本地 Web 服务。

使用 ngrok 的优势

  1. 安全性ngrok 提供了加密的隧道,保护你的数据传输。
  2. 便捷性:无需配置路由器或防火墙,即可快速将本地服务暴露到公网。
  3. 实时日志ngrok 提供了实时的访问日志,方便调试和监控。
  4. 临时性:适合临时性的公网访问需求,如演示、测试等。

类型与应用场景

  • HTTP/HTTPS:适用于 Web 应用的公网访问。
  • TCP:适用于需要 TCP 协议的应用,如数据库服务。
  • UDP:适用于需要 UDP 协议的应用,如游戏服务器。

应用场景包括但不限于:

  • 远程调试本地开发环境。
  • 在线演示你的应用。
  • 测试网络应用的兼容性。

可能遇到的问题及解决方法

问题:ngrok 不启动或无法访问公网 URL

原因:可能是端口冲突、防火墙设置或 ngrok 服务本身的问题。

解决方法

  • 确保本地服务正在运行并且监听正确的端口。
  • 检查防火墙设置,确保允许 ngrok 使用的端口。
  • 尝试重启 ngrok 或重新生成 authtoken。

问题:公网 URL 不稳定或频繁变化

原因:默认情况下,ngrok 提供的 URL 是临时的,每次启动都会变化。

解决方法

  • 升级到 ngrok 的付费版本,以获得一个固定的公网域名。
  • 使用自定义域名功能,将你的域名指向 ngrok 提供的地址。

示例代码

以下是一个简单的 Python Flask 应用示例,以及如何使用 ngrok 来暴露它:

代码语言:txt
复制
# app.py
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=80)

启动 Flask 应用:

代码语言:txt
复制
python app.py

然后启动 ngrok

代码语言:txt
复制
ngrok http 80

现在,你可以通过 ngrok 提供的公网 URL 访问你的 Flask 应用了。

希望这个教程对你有所帮助!如果你有任何其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

windows下内网穿透工具Ngrok安装与使用

使用cmd进入该目录下,并在官网上复制自己的auth 使用命令 ngrok -authtoken 密钥 -subdomain 二级域名 端口 ngrok http 8080 ::8080为你本地服务器的端口号...很早我就想了解有没有这种技术,因为有时候写完项目了,感觉挺漂亮的,想让朋友看看,一直发愁怎么变成网址,(别跟我说转二维码),今天无意间在网上看到这种技术,搞了一下午,终于被我弄好了。...意思是,没有付钱,这是免费版,不能自定义域名,要是付过钱了,直接输入http://tkh.ngrok.io 就可以进入本地8080端口 没钱,还是使用免费版吧!...id就好了 Sunny-Ngrok 和ngrok不同的是: 它是国内的,只需要绑定隧道id即可使用,网速较快,而ngrok是国外的,网速较慢; Sunny-Ngrok端口配置是在后台界面配置的...解决:可以在build目录中的webpack.base.config.js中module.exports = { } 对象下,添加属性如下 devServer: { disableHostCheck

8.9K10
  • Ngrok配置使用

    Ngrok最大的一个优势就在于,如果你想访问某个网络中的设备时,你并不需要让自己的设备同样处于同一本地网络之中。在Ngrok的帮助下,你可以通过SSH、FTP或Web服务器来访问目标设备。...第一步:设置账号 访问 ngrok.com 创建一个Ngrok账号。 完成了账号注册之后,你将会得到一个认证令牌,你需要使用这个令牌来连接你的电脑和Ngrok账号。...第二步:下载Ngrok 使用下列命令在你的电脑上下载Ngrok: sudo wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-...386.zip 使用下列命令提取文件: unzip ngrok-stable-linux-386.zip 第三步:创建你的账号 使用下列命令来设置你的认证令牌(authtoken): ..../ngrok authtoken 7YcSB8g5jeHy1xLn7713Q_WnQsqADhTqnzx6****** 第四步:运行Ngrok 现在你可以使用下列命令运行Ngrok(端口8080)

    2.1K30

    Linux 搭建 ngrok 反向代理 顶

    为什么要使用ngrok? ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。...以供他人体验评价或协助调试等等,通常我们会这么做: 找到一台运行于外网的Web服务器 服务器上有网站所需要的环境,否则自行搭建 将网站部署到服务器上 调试结束后,再将网站从服务器上删除 只不过是想向朋友展示一下网站而已...服务端编译 mkdir /root/goproj cd /root/goproj #下载go语言编译器 wget http://golangtc.com/static/go/1.7/go1.7.linux-amd64....tar.gz tar xvf go1.7.linux-amd64.tar.gz #设置环境变量 vi /etc/profile export GOROOT=/root/goproj/go export.../ngrok -config=ngrok.cfg -subdomain=a 8080

    1.3K30

    Jenkins 教程:使用 Ngrok 配置(SCM)Github 触发器和 Git 轮询

    在本文中,我们将研究如何在作业上配置 Github 触发器,以及如何使用 Webhook 与 Github 相通,该 Webhook 指示何时轮询作业以构建对项目进行的更改。...入门 01 安装和运行 Ngrok Ngrok 是一个反向代理,它接受公共地址上的流量,并将该流量中继到计算机上运行的 ngrok 进程,然后再中继到您指定的本地地址。...运行该命令后,您将收到代理主机名,如下所示: 转发 http://xxxxx.ngrok.io -> http://localhost:8080 转发 https://xxxxx.ngrok.io ->...添加我们的 webhook: 03 设置 Jenkins 项目或流水线作业 选择 Github 挂钩触发器进行 GitScm 轮询: 然后,使用您的 GitHub 帐户设置 Jenkins Pipeline...使用您指定的 develop,master 等分支将提交提交到您的项目。

    1.1K10

    使用ngrok内网穿透工具

    这时可以使用ngrok工具。他可以分配给你一个公网的二级域名,来绑定你本地的正在跑的http服务。.../ngrok http 8080 (Windows系统下可能是ngrok.exe) ?...image.png 如图:工具随机分配给我了http和https两个地址,这个时候无论是手机还是电脑,还是其他地方的小伙伴访问 http://100a13a1.ngrok.io 就可以看到我本机上的...具体地址: https://ngrok.com/ 注意: 对于免费用户,每次启动ngrok分配到的公网地址是会变的。 可以用国内的类似的服务,他提供了固定而且免费的地址。不过访问速度有点慢。...https://ngrok.cc/ 当页面显示Invalid Host header,因为vue cli使用的是webpack server,基于安全对访问做了限制。

    3.5K30

    Linux下docker安装教程(设置使用权限)

    Docker的基础是Linux容器(LXC)等技术,(LXC系统提供工具来管理容器,具有先进的网络和存储支持,还有最小容器操作系统模版的广泛选择)。...现在docker是云计算计算发展的重要一环了,各大云服务商都提供了Docker镜像帮助大家快速在Linux Centos环境下安装Docker。...因此毫不犹豫安装19.03版本的docker,安装教程可参考官方教程Centos:Get Docker Engine - Community for CentOS或Ubuntu:Get Docker Engine...- Community for Ubuntu,安装好之后还要解决一个问题就是如何才能使非root用户拥有docker使用权。...用户其实是通过/var/run/docker.sock与docker容器进行交互,因此要获得docker使用权则必须拥有对/var/run/docker.sock这个文件的读写权,使用stat命令查看/

    3.9K10

    Linux下 iptables 超详细教程和使用示例

    –sport 源端口(source port)针对 -p tcp 或者 -p udp 缺省情况下,将匹配所有端口 可以指定端口号或者端口名称,例如”–sport 22″与”–sport ssh”...从性能上讲,使用端口号更好 使用冒号可以匹配端口范围,如”–sport 22:100″ 还可以使用”–source-port” –-dport 目的端口(destination port)针对-...如果没有明确添加DROP规则,那么默认情况下将采用ACCEPT策略进行过滤。...prot opt source destination 七、配置应用程序规则 尽管5.4节已经介绍了如何初步限制除SSH以外的其他连接,但是那是在链默认策略为ACCEPT的情况下实现的...本节在上一节基础上,以SSH和HTTP所使用的端口为例,教大家如何在默认链策略为DROP的情况下,进行防火墙设置。在这里,我们将引进一种新的参数-m state,并检查数据包的状态字段。

    69520

    Ngrok | 使用 ngrok 让外网可以访问你本地的Django网站

    作者:大江狗 首发:Python Web与Django开发 当你使用Django在本地开发一个网站的时候,你希望转发给别人进行访问,但是又不想正式部署到服务器(毕竟部署也是挺麻烦的)。...Ngrok的安装 如果你本地使用的是windows系统,首先访问它的官网:https://ngrok.com/download下载.exe客户端并安装。...安装好后,双击exe文件,你将看到如下界面: 注:ngrok虽然是免费的,但使用前需要注册一下。...启动Ngrok 进入ngrok的exe文件所在的目录,使用“ngrok http [port]”启动端口映射。本地django项目默认使用8000端口,所以输入如下命令即可。....ngrok.io), 您还可以使用https连接。

    2.9K20

    springboot项目打包&ngrok的使用

    2、clean一下项目: 选中按项目run as maven clean。 3、打包项目: 选中项目run as maven install。...image.png 注意:配置8082端口是因为我Linux服务器上有一个8080端口的项目了,配置8082是为了等下使用ngrok的方便。...手机访问 3、ngrok在Linux中的使用: 在windows中使用是因为我们没买服务器又想让别人也能访问我们的项目,在Linux中使用是因为使用域名需要备案,有点麻烦,而我们又不想直接通过IP访问项目...所以就可以通过ngrok来实现。 (1)、安装: 安装就不多说了,下载Linux版,然后用unzip命令解压即可。解压好后只有一个ngrok文件。 ?...(4)、注册ngrok账号: 上面3个步骤就可以使用ngrok了,但是当我第二天访问这个项目时就出错了,错误如下: ?

    1.1K20

    linux 编译汇编,linux下的汇编教程

    linux下的汇编教程 第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作 ARM的协处理器等。...Linux汇编程序中的宏定义 格式如下: .macro 宏名 参数名列表 @伪指令.macro定义一个宏 宏体 .endm @.endm表示宏结束 如果宏使用参数,那么在宏体中使用该参数时添加前缀...宏定义时的参数还可以使用默认值。 可以使用.exitm伪指令来退出宏。...还可以使用-S选项,移除所有的符号信息及重定位信息。...调试工具 Linux下的GNU调试工具主要是gdb、gdbserver和kgdb。其中gdb和gdbserver可完成对目标板上Linux下应用程序的远程调试。

    3.5K31
    领券