55 - [ 1.1 什么是内网穿透] ( #11-什么是内网穿透 )
66 - [ 1.2 什么是 lanproxy] ( #12-什么是-lanproxy )
77 - [ 1.3 原理] ( #13-原理 )
8- - [ 二、快速开始] ( #二快速开始 )
9- - [ 2.1 硬件与环境要求] ( #21-硬件与环境要求 )
10- - [ 2.2 公网服务器配置(Docker 一键启动)] ( #22-公网服务器配置docker-一键启动 )
11- - [ 基础环境安装] ( #基础环境安装 )
12- - [ 通过 Docker,启动 lanproxy 服务] ( #通过-docker启动-lanproxy-服务 )
13- - [ Nginx 反向代理配置域名] ( #nginx-反向代理配置域名 )
14- - [ 继续配置 lanproxy 后台服务] ( #继续配置-lanproxy-后台服务 )
15- - [ 2.3 内网电脑配置(Java 客户端)] ( #23-内网电脑配置java-客户端 )
8+ - [ 二、快速指南] ( #二快速指南 )
9+ - [ 硬件与环境要求] ( #硬件与环境要求 )
10+ - [ 三、公网服务器配置(Docker 一键启动)] ( #三公网服务器配置docker-一键启动 )
11+ - [ 基础环境安装] ( #基础环境安装 )
12+ - [ Nginx 反向代理配置域名] ( #nginx-反向代理配置域名 )
13+ - [ 继续配置 lanproxy 后台服务] ( #继续配置-lanproxy-后台服务 )
14+ - [ 四、内网电脑客户端配置] ( #四内网电脑客户端配置 )
15+ - [ 4.1 推荐:开箱即用客户端,仅需安装 Java 环境] ( #41-推荐开箱即用客户端仅需安装-java-环境 )
16+ - [ Java JDK 1.8 安装] ( #java-jdk-18-安装 )
17+ - [ 下载 Java 客户端(开箱即用)] ( #下载-java-客户端开箱即用 )
18+ - [ 运行 lanproxy client 服务] ( #运行-lanproxy-client-服务 )
19+ - [ lanproxy 网页后台服务查看] ( #lanproxy-网页后台服务查看 )
20+ - [ 4.2 Java 客户端,通过 Maven 方式安装依赖] ( #42-java-客户端通过-maven-方式安装依赖 )
1621 - [ Java 1.8 安装] ( #java-18-安装 )
1722 - [ maven 安装] ( #maven-安装 )
1823 - [ 启动内网服务] ( #启动内网服务 )
19- - [ 运行 lanproxy client 服务] ( #运行-lanproxy-client-服务 )
20- - [ lanproxy 网页后台服务 ] ( #lanproxy-网页后台服务 )
21- - [ 2.4 内网电脑配置(GO 客户端) ] ( #24-内网电脑配置go -客户端 )
24+ - [ 运行 lanproxy client 服务] ( #运行-lanproxy-client-服务-1 )
25+ - [ lanproxy 网页后台服务查看 ] ( #lanproxy-网页后台服务查看-1 )
26+ - [ 4.3 Go 客户端] ( #43-go -客户端 )
2227 - [ 安装Go环境安装] ( #安装go环境安装 )
2328 - [ 拉取 ffay/lanproxy-go-client 代码] ( #拉取-ffaylanproxy-go-client-代码 )
2429 - [ 安装客户端依赖包] ( #安装客户端依赖包 )
2530 - [ 启动客户端] ( #启动客户端 )
26- - [ 三、总结] ( #三总结 )
31+ - [ 五、总结] ( #五总结 )
32+ - [ Todo List] ( #todo-list )
2733 - [ 参考资料] ( #参考资料 )
2834
2935<!-- /TOC -->
@@ -81,13 +87,13 @@ lanproxy 是一个将局域网个人电脑、服务器代理到公网的内网
8187
8288
8389
84- ## 二、快速开始
90+ ## 二、快速指南
8591
86- > 这里我将手把手带你配置 lanproxy 穿透服务,这里配置主要分成了 ** 公网服务器配置** 和 ** 内网电脑配置** 。
92+ > 这里我将手把手带你配置 lanproxy 穿透服务,这里配置主要分成了 ** 公网服务器配置** (请按照 2.2 中的说明进行安装) 和 ** 内网电脑配置** (推荐通过 4.1 中的说明安装) 。
8793>
8894> 在内网电脑配置中分为:Java 客户端和 GO 客户端
8995
90- ### 2.1 硬件与环境要求
96+ ### 硬件与环境要求
9197
9298> 这里以我的环境为例
9399
@@ -98,14 +104,14 @@ lanproxy 是一个将局域网个人电脑、服务器代理到公网的内网
98104 - Java JDK 1.8
99105 - Maven(包依赖管理工具)
100106 - docker 启动服务,tensorflow(jupyter notebook)
101- 3 . ** 已备案的域名**
102- - 此步骤也可省略,但端口太多通过 Nginx 配合域名进行转发,使用更加方便 。故这里我也将会配置两个公网域名
107+ 3 . ** 已备案的域名** (可选)
108+ - 此步骤也可省略,但端口太多通过 Nginx 配合域名进行转发,使用更加优雅 。故这里我也将会配置两个公网域名
103109
104110
105111
106- ### 2.2 公网服务器配置(Docker 一键启动)
112+ ## 三、 公网服务器配置(Docker 一键启动)
107113
108- #### 基础环境安装
114+ ### 基础环境安装
109115
1101161 . 安装 docker 服务,以 CentOS 7.4 为例
111117
@@ -152,7 +158,7 @@ $ service nginx start
152158
153159
154160
155- #### 通过 Docker,启动 lanproxy 服务
161+ 通过 Docker,启动 lanproxy 服务
156162
157163启动 Docker 后运行一下代码
158164
@@ -174,7 +180,7 @@ docker run -d \
174180
175181
176182
177- #### Nginx 反向代理配置域名
183+ ### Nginx 反向代理配置域名
178184
179185在上一步,我们通过 docker 启动了一个 lanproxy 环境,但是通过 IP 和端口号组合的方式并不优雅。这里我将解析两个域名通过 Nginx 进行端口转发。
180186
@@ -248,7 +254,7 @@ $ service nginx restart
248254
249255
250256
251- #### 继续配置 lanproxy 后台服务
257+ ### 继续配置 lanproxy 后台服务
252258
2532591 . 添加一个客户端
254260
@@ -262,9 +268,138 @@ $ service nginx restart
262268
263269至此,服务端的配置就完成了。下面开始内网电脑的配置。
264270
271+ ## 四、内网电脑客户端配置
272+
273+
274+
275+ ### 4.1 推荐:开箱即用客户端,仅需安装 Java 环境
276+
277+ > 如果你的本地已经有了 Java 环境(无论你是编译安装,还是 yum/apt-get 安装,都 ok),最低环境 JDK 1.7 以上。那么我推荐你是用本节中的配置说明,可以不用配置 maven 环境,直接拉取客户端一键运行,更加方便。
278+
279+ #### Java JDK 1.8 安装
280+
281+ 1 . 验证你的本地是否有 Java 环境,如果已经存在 Java 1.7 以上的环境,即可调到下一个步骤
282+
283+ ```
284+ java -version
285+ ```
286+
287+ 2 . 安装 Java 1.8(Ubuntu/apt-get)
288+
289+ ``` shell
290+ # 首先,更新包索引
291+ apt-get update
292+ # 安装Java运行时环境(JRE)
293+ apt-get install default-jre
294+ # 验证安装是否成功
295+ java -version
296+ ```
297+
298+ 详细可参考:[ 在Ubuntu 16.04如何安装Java使用apt-get的 - 一只宅男的自我修养 - 博客园] ( https://www.cnblogs.com/guxiaobei/p/8556586.html )
299+
300+
301+ 3 . 安装 Java 1.8(Centos/yum)
302+
303+ ``` shell
304+ # 首先,更新包索引
305+ yum update
306+ # 安装 Java 1.8
307+ yum install java-1.8.0-openjdk.x86_64 -y
308+ # 验证安装是否成功
309+ java -version
310+ ```
311+
312+ 详细可参考:[ centos7通过yum安装JDK1.8 - 来吧 单刷各种经典 - CSDN博客] ( https://blog.csdn.net/a360616218/article/details/76736988 )
265313
266314
267- ### 2.3 内网电脑配置(Java 客户端)
315+
316+ #### 下载 Java 客户端(开箱即用)
317+
318+ 1 . 为了免去 mvn 安装中出现的意外,我已经为你打造了一款开箱即用的客户端
319+
320+ ```
321+ git clone https://github.com/frank-lam/lanproxy-client.git
322+ ```
323+
324+ 2 . 客户端目录
325+ ```
326+ drwxr-xr-x 7 root root 4096 Jan 2 08:17 ./
327+ drwxr-xr-x 1 root root 4096 Jan 2 08:17 ../
328+ drwxr-xr-x 8 root root 4096 Jan 2 08:17 .git/
329+ drwxr-xr-x 3 root root 4096 Jan 2 08:17 distribution/
330+ drwxr-xr-x 4 root root 4096 Jan 2 08:17 proxy-client/
331+ drwxr-xr-x 4 root root 4096 Jan 2 08:17 proxy-common/
332+ drwxr-xr-x 4 root root 4096 Jan 2 08:17 proxy-protocol/
333+ -rw-r--r-- 1 root root 606 Jan 2 08:17 restart.sh
334+ -rw-r--r-- 1 root root 570 Jan 2 08:17 start.sh
335+ -rw-r--r-- 1 root root 375 Jan 2 08:17 status.sh
336+ -rw-r--r-- 1 root root 588 Jan 2 08:17 stop.sh
337+ ```
338+
339+ 3 . 修改配置文件信息
340+ 打包完成之后,客户端文件会出现在 ` distribution/proxy-client-0.1 ` 目录下,打开之后有是个文件夹:` bin ` 、` conf ` 、` lib ` 和` log ` ,配置信息在 ` conf/config.properties ` 文件内,根据前面服务端的配置信息修改一下。
341+
342+ ``` bash
343+ # 这里是在lanproxy后台配置的密钥
344+ client.key=e6a49a19b8024652ab4ff2210abf2c6a
345+
346+ # 配置ssl信息,根据服务端的配置填写(enable = false 就不需要配置)
347+ ssl.enable=false
348+ ssl.jksPath=test.jks
349+ ssl.keyStorePassword=123456
350+
351+ # 服务器的ip
352+ server.host=120.92.10.120
353+
354+ # proxy-server ssl默认端口4993,默认普通端口4900
355+ # ssl.enable=true时这里填写ssl端口,ssl.enable=false时这里填写普通端口
356+ server.port=4900
357+ ```
358+
359+ #### 运行 lanproxy client 服务
360+
361+ 1 . 启动客户端(官方脚本)
362+ 客户端信息配置完成之后就可以启动客户端了
363+
364+ ``` bash
365+ # mac/linux使用这个
366+ $ bash bin/startup.sh
367+
368+ # Windows 直接运行 bin/startup.bat
369+ ```
370+
371+ 2 . 当然这里我也为你准备了一些开箱即用的脚本(推荐使用)
372+
373+ ``` shell
374+ # 切换到项目根目录
375+
376+ # 重启
377+ sh restart.sh
378+ # 启动
379+ sh start.sh
380+ # 停止客户端
381+ sh stop.sh
382+ # 当前客户端运行状态
383+ sh status.sh
384+ ```
385+
386+ #### lanproxy 网页后台服务查看
387+
388+ 客户端启动服务后,后台可查看状态(在线 / 离线)
389+
390+ ![ 1544798600592] ( assets/1544798600592.png )
391+
392+
393+
394+ 流量统计
395+
396+ ![ 1544798624799] ( assets/1544798624799.png )
397+
398+
399+
400+
401+
402+ ### 4.2 Java 客户端,通过 Maven 方式安装依赖
268403
269404> 这里我的内网是一台 Ubuntu 16.04 的服务器,以下我都将以此为例
270405
@@ -504,7 +639,7 @@ $ bash bin/stop.sh
504639
505640
506641
507- #### lanproxy 网页后台服务
642+ #### lanproxy 网页后台服务查看
508643
509644客户端启动服务后,后台可查看状态(在线 / 离线)
510645
@@ -518,7 +653,7 @@ $ bash bin/stop.sh
518653
519654
520655
521- ### 2.4 内网电脑配置(GO 客户端)
656+ ### 4.3 Go 客户端
522657
523658GitHub 客户端主页:[ lanproxy-go-client] ( https://github.com/ffay/lanproxy-go-client )
524659
@@ -661,12 +796,21 @@ GLOBAL OPTIONS:
661796
662797
663798
664- ## 三 、总结
799+ ## 五 、总结
665800
666801通过以上的配置,只要有一台公网电脑,即可实现内网穿透功能。摆脱花生壳的域名端口限制,流量限制,带宽限制。笔者的公网服务器为 6M 带宽,通过公网映射,文件下载测试大概在 800K/s - 1.5M/s 范围,如果仅是普通的网站服务完全可以完美穿透。
667802
668803
669804
805+ ## Todo List
806+
807+ 为了方便客户端批量安装,我将会编写更为方便的 shell 脚本,做到一键自动部署
808+
809+ - [ ] 一键 shell 脚本安装
810+ - [ ] 交互式 shell 脚本安装
811+
812+
813+
670814## 参考资料
671815
672816- [ 基于docker搭建lanproxy内网穿透服务 - 奉强的个人博客] ( https://www.fengqiangboy.com/15229403526064.html )
0 commit comments