Skip to content

Commit fc09679

Browse files
committed
Update README.md
1 parent 28e927b commit fc09679

File tree

1 file changed

+97
-6
lines changed

1 file changed

+97
-6
lines changed

README.md

Lines changed: 97 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# azure-http-proxy [![Build Status](https://travis-ci.org/lxrite/azure-http-proxy.svg?branch=master)](https://travis-ci.org/lxrite/azure-http-proxy)
22

3+
## 简介
4+
35
AHP(Azure Http Proxy)是一款高速、安全、轻量级和跨平台的HTTP代理,使用对称加密算法AES对传输的数据进行加密,使用非对称加密算法RSA传输密钥。
46

57
HTTP代理对域名的解析是在服务端进行的,所以AHP还能解决本地DNS污染问题。
68

7-
# 快速开始
8-
99
## 编译和安装
1010

1111
### 编译器
@@ -18,7 +18,7 @@ AHP使用了部分C++11特性,所以要求对编译器的版本有较高要求
1818
- MinGW >= 4.8
1919

2020
参考:http://en.cppreference.com/w/cpp/compiler_support
21-
21+
2222
### 安装依赖
2323

2424
AHP依赖Boost和OpenSSL库,且要求Boost库版本不低于1.52
@@ -41,12 +41,12 @@ AHP依赖Boost和OpenSSL库,且要求Boost库版本不低于1.52
4141

4242
Windows则需要自己编译Boost库,而OpenSSL库可以从 https://www.openssl.org/related/binaries.html 下载到编译好的。
4343

44-
#### 编译
44+
### 编译
4545
AHP使用自动化构建工具CMake来实现跨平台构建
4646

4747
- CMake >= 2.8
4848

49-
Windows下可以使用cmake-gui.exe,Linux和其他类Unix系统可以使用下面的命令编译
49+
Windows下可以使用cmake-gui.exe,Linux或其他类Unix系统可以使用下面的命令编译
5050

5151
$ cd azure-http-proxy
5252
$ mkdir build
@@ -57,4 +57,95 @@ Windows下可以使用cmake-gui.exe,Linux和其他类Unix系统可以使用下
5757
如果编译成功会生成ahpc(客户端)和ahps(服务端)。
5858
## 配置和运行
5959

60-
未完待续...
60+
如果你要运行的是服务端,那么你首先需要生成一对RSA密钥对,AHP支持任意长度不小于1024位的RSA密钥。下面的命令使用openssl生成2048位的私钥和公钥
61+
62+
openssl genrsa -out rsa_private_key.pem 204
63+
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
64+
65+
服务端保留私钥并将公钥告诉客户端。
66+
67+
### 配置服务端
68+
69+
编辑server.json文件,Windows下应将此文件放到ahps.exe同目录下,Linux或其他类Unix系统将此文件放到~/.ahps/server.json。
70+
71+
{
72+
"bind_address": "0.0.0.0",
73+
"listen_port": 8090,
74+
"rsa_private_key": "-----BEGIN RSA PRIVATE KEY----- ...... -----END RSA PRIVATE KEY-----",
75+
"timeout": 240,
76+
"workers": 4,
77+
"auth": true,
78+
"users": [
79+
{
80+
"username": "username1",
81+
"password": "password1"
82+
},
83+
{
84+
"username": "foobar",
85+
"password": "bazqux"
86+
}
87+
]
88+
}
89+
90+
字段名 | 描述 | 是否必选 | 默认值 |
91+
----------------|--------------------|------------------|-----------|
92+
bind_address | 服务端绑定的IP地址 | 否 | "0.0.0.0" |
93+
listen_port | 服务端绑定的端口 | 否 | 8090 |
94+
rsa_private_key | RSA私钥 | 是 | 无 |
95+
timeout | 超时时间(秒) | 否 | 240 |
96+
workers | 并发工作线程数 | 否 | 4 |
97+
auth | 启用代理身份验证 | 否 | false |
98+
users | 用户列表 | auth为true时必选 | 无 |
99+
100+
### 配置客户端
101+
102+
编辑client.json文件,Windows下应将此文件放到ahpc.exe或ahpc-gui.exe同目录下,Linux或其他类Unix系统将此文件放到~/.ahpc/client.json。
103+
104+
{
105+
"proxy_server_address": "127.0.0.1",
106+
"proxy_server_port": 8090,
107+
"bind_address": "127.0.0.1",
108+
"listen_port": 8089,
109+
"rsa_public_key": "-----BEGIN PUBLIC KEY----- ...... -----END PUBLIC KEY-----",
110+
"cipher": "aes-256-ofb",
111+
"timeout": 240,
112+
"workers": 2
113+
}
114+
115+
字段名 | 描述 | 是否必选 | 默认值 |
116+
---------------------|----------------------|------------------|---------------|
117+
proxy_server_address | 服务端的IP地址或域名 | 是 | 无 |
118+
proxy_server_port | 服务端的端口 | 是 | 无 |
119+
bind_address | 客户端绑定的IP地址 | 否 | "127.0.0.1" |
120+
listen_port | 客户端的监听端口 | 否 | 8089 |
121+
rsa_public_key | RSA公钥 | 是 | 无 |
122+
cipher | 加密算法 | 是 | "aes-256-ofb" |
123+
timeout | 超时时间(秒) | 否 | 240 |
124+
workers | 并发工作线程数 | 否 | 2 |
125+
126+
## 运行
127+
128+
确定配置无误后就可以运行AHP了。
129+
130+
### 运行服务端
131+
132+
Linux或其他类Unix系统
133+
134+
./ahps
135+
136+
Windows
137+
138+
ahps.exe
139+
140+
### 运行客户端
141+
142+
Linux或其他类Unix系统
143+
144+
./ahpc
145+
146+
Windows
147+
148+
ahpc.exe
149+
150+
Enjoy!
151+

0 commit comments

Comments
 (0)