31 Star 138 Fork 36

tuuzed / LightTunnel

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 7.23 KB
一键复制 编辑 原始数据 按行查看 历史
tuuzed 提交于 2020-09-04 17:14 . 更新README.md

LightTunnel-内网穿透工具

支持TCP、HTTP、HTTPS穿透。

Java CI Thanks Download

0x01 文件说明

  • 服务器端文件
 lts.exe       - 服务器端windows可执行文件
 lts.sh        - 服务器端*nix可执行文件
 lts.jar       - 服务器端jvm可执行文件
 lts.ini       - 服务器端最小配置文件   
 lts_full.ini  - 服务器端完整配置文件   
 lts.jks       - 服务器端SSL证书
  • 客户端文件
 ltc.exe       - 客户端windows可执行文件
 ltc.sh        - 客户端*nix可执行文件
 ltc.jar       - 客户端jvm可执行文件
 ltc.ini       - 客户端最小配置文件
 ltc_full.ini  - 客户端完整配置文件   
 ltc.jks       - 客户端SSL证书

0x02 启动命令

  • windows系统

    • 服务器端
    .\lts.exe -c lts.ini
    • 客户端
    .\ltc.exe -c ltc.ini
  • *nix系统

    • 服务器端
    ./lts.sh -c lts.ini
    • 客户端
    ./ltc.sh -c ltc.ini
  • jvm

    • 服务器端
    java -jar lts.jar -c lts.ini
    • 客户端
    java -jar ltc.jar -c ltc.ini

