使用NATAPP进行内网ssh穿透

版权声明:本文为博主ouening原创文章,未经博主允许不得恶意复制转载,需要注明出处,尊重知识成果!技术交流请联系[email protected]! https://blog.csdn.net/ouening/article/details/91514367

系统:Ubuntu18.04
软件:支持ssh登录的客户端,Android有JuiceSSH,Windows有putty等
需求:实验室用于机器学习的Ubuntu系统主机处在校园网内网中,要想随时随地访问该主机,就需要穿透学校校园网,采用ssh控制。

下面简单记录一下过程:

1. 前往https://natapp.cn购买隧道

笔者购买的是不限流量套餐vip-v3,需要的话可以使用邀请码C7F968E9,九折优惠,购买之后会有authtoken,下面会用到。

注意购买过程中隧道协议选择tcp,远程端口随便填写,如果提示已存在就更换一下,端口号范围为0-65535,一般选择10000以上,10000以下容易被系统或一些特殊软件占用,或是以后新应用准备占用该端口的时候,却被你先占用了,导致软件无法运行。由于笔者想
通过ssh访问,默认端口是22,因此本地端口填写为22。
在这里插入图片描述

2. 下载natapp客户端,更改执行权限

$ chmod a+x natapp

3. 修改配置文件config.ini

参考官方教程:https://natapp.cn/article/tcp
笔者的配置文件内容如下:

#将本文件放置于natapp同级目录 程序将读取 [default] 段
#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
#命令行参数 -config= 可以指定任意config.ini文件
[default]
authtoken=对应自己购买隧道的token                      #对应一条隧道的authtoken
clienttoken=                    #对应客户端的clienttoken,将会忽略authtoken,若无请留空,
log=stdout                        #log 日志文件,可指定本地文件, none=不做记录,stdout=直接屏幕输出 ,默认为none
loglevel=INFO                  #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG
http_proxy=                     #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空

注意该配置文件要和natapp客户端处在同级目录,因为natapp会默认查找该文件。

修改配置文件后运行客户端:

$ ./natapp

运行之后会在终端看到连续信息,包括natapp提供的服务器地址,远程连接需要用到。
笔者运行结果为:

natapp_linux_amd64_2_3_9: ./natapp -config config.ini
[06/12/19 13:27:03] [INFO] [client] Trusting root CAs: [assets/client/tls/ngrokroot.crt]
[06/12/19 13:27:03] [INFO] [client] Authenticated with server, client id: xxxxxxxxxxxxxxxxxx
[06/12/19 13:27:03] [INFO] [client] Tunnel established at tcp://xxxxxxxxxxxxxxxx.natapp.cc:10080

4. ssh访问内网主机

现在可以通过ssh登录内网主机了,例如笔者在Android手机上通过JuiceSSH登录,设置类型为ssh,地址填写natapp运行给出的服务器地址,端口填写注册时填写的远程端口。

猜你喜欢

转载自blog.csdn.net/ouening/article/details/91514367