Skip to content

Commit 040e29a

Browse files
committed
修改lanproxy 教程
1 parent 0d04371 commit 040e29a

1 file changed

Lines changed: 170 additions & 26 deletions

File tree

notes/archives/手把手教你,搭建内网穿透服务.md

Lines changed: 170 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,31 @@
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

110116
1. 安装 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

253259
1. 添加一个客户端
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

523658
GitHub 客户端主页:[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

Comments
 (0)