【ubuntu】NATAPP 内网穿透

2 篇文章 0 订阅

已经很久没有更新博客了,刚好把这两天业余时间弄的内网穿透工具NATAPP总结一下。

三年前买的的阿里云服务器到期了,续费一年的价格不太香,所以通过“本地服务器+NATAPP穿透+Server酱”方式完成外网访问功能。

NATAPP配置

NATAPP提供两个免费隧道,TCP和HTTP。白嫖党当然全都要。

  • /usr/local/ 下新建 natapp_tcpnatapp_web 两个文件夹
  • 拷贝 natappconfig.ini 到两个文件夹中
  • 配置 config.ini:
#将本文件放置于natapp同级目录 程序将读取 [default] 段
#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
#命令行参数 -config= 可以指定任意config.ini文件
[default]
authtoken=1f************8fa     #对应一条隧道的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 非代理上网用户请务必留空  
  • 然后写一个 start_natapp.sh 脚本让 natapp 后台运行:
# rm ~/nohup.out

nohup /usr/local/natapp/natapp_web/natapp &
nohup /usr/local/natapp/natapp_tcp/natapp &

# tail -20 ~/nohup.out
tail -f ~/nohup.out

nohup日志文件默认生成在当前路径下 *,如果没有权限则输出到用户目录:~/nohup.out

域名提取+微信通知

分析 nohup.out 文件,从中提取 url 链接。废话不多说,上代码:

  • parser_natapplog.py
import re
import requests

# Server酱申请的skey
SCKEY = ' '
global contents
contents = ''

pattern_list = r'"Url":"[a-zA-Z]+://([a-zA-z0-9]+.[a-zA-Z0-9]+.cc(:)?[0-9]*)"'
context = []
def output(content):
    global contents
    content += '  '
    contents += content + '\n'
    content += '  '
    print(content)

#server酱推送
def server():
    global contents
    message = {"text": "NATAPP更新通知", "desp": contents}
    r = requests.post("https://sc.ftqq.com/" + SCKEY + ".send", data=message)
    if r.status_code == 200:
        print('[+]server酱已推送,请查收')

def logparser(filepath):
    linenum = 0
    with open(filepath) as f:
        lines = f.readlines()
        for line in lines:
            result = re.compile(pattern_list).search(line)
            if not result:
                linenum = linenum + 1
                continue;
            else:
                if 1:
                    context.append("http://" + result.group(1))
                    # print("http://" + result.group(1)+"\n")
                else:
                    content = "http://" + result.group(1)
                    output(content)

def output_Last2_element():
    num = len(context)
    output(context[-1])
    for i in range(2, num):
        if len(context[-i]) != len(context[-1]):
            output(context[-i])
            return
        else:
            continue

if __name__ == '__main__':
    logparser("./nohup.out")
    output_Last2_element()
    try:
        server()
    except Exception:
        print('[+]请检查server酱配置是否正确')

定时运行

crontab -e
30 8,20 * * * python3 ./parser_natapplog.py

完结上图:这个是没做优化的通知,我分享的源码已经修改为 输出列表的最后两个不同的链接即可,保持最新的链接。
在这里插入图片描述
【参考文献】
明天双休日,今晚要熬夜看世界杯了,浏览器记录现在懒得翻了,向伟大的前辈们表达深深的谢意!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值