手把手教你免费内网穿透【2020.7.13 已失效】

rui_er

2020-05-07 11:25:51

Personal

> 你是否有过很想把内网的网页放到公网让大家也可以访问?你是否很想把搭建的 OJ 放到公网?今天,我来教大家内网穿透的具体操作步骤。 # 0 准备工作 首先,你需要准备如下材料: - 一台电脑 - 一个 localhost 网页(即 `localhost:xxx` 或 `127.0.0.1:xxx`) - (选)一个可以解析的域名(国内服务器需要备案) # 1 注册 Ngrok 账号 去 [Ngrok 官网](http://www.ngrok.cc)点击注册,注册一个新账号并登录,此时应该看到如下界面: ![](https://cdn.luogu.com.cn/upload/image_hosting/r8aynzvv.png) 其中“开通隧道”处应为 `0 / 0 / 0`,这里有数字是因为我已经进行了后续操作。 # 2 开通隧道 点击左侧导航栏“隧道管理→开通隧道”,划到最下面“美国 Ngrok 免费服务器”,点击按钮“立即购买”。当然如果你是土豪选择买一个付费隧道也可以。 # 3 配置隧道 做完上面的操作后看到如下界面: ![](https://cdn.luogu.com.cn/upload/image_hosting/zqpy4ny1.png) **隧道名称**栏可以随便填,只是方便记忆。**隧道协议**选择 http。**前置域名**填写一个由字母、数字、减号、下划线组成的字符串,是你想要的域名前缀地址,最后你的网站会在这个子域名显示。**本地端口**是你本地的访问地址,一般是 `localhost:80 / 127.0.0.1:80`,不用改;否则把冒号后面的端口号改成你的端口。**http 验证用户名**和 **http 验证密码**空着即可。 配置完上面的内容,点击“确认添加”即可。 # 4 设置自定义域名 例如这里我的前置域名写的是 `akioi`,那么一会访问地址就会在前置域名那栏那个网址。**如果您不想把网站放到自己的域名,请忽略此步骤。** ![](https://cdn.luogu.com.cn/upload/image_hosting/ummv7g6l.png) 域名类型选择“使用自定义域名”,在自定义域名里面填写你想放到的网址,划到最下面“确认修改”。 在自定义域名添加 CNAME 解析指向 ngrok 服务器,具体的在编辑界面写了,可以看。 # 5 开通映射服务 这里作者主要讲解 Windows 与 Linux 的开通方法,其他系统也可以上网百度的到。 回到隧道管理界面,看到 ![](https://cdn.luogu.com.cn/upload/image_hosting/op7nzm60.png) 点击“客户端下载”,选择自己的操作系统,下载,将 zip 文件解压。 ## 5.1 Linux 作者本人是用 Linux 虚拟机搭建了一个 OJ,所以使用的是 Linux 的方法。 打开命令行,cd 到解压后的文件夹里,有一个 sunny 文件。此时输入命令 `./sunny clientid <xxx>`,其中 `<xxx>` 换成你的隧道 id(见上图),看到 `Tunnel Status Online` 就代表成功了。 ![](https://cdn.luogu.com.cn/upload/image_hosting/a03y6ap4.png) ## 5.2 Windows 打开 cmd,cd 到文件夹,输入指令 `ngrok -authtoken <id> -subdomain <subdomain> <port>`,其中 `<id>,<subdomain>,<port>` 分别是隧道 id、二级域名和端口,判定成功的条件和 Linux 一样。 # 6 尽情享用吧! 作者通过这种方式把虚拟机 `http://127.0.0.1:80` 映射到了 `http://oj.ak-ioi.cf`。你也可以在你的自定义域名或默认域名找到你的网站。 # 7 常见错误 - Q:我配置了隧道为什么访问不了? - A:配置完隧道还要开通服务才能显示哦~ - Q:为什么 Tunnel Status 显示 Reconnecting? - A:因为 ngrok 的服务不太稳定,大概等一小会就好了;如果没有好,可以检查一下自己的网络连接。**具体可以看 ngrok 官方 wiki。** - **Q:官方 wiki 没有包含我的问题怎么办?** - **A:可以先到洛谷私信 rui_er,如果他也不会可以加入 ngrok QQ 群提问。** # 8 优点缺点 优点有免费、简单;但是缺点是连接可能不太稳定,且延时较大。不过瑕不掩瑜,不影响整体运行。 ~~欢迎大家到我的 [OJ](http://oj.ak-ioi.cf) 来参观!~~