首页 > 编程语言 >基于python实现的内网穿透工具 (proxynt)

基于python实现的内网穿透工具 (proxynt)

时间:2023-02-15 12:45:41浏览次数:50  
标签:python proxynt nt admin config path password 内网 port

内网穿透工具

github: https://github.com/sazima/proxynt

原理

原理

特性

  1. 随时随地打开浏览器管理端口映射
  2. 公网服务器和内网客户端之间使用 WebSocket 加密传输
  3. 依赖少, 使用 pip一键安装
  4. 稳定, 自动重连, 已在生产环境中使用

常用场景

  1. 在家托管网站服务器
  2. 管理物联网设备

安装

pip install proxynt

使用

客户端

# 查看帮助
nt_client --help
# 启动客户端
nt_client -c config_c.json

服务端

# 查看帮助
nt_server --help
# 启动服务端
nt_server -c config_s.json

服务端ui

管理页面路径为websocket路径+/admin,
比如 
http://192.168.9.224:18888/websocketpath/admin

ui

示例, 通过 SSH 访问内网机器

假设公网机器的ip是 192.168.9.224

1. 在公网机器上配置config_s.json

{
  "port": 18888,
  "password": "helloworld",
  "path": "/websocket_path",
  "admin": {
    "enable": true,  
    "admin_password": "new_password"  
  }
}

说明:

  • port: 监听端口
  • password: 连接密码
  • path: websocket路径
  • admin: 管理页配置(非必须)
  • admin.enable: 是否启用管理页
  • admin.admin_password: 管理密码

然后启动:
nt_server -c config_s.json

2. 在需要被访问的内网电脑上配置config_c.json

配置config_c.json

{
  "server": {
    "port": 18888,
    "host": "192.168.9.224",
    "https": false,
    "password": "helloworld",
    "path": "/websocket_path"
  },
  "client_name": "我家里的小电脑",
  "client": [
    {
      "name": "ssh1",
      "remote_port": 12222,
      "local_port": 22,
      "local_ip": "127.0.0.1"
    }
  ]
}

说明:

  • server: 要连接的服务器端口, ip, 是否是https, 密码, websocket路径
  • client_name: 客户端名称
  • client: 这里是将本机的22端口映射到服务器的12222端口上

然后启动:
nt_client -c config_c.json

3. ssh 连接:

ssh -oPort=12222 [email protected]

打开管理页面:

http://192.168.9.224:18888/websocketpath/admin

完整配置说明

  • 客户端 config_c.json
{
  "server": {  // 要连接的服务端配置
    "port": 18888,  // 端口
    "host": "192.168.9.224",  // 端ip
    "https": false,  //服务端是否启动https
    "password": "helloworld",  // 密码
    "path": "/websocket_path"  // websocket 路径
  },
  "client": [  // 转发的配置列表
    {
      "name": "ssh",
      "remote_port": 1222,
      "local_port": 22,
      "local_ip": "127.0.0.1"
    },
    {
      "name": "mongo",
      "remote_port": 1223,
      "local_port": 27017,
      "local_ip": "127.0.0.1"
    }
  ],
  "client_name": "ubuntu1",  // 客户端名称, 要唯一
  "log_file": "/var/log/nt/nt.log"  // 日志路径
}
  • 服务端 config_c.json
{
    "port": 18888,  // 监听端口
    "password": "helloworld",  // 密码
    "path": "/websocket_path",  // websocket路径
    "log_file": "/var/log/nt/nt.log",  // 日志路径
    "admin": {  
        "enable": true,  // 是否启用管理页
        "admin_password": "new_password"  // 管理页密码
    }
}

标签:python,proxynt,nt,admin,config,path,password,内网,port
From: https://www.cnblogs.com/wktadmin/p/17086894.html

相关文章

  • Idea如何支持写Python代码
    在IDEA中,点击【File】-【Settings...】-【Plugins】,在里面搜索python,并安装插件。(安装后需要重启有效)在IDEA中,配置pythonSDK的路径  (清除红色下划线)【Modules】......
  • python实现一边看图片,一边快速选择分类的脚本
    根据需要,找到了python库——pywinauto根据文档,需要连接或启动相关的app。我选择了连接,第一步错误。app=Application(backend='uia').connect(process='1223')我将数字......
  • 要成为Python大神,需要掌握。。。
    要成为Python大神,需要掌握Python编程语言的基本语法和概念,理解面向对象编程思想,了解Python标准库及其常用模块,熟练使用Python编写程序解决实际问题。以下是一些具体的建议,可......
  • 【python版CV】-直方图 & 傅里叶变换
    文章目录​​1、直方图​​​​mask操作:​​​​shape学习​​​​图像基本运算:​​​​直方图均衡化​​​​2、傅里叶变换​​​​傅里叶变换的作用​​​​滤波:​​​​......
  • 【Python21天学习挑战赛】—Day1:学习规划,我与python的相遇
    大学实验室指导老师说过:“学习是无聊的。没有人说学习是快乐的,那是扯淡!”。是的,学习是无聊的,但是学习到的知识丰富我们自己是快乐的。我喜欢把自己每天所学的知识通过平台分......
  • 【python版CV】图像轮廓&模板匹配
    文章目录​​1、图像轮廓​​​​1.1findContours函数:​​​​1.2获取轮廓信息(可能会报错原因)​​​​1.3绘制轮廓:​​​​1.4轮廓特征:​​​​1.5轮廓近似:​​​​1.6......
  • 【python版CV】-图像处理(1)
    开头一下:上一篇学习完了图像的基础操作,这一篇博客是记录图像处理的一部分。回顾python版的OpenCV第二篇,对于相关的图像处理也有一定的了解。视频参考B站唐宇迪博士,也是来自......
  • 【python版CV】—图像基本操作
    1、数据读取-图像cv2.IMREAD_COLOR:彩色图像cv2.IMREAD_GRAYSCALE:灰度图像#输出图像函数defcv_show(name,img):cv.imshow(name,img)#等待时间,毫秒级别。0表示任意......
  • run_py.sh shell 启动python程序
     1.run_py.sh#!/bin/shNAME=$1#$1运行时输入参数为文件名称NAME=${NAME%%.*}if[-z"$NAME"];thenecho"STRINGisempty"NAME="aa"fiecho$NAMEID=......
  • vs code怎么设置python解释器
    首先打开一个python文件,如下图所示 右键单击选择命令面板,如下图所示 接着输入python:select选择第一个 然后点击盘符,如下图所示......