diff --git a/lib/requestHandler.js b/lib/requestHandler.js
index 775c108..8b05baf 100644
--- a/lib/requestHandler.js
+++ b/lib/requestHandler.js
@@ -10,7 +10,9 @@ var http           = require("http"),
     Buffer         = require('buffer').Buffer,
     util           = require("./util"),
     Stream         = require("stream"),
-    httpsServerMgr = require("./httpsServerMgr");
+    httpsServerMgr = require("./httpsServerMgr"),
+    HttpProxyAgent = require("http-proxy-agent"),
+    HttpsProxyAgent= require("https-proxy-agent");
 
 var httpsServerMgrInstance = new httpsServerMgr(),
     defaultRule            = require("./rule_default.js"),
@@ -109,9 +111,15 @@ function userRequestHandler(req,userRes){
             method   : req.method,
             headers  : req.headers
         };
+        userRule.externalHttpProxies = userRule.externalHttpProxies || [];
+        if(userRule.externalHttpProxies.length){
+            var agent = null, externalProxy = userRule.externalHttpProxies[Math.floor(Math.random()*userRule.externalHttpProxies.length)];
+            agent = new HttpProxyAgent(externalProxy);  
+            if(agent)options.agent = agent;
+            console.log(color.blue('this request is using ' + externalProxy + ' as external proxy'));
+        }
         options = userRule.replaceRequestOption(req,options) || options;
 
-
         //update quest data
         reqData = userRule.replaceRequestData(req,reqData) || reqData;
         options.headers = util.lower_keys(options.headers);
diff --git a/package.json b/package.json
index f856e55..4d969b2 100644
--- a/package.json
+++ b/package.json
@@ -25,7 +25,9 @@
     "stream-throttle": "^0.1.3",
     "ws": "^0.4.32",
     "cookie":"^0.1.2",
-    "mysql":"^2.5.2"
+    "mysql":"^2.5.2",
+    "http-proxy-agent":"^0.2.6",
+    "https-proxy-agent":"^0.3.5"
   },
   "devDependencies": {},
   "scripts": {