# shadowProxy
## 使用方法
- 查看帮助
```bash
python3 shadowProxy.py -h
.--.
|o_o | ------------------
|:_/ | < Author: Mr.Bingo >
// \ \ ------------------
(| | ) < oddboy.cn >
/'\_ _/`\ ------------------
\___)=(___/
usage: shadowProxy.py [-h] [--bind BIND] [--port PORT]
[--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}]
[--proxyListFile PROXYLISTFILE] [-t MULTIPLETIMES]
optional arguments:
-h, --help show this help message and exit
--bind BIND Default: 127.0.0.1
--port PORT Default: 8088
--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}
Default: WARNING
--proxyListFile PROXYLISTFILE
代理列表文件
-t MULTIPLETIMES 单一代理可被使用的次数,默认为2^31-1
```
- 运行
```bash
python3 shadowProxy.py --proxyListFile proxylist.txt
.--.
|o_o | ------------------
|:_/ | < Author: Mr.Bingo >
// \ \ ------------------
(| | ) < oddboy.cn >
/'\_ _/`\ ------------------
\___)=(___/
初始化代理池 本地IP :: 111.199.186.1
导入代理池::: proxylist.txt
成功导入 55 个代理
Serving HTTP on 127.0.0.1 port 8088 (http://127.0.0.1:8088/) ...
```
- 安装SSL证书(访问HTTPS需要)
【方式一】
Unix-Like系统下,直接运行`setup_https_intercept.sh`生成证书。
```bash
./setup_https_intercept.sh
Generating RSA private key, 2048 bit long modulus
........................................................+++
.........+++
e is 65537 (0x10001)
Generating RSA private key, 2048 bit long modulus
....................................................................+++
..+++
e is 65537 (0x10001)
```
【方式二】
*nix及windows主机均可使用。
```bash
$ python3 certs.py CREATECA
生成CA根证书:shadowProxy/certs/shadowproxyCA.crt
根证书私钥:shadowProxy/certs/shadowproxyCA.key
Proxy私钥:shadowProxy/certs/cert.key
生成测试站点证书:shadowProxy/certs/sites/testcert.crt
```
然后在代理到端口的浏览器中访问[http://shadow.proxy/](http://shadow.proxy/) 即可下载,导入系统/浏览器即可。
## todo list
- 运行过程中动态更新代理库
- 明确打一枪换一炮模式与幽灵模式
- 幽灵模式下动态评估代理质量,并进行优化选择
- 完善日志记录
Raw data
{
"_id": null,
"home_page": "https://github.com/yanjlee/shadowProxy",
"name": "shadowProxy-pro",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "yanjlee",
"author_email": "yanjlee@163.com",
"download_url": "https://files.pythonhosted.org/packages/ce/50/a7b405924c51284d2807ff62390fd3840caba7bfd66c4cafe6a26ab51a50/shadowproxy_pro-1.2.1.tar.gz",
"platform": null,
"description": "# shadowProxy\r\n\r\n\r\n## \u4f7f\u7528\u65b9\u6cd5\r\n\r\n- \u67e5\u770b\u5e2e\u52a9\r\n```bash\r\n python3 shadowProxy.py -h\r\n .--.\r\n |o_o | ------------------\r\n |:_/ | < Author: Mr.Bingo >\r\n // \\ \\ ------------------\r\n (| | ) < oddboy.cn >\r\n /'\\_ _/`\\ ------------------\r\n \\___)=(___/\r\n\r\nusage: shadowProxy.py [-h] [--bind BIND] [--port PORT]\r\n [--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}]\r\n [--proxyListFile PROXYLISTFILE] [-t MULTIPLETIMES]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n --bind BIND Default: 127.0.0.1\r\n --port PORT Default: 8088\r\n --log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}\r\n Default: WARNING\r\n --proxyListFile PROXYLISTFILE\r\n \u4ee3\u7406\u5217\u8868\u6587\u4ef6\r\n -t MULTIPLETIMES \u5355\u4e00\u4ee3\u7406\u53ef\u88ab\u4f7f\u7528\u7684\u6b21\u6570,\u9ed8\u8ba4\u4e3a2^31-1\r\n```\r\n\r\n- \u8fd0\u884c\r\n```bash\r\npython3 shadowProxy.py --proxyListFile proxylist.txt\r\n .--.\r\n |o_o | ------------------\r\n |:_/ | < Author: Mr.Bingo >\r\n // \\ \\ ------------------\r\n (| | ) < oddboy.cn >\r\n /'\\_ _/`\\ ------------------\r\n \\___)=(___/\r\n\r\n\u521d\u59cb\u5316\u4ee3\u7406\u6c60 \u672c\u5730IP :: 111.199.186.1\r\n\u5bfc\u5165\u4ee3\u7406\u6c60:::\tproxylist.txt\r\n\u6210\u529f\u5bfc\u5165 55 \u4e2a\u4ee3\u7406\r\nServing HTTP on 127.0.0.1 port 8088 (http://127.0.0.1:8088/) ...\r\n```\r\n\r\n- \u5b89\u88c5SSL\u8bc1\u4e66(\u8bbf\u95eeHTTPS\u9700\u8981)\r\n\r\n\u3010\u65b9\u5f0f\u4e00\u3011\r\n\r\nUnix-Like\u7cfb\u7edf\u4e0b\uff0c\u76f4\u63a5\u8fd0\u884c`setup_https_intercept.sh`\u751f\u6210\u8bc1\u4e66\u3002\r\n```bash\r\n./setup_https_intercept.sh\r\nGenerating RSA private key, 2048 bit long modulus\r\n........................................................+++\r\n.........+++\r\ne is 65537 (0x10001)\r\nGenerating RSA private key, 2048 bit long modulus\r\n....................................................................+++\r\n..+++\r\ne is 65537 (0x10001)\r\n```\r\n\u3010\u65b9\u5f0f\u4e8c\u3011\r\n*nix\u53cawindows\u4e3b\u673a\u5747\u53ef\u4f7f\u7528\u3002 \r\n```bash\r\n$ python3 certs.py CREATECA\r\n\u751f\u6210CA\u6839\u8bc1\u4e66\uff1ashadowProxy/certs/shadowproxyCA.crt\r\n\u6839\u8bc1\u4e66\u79c1\u94a5\uff1ashadowProxy/certs/shadowproxyCA.key\r\nProxy\u79c1\u94a5\uff1ashadowProxy/certs/cert.key\r\n\u751f\u6210\u6d4b\u8bd5\u7ad9\u70b9\u8bc1\u4e66\uff1ashadowProxy/certs/sites/testcert.crt\r\n```\r\n\r\n\u7136\u540e\u5728\u4ee3\u7406\u5230\u7aef\u53e3\u7684\u6d4f\u89c8\u5668\u4e2d\u8bbf\u95ee[http://shadow.proxy/](http://shadow.proxy/) \u5373\u53ef\u4e0b\u8f7d\uff0c\u5bfc\u5165\u7cfb\u7edf/\u6d4f\u89c8\u5668\u5373\u53ef\u3002\r\n\r\n## todo list\r\n- \u8fd0\u884c\u8fc7\u7a0b\u4e2d\u52a8\u6001\u66f4\u65b0\u4ee3\u7406\u5e93\r\n\r\n- \u660e\u786e\u6253\u4e00\u67aa\u6362\u4e00\u70ae\u6a21\u5f0f\u4e0e\u5e7d\u7075\u6a21\u5f0f\r\n\r\n- \u5e7d\u7075\u6a21\u5f0f\u4e0b\u52a8\u6001\u8bc4\u4f30\u4ee3\u7406\u8d28\u91cf\uff0c\u5e76\u8fdb\u884c\u4f18\u5316\u9009\u62e9\r\n\r\n- \u5b8c\u5584\u65e5\u5fd7\u8bb0\u5f55\r\n",
"bugtrack_url": null,
"license": null,
"summary": "\u5e7d\u7075\u6a21\u5f0f\u4e0b\u52a8\u6001\u8bc4\u4f30\u4ee3\u7406\u8d28\u91cf\uff0c\u5e76\u8fdb\u884c\u4f18\u5316\u9009\u62e9",
"version": "1.2.1",
"project_urls": {
"Homepage": "https://github.com/yanjlee/shadowProxy"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "578aca7fad93192c1fc024501953f1c05a0526012e301c2f2b106f7b14558b78",
"md5": "25c95f2b0d5833f3f6e16d43c0774242",
"sha256": "246a005afcb9be84eb5e798ef4c75123b26deb60da766e98d385bff26e51843b"
},
"downloads": -1,
"filename": "shadowProxy_pro-1.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "25c95f2b0d5833f3f6e16d43c0774242",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 3439,
"upload_time": "2024-06-01T08:24:39",
"upload_time_iso_8601": "2024-06-01T08:24:39.894174Z",
"url": "https://files.pythonhosted.org/packages/57/8a/ca7fad93192c1fc024501953f1c05a0526012e301c2f2b106f7b14558b78/shadowProxy_pro-1.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ce50a7b405924c51284d2807ff62390fd3840caba7bfd66c4cafe6a26ab51a50",
"md5": "32a27770308991f542ac2ae010509286",
"sha256": "f995586529b91752c1ec5c7659d6762efef9d696eb599f46a146ab762d1b798d"
},
"downloads": -1,
"filename": "shadowproxy_pro-1.2.1.tar.gz",
"has_sig": false,
"md5_digest": "32a27770308991f542ac2ae010509286",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4133,
"upload_time": "2024-06-01T08:24:41",
"upload_time_iso_8601": "2024-06-01T08:24:41.899204Z",
"url": "https://files.pythonhosted.org/packages/ce/50/a7b405924c51284d2807ff62390fd3840caba7bfd66c4cafe6a26ab51a50/shadowproxy_pro-1.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-01 08:24:41",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "yanjlee",
"github_project": "shadowProxy",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "shadowproxy-pro"
}