Metatronxl / flappy

a toy NAT-DDNS tool

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

flappy

一个玩具级别的内网穿透服务

0x01 主要功能

flappy是一个将局域网个人电脑、服务器代理到公网的内网穿透工具,目前仅支持tcp流量转发,可支持任何tcp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面...)

0x02 配置

server配置

该配置为代理服务器的配置,代理服务器端需要配置详细的代理信息,具体的配置格式示例如下

[
  {
    "name": "home_linux",
    "clientKey": "6b1c4bfbd674423d84915390dfc5c173",
    "proxyMappings": [
      {
        "name": "lab_linux",
        "inetPort": "2223",
        "lan": "127.0.0.1:22"
      }
    ],
    "status": 0
  },
  {
    "name": "mac_test",
    "clientKey": "a1c626e56a4e44bbb4bc5f99549b2f55",
    "proxyMappings": [
      {
        "inetPort": 23334,
        "lan": "127.0.0.1:80",
        "name": "mac_test_proxy"
      },
      {
        "inetPort": 23335,
        "lan": "127.0.0.1:22",
        "name": "mac_test_ssh"
      }
    ],
    "status": 0
  }
]

其中

  • lan是指需要穿透的内网客户端的接口
  • inetPort是指在代理客户端上的接口
  • name是指服务代称
  • status是指目前是否活跃(暂未启用)

server的配置文件放置在conf目录中,配置 config.properties

server.bind=0.0.0.0
 
 #与代理客户端通信端口
 server.port=4900
 
 #ssl相关配置
 server.ssl.enable=true
 server.ssl.bind=0.0.0.0
 server.ssl.port=4993
 server.ssl.jksPath=test.jks
 server.ssl.keyStorePassword=123456
 server.ssl.keyManagerPassword=123456
 
 #这个配置可以忽略
 server.ssl.needsClientAuth=false


client配置

#与在proxy-server配置后台创建客户端时填写的秘钥保持一致;
client.key=
ssl.enable=true
ssl.jksPath=test.jks
ssl.keyStorePassword=123456

#这里填写实际的proxy-server地址;没有服务器默认即可,自己有服务器的更换为自己的proxy-server(IP)地址
server.host=lp.thingsglobal.org

#proxy-server ssl默认端口4993,默认普通端口4900
#ssl.enable=true时这里填写ssl端口,ssl.enable=false时这里填写普通端口
server.port=4993

0x03 服务启动

  • 代理服务器端使用server_restart.sh&& server_stop.sh
  • 内网客户端使用client_restart.sh&&client_stop.sh

0x04 使用技术

  • Netty — SpringBoot

0x05 环境要求

  • 安装java1.7或以上环境
  • Maven

0x06 关于内网穿透的核心流程

请参考document.md

TODO

  • 配置信息使用web修改(配置信息暂时放置在 /.flappy/config.json)
  • 配置热更新时的处理逻辑

致谢

ffay大大的lanproxy

About

a toy NAT-DDNS tool


Languages

Language:Java 83.4%Language:JavaScript 8.9%Language:Shell 6.0%Language:Vue 1.3%Language:HTML 0.3%