UNPKG

wssagent

Version:

transform websocket encrypt proxy into normal local proxy, support CDN. 将远端的加密websocket代理转成本地普通代理,支持CDN中转

92 lines (50 loc) 5.26 kB
# wssproxy-agent A local proxy agent connecting to remote websocket proxy server. Abbreviated as wssagent 把远端的websocket加密代理服务器转换为本地的非加密普通代理服务器,简称为wssagent,支持CDN中转 支持DOH(DNS over https),保护用户隐私,且有网络加速的效果 # 使用 需要先运行[pacproxy服务](https://github.com/httpgate/pacproxy.js) , 运行后屏幕会显示 [WSSURL] 运行wssagent, 输入[WSSURL] 浏览器或者wifi设置代理服务器为 localhost , 代理端口为wssagent显示的端口, 就可以加密翻墙 也可以使用local pacurl来限制只一个浏览器翻墙,如只firefox翻墙可设置pacurl: http://localhost:[PROXY_PORT]/pac/firefox 手机用户参照[Android系统wssagent说明](\/example\/README\.md) # 运行 如果已安装Nodejs,可用npm直接安装运行: ``` sudo npm install -g wssagent sudo wssagent ``` 也可下载直接点击[绿色可执行文件](https://github.com/httpgate/resouces/tree/main/wssproxy-agent),或在命令行执行,按以下顺序加上可选参数: sudo ./wssagent-linux [WSSURL] [PROXY_PORT] [-s] [DOH_SERVER] [WSSIP] [CONNECT_DOMAIN] sudo ./runagent.js [WSSURL] [PROXY_PORT] [-s] [DOH_SERVER] [WSSIP] [CONNECT_DOMAIN] 或编辑wssagent同一目录下的 [wss.env文件](wss.env),设置运行参数 * Linux系统下的可执行文件只能在命令行下执行,除了[WSSURL]外其它参数都可选 * 默认只本机能用代理,加 -s 可分享本机IP和端口给同一网段,其他参数说明见 [wss.env文件](wss.env) * [WSSIP]是代理服务器的IP, 指定[WSSIP]将绕开DNS解析,避免域名劫持或DNS封锁 * 如[WSSURL]是直连pacproxy,可设置一个编造的域名[CONNECT_DOMAIN],连接代理服务器时会自动替换[WSSURL]里的域名,以避开域名审查,隐藏真实域名。如果是CDN中转则不能用[CONNECT_DOMAIN]。编造域名需避开常见已知域名,尤其是已经被封锁的域名 * [WSSIP]并不需要绑定域名记录。很多VPS可以动态增加IP地址,新加的IP地址重启pacproxy服务后就可以用作[WSSIP] * 如果同时指定了[WSSIP] 和 [DOH_SERVER],连接时会用[WSSIP]连接服务器,但屏幕会显示[DOH_SERVER]解析域名的结果用于核对IP地址和DOH服务 # 后台运行 * 建议用pm2后台运行 ``` sudo npm install -g pm2 sudo pm2 start wssagent -- [WSSURL] [PROXY_PORT] [-s] ``` * 具体请参考[用pm2直接运行npm库](https://github.com/httpgate/resouces/tree/main/pm2_Run_Npm_Package.md) # 用途 * 很多软件不支持https加密的pacproxy代理, 用wssagent就可以在一台电脑上把pacproxy加密代理转换成普通代理,整个局域网都可以按普通方式代理上网 * 利用CDN中转突破封锁或加强隐私。CDN中转后proxy服务器不知道访问者的真实IP,CDN服务器不知道访问目标。如果海外的pacproxy服务器被封了。可以自己在cloudflare之类的支持websocket的CDN上注册一个账户, 并注册一个CDN域名, 指向远端的pacproxy服务器ip,SSL/TLS mode设置为FULL, 然后把[WSSURL]中的域名替换成CDN域名, 就又可以连上了。 * 在firefox中设置加密pacurl可实现端到端加密,安全性更高,但CDN不支持pacurl中转,pacproxy服务在nginx/litespeed部署时也不支持pacurl。可在参数[WSSURL]后加/pac来中转pacurl。 * 详情可参考[使用案例](https://github.com/httpgate/resources/blob/main/README.md) # 安全 * 如果不信任中转流量的CDN, 则可以在CDN的[WSSURL]后面加 /tls , 此时穿越CDN的流量会加密,CDN不能探测你所访问的网站和内容,即使访问不加密的http网站对CDN也是不可知的。直连pacproxy服务器时一般不需要加/tls参数。 * 如果直连pacproxy时指定了[CONNECT_DOMAIN], 会略过服务器数字证书验证。为避免域名或IP劫持, 可在直连的[WSSURL]后面加 /tls , 会在tls加密连接时验证服务器的数字证书,确保连接到了真的pacproxy服务器。 * [WSSURL]后面加/pac 和 加/tls 一样,通过CDN中转时传输内容对CDN是加密的。如果使用编造域名[CONNECT_DOMAIN]直连也一样会验证数字证书避免域名或IP劫持。 * 常见的DOH服务可能会被封锁,可用[WSSIP]和本机hosts记录代替, 需要用DOH或私有DNS服务时,可以[用CDN中转DOH服务](https://github.com/httpgate/cdn-edge-script/blob/main/doc/CDN_PROXY_DOH.md),避免DOH服务封锁。 * 如果不信任pacproxy所运行的服务器, 则可以和无界,自由门混合使用。将无界,自由门的代理端口设置为wssagent的端口,浏览器则设置为无界/自由门的端口。这样pacproxy并不知道你具体访问的内容,如原来连不上无界,自由门此时也可以连上。可能也可以用此方法收看限定在无界/自由门上收看的新唐人晚会等节目。 ## 推荐 推荐用prcproxy安全的访问以下网站: * 明慧网:https://www.minghui.org * 干净世界:https://www.ganjing.com * 神韵作品: https://shenyunzuopin.com * 大法经书: https://www.falundafa.org