前言
anyproxy可以跨平台使用,前面第一篇是搭建在windows機器上,本篇講如何在linux上搭建anyproxy環境,當然有mac的小伙伴也可以用mac去搭建一個環境。
nodejs安裝
anyproxy是依賴於nodejs的,所以第一步先安裝nodejs,nodejs下載地址:https://nodejs.org/en/download/
找到需要下載的版本號,右鍵復制出下載地址https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.xz
- cd 到local目錄
- 新建一個nodejs的目錄
- cd到nodejs目錄,用wget下載
- tar xf 解壓文件
- mv 重命名為node10
- ln -s設置node軟鏈接
- 輸入node -v查看版本號
[root@yoyo nodejs]# cd /
[root@yoyo /]# cd /usr/local/
[root@yoyo local]# mkdir nodejs
[root@yoyo nodejs]# wget https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.xz
[root@yoyo nodejs]# tar xf node-v10.15.0-linux-x64.tar.xz
[root@yoyo nodejs]# ll
total 21088
drwxrwxr-x 6 500 500 4096 Dec 26 14:27 node-v10.15.0-linux-x64
-rw-r--r-- 1 root root 12307872 Dec 26 14:28 node-v10.15.0-linux-x64.tar.xz
[root@yoyo nodejs]# mv node-v10.15.0-linux-x64 nodejs10
[root@yoyo nodejs]# ln -s /usr/local/nodejs/nodejs10/bin/node /usr/bin/node
[root@yoyo nodejs]# node -v
v10.15.0
安裝anyproxy
直接用npm安裝經常會下載失敗,需要先安裝cnpm, 安裝完成之后輸入cnpm -v查看版本號
[root@yoyo nodejs]# npm install -g cnpm --registry=https://registry.npm.taobao.org
[root@yoyo nodejs]# cnpm -v
cnpm@6.0.0 (/usr/lib/node_modules/cnpm/lib/parse_argv.js)
npm@6.5.0 (/usr/lib/node_modules/cnpm/node_modules/npm/lib/npm.js)
node@10.15.0 (/usr/local/nodejs/nodejs10/bin/node)
npminstall@3.19.1 (/usr/lib/node_modules/cnpm/node_modules/npminstall/lib/index.js)
prefix=/usr/local/nodejs/nodejs10
linux x64 3.10.0-693.2.2.el7.x86_64
registry=https://registry.npm.taobao.org
[root@yoyo nodejs]#
使用cnpm安裝anyproxy
cnpm install -g anyproxy
安裝完成后找到anyproxy的安裝位置
find指令查找anyproxy的位置
find / -name 'anyproxy'
[root@yoyo ~]# find / -name 'anyproxy'
/tmp/npm-9279-e5ff661b/registry.npmjs.org/anyproxy
/root/.npminstall_tarball/a/n/y/p/anyproxy
/root/.npm/anyproxy
/root/.npm/registry.npmjs.org/anyproxy
/usr/local/nodejs/nodejs10/bin/anyproxy
/usr/local/nodejs/nodejs10/lib/node_modules/anyproxy
/usr/local/nodejs/nodejs10/lib/node_modules/anyproxy/bin/anyproxy
[root@yoyo ~]#
安裝CA證書
anyproxy默認抓http請求,如果想抓https請求需安裝CA證書,cd到anyproxy的安裝bin目錄,也就是上面查找到的/usr/local/nodejs/nodejs10/bin/anyproxy
cd /usr/local/nodejs/nodejs10/bin/
node anyproxy-ca
[root@yoyo ~]# cd /usr/local/nodejs/nodejs10/bin
[root@yoyo bin]# node anyproxy-ca
detecting CA status...
AnyProxy CA exists, but not be trusted
? Would you like to open the folder and trust it ? Yes
[root@yoyo bin]#
啟動anyproxy服務
可以使用node啟動anyproxy服務,先cd到anyproxy的安裝目錄
node anyproxy -i
但這樣會有一個問題,窗口關閉后,就不會運行了,可以使用setsid方式掛后台啟動服務
setsid node anyproxy -i --ignore-unauthorized-ssl >anyproxy.log
** --ignore-unauthorized-ssl是忽略https證書異常**
[AnyProxy Log][2019-05-17 08:41:10]: The root CA file path is: /root/.anyproxy/certificates/rootCA.crt
[AnyProxy Log][2019-05-17 08:41:10]: Http proxy started on port 8001
[AnyProxy Log][2019-05-17 08:41:10]: web interface started on port 8002
設置代理端口是8001,web頁面打開的端口是8002,打開瀏覽器輸入http://localhost:8002/
(或者http://127.0.0.1:8002
)就能打開anyproxy頁面了
其它機器訪問的話,需開放8001和8002端口,瀏覽器輸入http://linux機器的ip:8002/
進入到web頁面
測試anyproxy環境
在電腦上輸入http://安裝AnyProxy機器的IPp:8002/
進入到web頁面
用curl發請求測試的方法如下
- 直接請求服務器:
curl http://httpbin.org/get
- 通過代理服務器請求:
curl http://httpbin.org/get --proxy http://127.0.0.1:8001
使用xshell遠程連接linux服務器,輸入curl http://httpbin.org/get --proxy http://127.0.0.1:8001
,然后刷新瀏覽器頁面,就能看到抓到的請求了
停掉anyproxy服務
停掉anyproxy服務可以先ps查到進程,再kill掉
ps -ef | grep anyproxy
kill -9 進程id
[root@yoyo bin]# ps -ef | grep anyproxy
root 29981 1 4 08:35 ? 00:00:01 node anyproxy -i
root 30105 29771 0 08:36 pts/1 00:00:00 grep --color=auto anyproxy
[root@yoyo bin]# kill -9 29981
[root@yoyo bin]#
設置代理
我們需要在被代理的手機上安裝證書,這樣在AnyProxy上才能以明文的方式查看https請求內容。在手機上安裝證書有兩種方式:
- 直接在手機瀏覽器中打開http://ip:8002/fetchCrtFile(IP換成安裝AnyProxy機器的IP)
- 在安裝瀏覽器上打開http://ip:8002/,RootCA界面然后掃描二維碼,在瀏覽器中打開安裝證書
確保手機和AnyProxy機器在一個局域網,手機上設置代理,設置代理ip為anypeoxy主機的ip,端口是8001
參考https://www.cnblogs.com/yoyoketang/p/10867050.html