termux ngrok 内网穿透

termux ngrok 内网穿透

前言

在termux和ngrok官网学习之后发现,官网的教程有一些细节的地方不是很详细,让后到处也找不到比较好的教程,于是就自己写了一个文档,如果有错误及疏漏之处,还望指出,我会加以改正。


这篇教程以termux为例,当然其他系统也可以使用以下方法。

一、安装ngrok工具

安装ngrok工具建议去官网下载
ngrok官网链接

termux先在在命令行中输入uname -m确认内核

~ $ uname -m
aarch64

arrch64也是ARM64,所以在官网中获取下载链接后输入到命令行中

wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-arm64.tgz

解压,给予执行权限并移动到$PREFIX/bin文件夹下

tar ngrok-stable-linux-arm64.tgz
chomod +x ngrok
mv ngrok $PREFIX/bin/

测试

.../usr/bin $ ngrok
NAME:
   ngrok - tunnel local ports to public URLs and inspect traffic

DESCRIPTION:
    ngrok exposes local networked services behinds NATs and firewalls to the
    public internet over a secure tunnel. Share local websites, build/test
    webhook consumers and self-host personal services.
    Detailed help for each command is available with 'ngrok help <command>'.
    Open http://localhost:4040 for ngrok's web interface to inspect traffic.

EXAMPLES:
    ngrok http 80                    # secure public URL for port 80 web server
    ngrok http -subdomain=baz 8080   # port 8080 available at baz.ngrok.io
    ngrok http foo.dev:80            # tunnel to host:port instead of localhost
    ngrok http https://localhost     # expose a local https server
    ngrok tcp 22                     # tunnel arbitrary TCP traffic to port 22
    ngrok tls -hostname=foo.com 443  # TLS traffic for foo.com to port 443
    ngrok start foo bar baz          # start tunnels from the configuration file

VERSION:
   2.3.35

AUTHOR:
  inconshreveable - <alan@ngrok.com>

COMMANDS:
   authtoken    save authtoken to configuration file
   credits      prints author and licensing information
   http         start an HTTP tunnel
   start        start tunnels by name from the configuration file
   tcp          start a TCP tunnel
   tls          start a TLS tunnel
   update       update ngrok to the latest version
   version      print the version string
   help         Shows a list of commands or help for one command

安装完成


二、使用

安装成功后要到官网注册一个账号或直接用GitHub账号登录

然后在本地建立一个ssh密钥

.../usr/bin $ ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa
Generating public/private rsa key pair.
/data/data/com.termux/files/home/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /data/data/com.termux/files/home/.ssh/id_rsa
Your public key has been saved in /data/data/com.termux/files/home/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:IVPTTiVL0fQKi/g+iCkMzZO++VBDQsHd6ZV4wQqEOTQ u0_a345@localhost
The key's randomart image is:
+---[RSA 2048]----+
| oE*.. ++++=o    |
| .=.o +.=ooo..   |
|  ...oo+.oo   .  |
|   o  o+ o.o .   |
| o .o . S . .    |
|. =. . .         |
| +.. o ..        |
|  +oo ...        |
|  o+.   ..       |
+----[SHA256]-----+
.../usr/bin $

公钥路径

~ $ cat $HOME/.ssh/id_rsa.pub

将公钥粘贴到ngrok网站里
在这里插入图片描述

点击Add SSH Key
Public Key:填入公钥
在这里插入图片描述
到这里获取认证信息
在这里插入图片描述
然后回到termux输入认Authoken

~ $ ngrok authtoken [Your Authoken]

完成

实验

重点:在启动服务之前启动一下termux-chroot,不然可能连接不上

测试不在同一网段使用ssh链接shell:

在其他设备的命令行输入连接shell(以windows 10 为例)

# 启动ngrok服务 ssh
~ $ ssh -R 0:localhost:8022 tunnel.us.ngrok.com tcp 8022
Enter passphrase for key '/data/data/com.termux/files/home/.ssh/id_rsa':
Allocated port 18594 for remote forward to localhost:8022

ngrok (via SSH) by @inconshreveable (Ctrl+C to quit)

Account     Alioth-yuheng (Plan: Free)
Region      us
Forwarding  tcp://0.tcp.ngrok.io:18594

# windows 10 cmd
C:\Users\Administrator>ssh -p 18594 0.tcp.ngrok.io
The authenticity of host '[0.tcp.ngrok.io]:18594 ([3.13.191.225]:18594)' can't be established.
ECDSA key fingerprint is SHA256:cmIJf1VfAU3B8o9bCq7czAC4rRDl7lRAy0A6ujAl/5g.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[0.tcp.ngrok.io]:18594,[3.13.191.225]:18594' (ECDSA) to the list of known hosts.
alioth@0.tcp.ngrok.io's password:

Welcome to Termux!

Community forum: https://termux.com/community
Gitter chat:     https://gitter.im/termux/termux
IRC channel:     #termux on freenode

Working with packages:

 * Search packages:   pkg search <query>
 * Install a package: pkg install <package>
 * Upgrade packages:  pkg upgrade

Subscribing to additional repositories:

 * Root:     pkg install root-repo
 * Unstable: pkg install unstable-repo
 * X11:      pkg install x11-repo

Report issues at https://termux.com/issues

The Google Play version of the Termux app no longer
receives updates. For more information, visit:
https://wiki.termux.com/wiki/Termux_Google_Play

~ $ 

解决遇到过的报错

  • 启动服务后到127.0.0.1:4040点击了网页链接却报错:
    解决:端口要有服务在运行,比如在80端口配置了apache服务,命令就应该是
~ $ ngrok http 80
# 或
~ $ ngrok https 80
  • 启动ngrok失败的可能性1
    没有安装两个软件
$ pkg install proot resolv-conf
  • 启动ngrok失败的可能性2
    没有进入termux-chroot
$ termux-chroot
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值