# 我的秘密路径 **Repository Path**: springbug/my_secret_path ## Basic Information - **Project Name**: 我的秘密路径 - **Description**: 纯java的端口转发工具,基于jsch实现,通过ssh通道将远程服务器代理到本地端口,实现内网穿透等,加密通讯等功能。 - **Primary Language**: Java - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 5 - **Created**: 2024-11-22 - **Last Updated**: 2024-11-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 我的秘密路径 #### 我能干什么 ```text 我想访问服务器上的某个服务,但是又不想开放端口被人扫描到,或者不想打开防火墙怎么办。 只需要有一个开放1个端口(ssh)的服务器,即可和本地环境一样访问所有端口,或其他内网服务器。 ``` #### 介绍 ssh端口转发,基于jsch实现,通过ssh通道将远程服务器代理到本地端口,实现内网穿透等,加密通讯等功能。 整个项目非常简单!!简单到就2个类,不到200行代码 配合 screen 实现后台运行 #### 软件架构 依赖: jdk8 maven spring-shell-starter lombok jsch #### 安装教程 注意,需要配置好.ssh/config 文件,它是什么可以参考搜索引擎 主要配置内容需要: 自行替换 ```shell script Host mysql hostname 127.0.0.1 user admin port 22 identityfile ~/.ssh/id_rsa ``` ```shell script #进入home目录 创建隐藏文件夹 添加环境变量 $ cd $HOME;mkdir .bin;echo 'export PATH=$PATH:$HOME/.bin' >> $HOME/.bashrc #下载源码 $ git clone https://gitee.com/bolingit/my_secret_path #进入源码目录并编译 $ cd my_secret_path $ mvn clean package -Dmaven.test.skip=true #将编译好的jar包copy到$HOME/.bin 并添加执行权限 $ cp target/port-forward.jar $HOME/.bin;cd $HOME/.bin;chmod +x port-forward.jar #运行程序 $ port-forward.jar ``` 运行时: ![WAI](https://gitee.com/bolingit/my_secret_path/raw/master/demo.png) #### 使用说明 基于spring-shell ```shell script #查看支持的命令 shell:> help #查看 ~/.ssh/config 配置的服务 shell:> list #或者通过read-config: 读取指定的ssh config: 默认读取~/.ssh/config shell:> read-config '~/.ssh/config' #监听本地端口13306 使用ssh通道链接至config中配置的mysql服务器,并将数据转发到mysql本地的3306端口上 shell:> open mysql #ssh通道已打开 shell:> forward mysql 13306 localhost 3306 #看到以下输出说明运行成功 #正在监听本地端口[13306],数据通过[mysql]转发至[localhost:3306] #通道打开后 可以直接使用mysql客户端 访问本机13306端口 就直接链接到远程服务器的mysql了.(不需要开通3306的防火墙,只要ssh可以访问并开启了ssh转发功能【默认开启的】) ``` #### 来一些骚操作 ```text 配合 screen 实现后台运行 screen port-forward.jar 使用Ctrl+a+d 退出screen窗口,在bash环境使用screen -r回到 port-forward界面 实现A直接访问本机端口实际访问的却是C 本机---A(跳板机)---B---C 本机开启转发由A转发到B,B开启转发到C指定端口 ``` #### 功能 ```text [ ] 添加启动时自动执行转发的配置文件 [x] 支持保存当前转发,手动恢复 ```