教你如何使用ngrok内网穿透让外网可以访问你本地的Django网站

简介

当你在本地开发一个网站的时候,你想要发给别人进行访问,但是又不想放到服务器上面(毕竟上传也是挺麻烦的)。通过内网穿透,你可以直接映射本地的端口,让外网直接访问。这次我介绍的是一款叫Ngrok的软件

Step one 搭建一个本地服务器

我们将使用Django来搭建简单的本地网站。首先确保你已经安装了Python3,并且pip是没问题的。我使用的是windows系统,先打开CMD输入以下命令:

shell

pip install django

由于pip的镜像默认是外国的,下载速度会很慢,所以建议使用国内源安装:

shell

pip install -i https://douban.com/simple django

Django安装完成之后,我们可以使用Django创建一个项目,叫做ngrok_demo(你可以自定义):

shell

django-admin startproject ngrok_demo

然后本地就会多一个ngrok_demo文件夹,我们通过访问这个文件夹:

shell

cd ngrok_demo

这个文件夹下面有一个文件夹ngrok_demo和一个py文件manage.py,我们现在通过manage.py这个文件来启动我们的网站:

shell

python manage.py runserver

启动后,你看到以下信息就说明成功启动了:

接下来我们打开浏览器访问一下我们这个本地网站,输入:http://127.0.0.1:8000/,看到这个页面就说明我们的网站搭建成功了。但是我们也只能在我们的电脑上面访问,如果你要让你的朋友或者同事访问,不放到服务器是不行的。不过这篇文章讲的就是如何不放到服务器,也能让其他人从外网访问你的这个本地网站。

Step two 下载ngrok和注册账号

首先访问它的官网:https://ngrok.com/download下载客户端。

因为是外网,国内下载较慢,我上传到了微云供大家快速下载:

https://share.weiyun.com/5N9SGoE

下载完成后,解压文件夹,你会看到一个ngrok.exe文件。双击打开它。你会看到以下界面:

现在我们还不能使用它,因为还需要申请使用权限,ngrok提供免费的使用,但是你需要先注册账号。我们看一下注册流程:

如果你有Github账号或者Google账号的话直接授权登陆:

没有的话点击免费注册选项,输入姓名和邮件等进行注册:

等待注册完毕后,就会进入管理界面,我们复制画框部分的内容:

来到之前打开的ngrok界面,粘贴刚刚复制的东西,然后回车,注意把前面的 ./ 去掉:

好了,现在我们可以开始外网映射我们本地的网站了。我们的网站的本地网址是http://127.0.0.1:8000/,其中8000是端口。我们需要用ngrok帮我们映射8000端口,让外网可以访问这个端口。

在ngrok界面中,输入 ngrok http 8000

成功的话,你将看到以下界面:

其中 http://38a46b0b.ngrok.io (注意每次映射这个地址都会改变,所以你的和我的会不一样)就是外网的访问地址。我们访问它,就会映射到我们的本地网站。我们在浏览器打开试试:

你看,现在已经映射到本地的网站了,你可能会注意到上面这个错误,这个错误是我们的Django的错误。但是也说明已经成功映射到本地了。这个错误是由于Allow_Host引起的,我们只需要修改ngrok_demo项目中settings.py里面的设置就可以了。下面是修改步骤:

首先打开项目的文件夹:

进入ngrok_demo:

通过编辑器打开settings.py(任何编辑器都可以):

在截图位置的ALLOWED_HOSTS = [ ] 里填入"*",然后保存

现在我们返回刚才的浏览器,再次打开http://38a46b0b.ngrok.io

关注公众号可了解更多外国大神的文章哦

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180802G212TA00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券