0x03 配置文件

  • 服务器端完整配置参考

      [basic]
      # 线程数,值为-1时不限制线程数量
      boss_threads = -1
      worker_threads = -1
      
      # 绑定IP地址
      bind_addr = 0.0.0.0
      # 绑定端口号
      bind_port = 5080
      
      # 验证Token
      auth_token = tk123456
      # TCP隧道允许使用的端口
      allow_ports = 10000,10001,10002-50000
      
      # tunnel by ssl
      # ssl绑定端口号,为空时不启用http服务
      ssl_bind_port = 5443
      # ssl jks证书文件,加载失败时会默认使用程序内建的证书
      ssl_jks = lts.jks
      ssl_key_password = ltspass
      ssl_store_password = ltspass
      
      # Http和Https共用Registry
      http_https_share_registry = true
      
      # tunnel by http
      # http服务绑定端口,为空时不启用http服务
      http_port = 8080
      
      # tunnel by https
      # https服务绑定端口,为空时不启用https服务
      https_port = 8443
      # https jks证书文件,加载失败时会默认使用程序内建的证书
      https_jks = lts.jks
      https_key_password = ltspass
      https_store_password = ltspass
      
      # 静态文件,启用了http或https服务时有效
      # 路径列表
      plugin_sf_paths = /var/www/html,/usr/shard/nginx/html
      # 需要数量静态文件的host列表
      plugin_sf_hosts = static1.yourdomain.com,static2.yourdomain.com
      
      # Http Rpc绑定端口,为空时不启用Http Rpc
      http_rpc_port = 5081
      # Http Rpc登录用户,没有配置时不需要登录
      http_rpc_username = guest
      http_rpc_password = guest
      
      # 日志
      # 日志等级由低到高 ALL, TRACE, DEBUG, INFO, WARN, ERROR, OFF
      log_level = INFO
      # 日志文件,为空时不保存日志文件
      log_file = ./logs/lts.log
      # 保持的日志文件数量
      log_count = 3
      # 单个日志文件大小,支持KB、MB、GB单位
      log_size = 1MB
  • 客户端完整配置参考

       [basic]
       # 线程数,值为-1时不限制线程数量
       worker_threads = -1
       
       # 服务器地址
       server_addr = 127.0.0.1
       # 服务器端口
       server_port = 5080
       
       # 验证Token需要与服务器一致
       auth_token = tk123456
       
       # ssl jks证书文件,当隧道列表中有使用了ssl时生效,加载失败时会默认使用程序内建的证书
       ssl_server_port = 5443
       ssl_jks = ltc.jks
       ssl_store_password = ltcpass
       
       # Http Rpc绑定端口,为空时不启用Http Rpc
       http_rpc_port = 5082
       # Http Rpc登录用户,没有配置时不需要登录
       http_rpc_username = guest
       http_rpc_password = guest
       
       # 日志
       # 日志等级由低到高 ALL, TRACE, DEBUG, INFO, WARN, ERROR, OFF
       log_level = INFO
       # 日志文件,为空时不保存日志文件
       log_file = ./logs/lts.log
       # 保持的日志文件数量
       log_count = 3
       # 单个日志文件大小,支持KB、MB、GB单位
       log_size = 1MB
       
       
       # 隧道列表
       # 命名空间相同的隧道会被覆盖掉
       [tcp]
       # 隧道类型,支持tcp,http,https
       type = tcp
       # 是否使用ssl连接,true|false
       ssl = true
       # 本地地址
       local_addr = 192.168.1.1
       # 本地端口
       local_port = 80
       # 隧道服务器端口,端口号设置成0时,为随机端口
       remote_port = 10080
       
       [tcp-random]
       type = tcp
       ssl = true
       local_addr = 192.168.1.1
       local_port = 80
       remote_port = 0
       
       [http]
       # 隧道类型,支持tcp,http,https
       type = http
       # 是否使用ssl连接,true|false
       ssl = true
       # 本地地址
       local_addr = 192.168.1.1
       # 本地端口
       local_port = 80
       # 自定义域名,需要域名DNS设置指向服务器地址
       host = t1.tunnel.lo
       # 代理请求头设置,其中$remote_addr为魔法变量,最终会替换成用户的真实IP
       pxy_header_set_X-Real-IP = $remote_addr
       # 代理请求头新增
       pxy_header_add_X-User-Agent = LightTunnel
       # 登录验证信息,没有配置时不需要登录
       auth_realm = .
       auth_username = guest
       auth_password = guest
       
       [https]
       # 隧道类型,支持tcp,http,https
       type = https
       # 是否使用ssl连接,true|false
       ssl = true
       # 本地地址
       local_addr = 192.168.1.1
       # 本地端口
       local_port = 80
       # 自定义域名,需要域名DNS设置指向服务器地址
       host = t1.tunnel.lo
       # 代理请求头设置,其中$remote_addr为魔法变量,最终会替换成用户的真实IP
       pxy_header_set_X-Real-IP = $remote_addr
       # 代理请求头新增
       pxy_header_add_X-User-Agent = LightTunnel
       # 登录验证信息,没有配置时不需要登录
       auth_realm = .
       auth_username = guest
       auth_password = guest

0x04 自定义SSL证书生成

  • 生成服务端证书
    keytool -genkey \
    -alias ltsalias \
    -keysize 2048 \
    -validity 3650 \
    -keyalg RSA \
    -dname "CN=LTS" \
    -keypass ltspass \
    -storepass ltspass \
    -keystore lts.jks
    
    keytool -importkeystore \
    -srckeystore lts.jks \
    -destkeystore lts.jks \
    -deststoretype pkcs12
    
    keytool -export \
    -alias ltsalias \
    -keystore lts.jks \
    -storepass ltspass \
    -file lts.cer
  • 生成客户端证书
    keytool -genkey \
    -alias ltcalias \
    -keysize 2048 \
    -validity 3650 \
    -keyalg RSA \
    -dname "CN=LTC" \
    -keypass ltcpass \
    -storepass ltcpass \
    -keystore ltc.jks
    
    keytool -importkeystore \
    -srckeystore ltc.jks \
    -destkeystore ltc.jks \
    -deststoretype pkcs12
    
    keytool -import -trustcacerts \
    -alias ttsalias \
    -file lts.cer \
    -storepass ltcpass \
    -keystore ltc.jks
Kotlin
1
https://gitee.com/tuuzed/LightTunnel.git
git@gitee.com:tuuzed/LightTunnel.git
tuuzed
LightTunnel
LightTunnel
dev

搜索帮助