Closed zhuzhuor closed 10 years ago
哪个端口?好像只是80端口会提示备案
8888 看起来只能早点上 spdy 了 然后 firefox 和别的 ipad 什么的用 socks5? 或者我们早点去备个案?但是不在国内不太方便呢
@zhuzhuor 试试让代理服务器入口流量走 UDP。技术细节可以联系我:iwebpp@gmail.com
@sequoiar 现在 chrome 就支持这么几种代理,如果你想说的是 quic 的话,貌似还没支持代理功能,而且需要手动开启呀
@sequoiar 哦~还是你想说你的这个 project 呢 https://github.com/InstantWebP2P/iwebpp.io 但是 client 肯定需要运行特殊的软件呢,或者我们得在海外再运行个同等数量的服务器来转换协议呢
@zhuzhuor 备案不现实吧,难道我们能为 youku.com 在 aliyun 上备案么?
@whuhacker 不是,我们应该只要备案我们自己的域名就行吧?
@zhuzhuor 现在你的代理路径是: browser with plugin -> tcp -> proxy server in ali yun -> dest site
我想说的是: browser with proxy setting -> local p2p proxy client -> udp -> proxy server in ali yun -> dest site
如果有时间,可以把 local p2p proxy client 集成 作为 browser 插件的一个部分。
@zhuzhuor 阿里云是在 VPS 前端还有个白名单,未备案域名会被拦截。 所以我猜可以排查一下我们代理的域名里,有哪些是没有备案的
@sequoiar 之前就想过类似的,chrome extension 没有办法监听端口的 如果让用户装个 local proxy client 感觉就非常不 user-friendly
@whuhacker 哦~ 你说阿里云还会监测一下 inbound 的 http 请求中的 url 吗 像最近新加的这个域名 http://serv.vip.iqiyi.com/services/ck.action 就经常出这个错误提示
@zhuzhuor 是的,不过他们非 80 端口都监测太过分了,其他运营商一般都只看 80 端口的 iqiyi 肯定是备案过了的呀,这个怎么会出提示呢。。
@whuhacker 看看回头不用 http 协议会不会还有问题... 国内这网络政策环境真折腾呀
@zhuzhuor 你之前说的是 Google 的 SPDY Proxy 吗? 看这个例子,好像实现起来不是很容易,不知道有没有什么现成的代码可以参考的
@whuhacker 恩,Nginx 貌似已经支持了 SPDY 了 不知道 apt 源里面的有没有默认支持,不行的话只能自己带参数编译了
我的想法是先用 Nginx 把 spdy 去掉,然后再经过 squid 代理 不过也只能试了才知道
除了那個特定的域名外好像 其他域名就沒問題的樣子
spdy proxy的話只有chrome支持.... 用firefox/手機作業系統的就直接不能用.
我的想法是 跑socks代理 再把socks代理的連接再用IPTABLES 轉到 squid 代理
感觉是iptables之类或者squid配置的问题。
我昨天今天阅读+尝试了下
Nginx 运行 SPDY 的时候也是支持普通 HTTPS 的,因为先是 HTTPS 连接,如果支持 SPDY 再用 SPDY。但是难处是,Nginx 特别不好和后端的 Squid 配合,尝试了很多也不知道怎么把完整的 URL 当做 GET/POST 后面的字符串,只有 path 在 GET/POST 后面。可能的办法就是把 URL 放在 header 里,让后端的 Squid 想办法取出来替换掉,或者拿 Host header 拼 URL 出来。总之就是很折腾
另外发现 Squid 本身居然也支持 HTTPS,但是 Ubuntu 上的貌似需要带 ssl 参数重新编译 HTTPS 的部分才能正常工作,回头折腾折腾编译一个试试看
还有别的办法例如 stunnel 之类的,但是稳定性怕没有保障
HTTPS 的代理貌似 Firefox 和 Android 都支持,但是可能需要扩展来设置 我们可以先弄个 HTTPS 的代理,有机会再升级成 SPDY
存nginx进行header和url操作需要自己写模块,nginx支持正向和反向proxy。
如果是单纯扩展的话用lua写个解析比c写模块简单多了,性能比squid用redirecter处理高很多。
nginx加上后端squid没啥优势,现在不知道加nginx的作用?
另外追求高兴能的话用ats试试cache。cache需要解决的方向是先把url给cache了,我以前做过实验发现cache效率不高,优酷的解析地址总在变,返回的内容不知道变不变。
但是难处是,Nginx 特别不好和后端的 Squid 配合,尝试了很多也不知道怎么把完整的 URL 当做 GET/POST 后面的字符串,只有 path 在 GET/POST 后面。可能的办法就是把 URL 放在 header 里,让后端的 Squid 想办法取出来替换掉,或者拿 Host header 拼 URL 出来。
你是说使用 nginx 作为 proxy? http://nginx.com/blog/nginx-ssl/ ?
GET/POST 后面肯定是 path 了,在 headers 里的 path 可以是 full URL
Oops, HTTP 1.1 是允许 request 是 absolute URI 的
干脆我们兼容 shadowsocks 协议,不再发明轮子一了百了。。 https://github.com/clowwindy/shadowsocks-chromeapp
也有在实验 SPDY
@karlcheong Nginx module 回头可以试试看,感觉还挺有趣的 现在想加 Nginx 的出发点是,想给代理服务器弄成跑 HTTPS 或者 SPDY 的协议,这样就能少点 ISP 或者防火墙之类的影响。现在这些比较稳定的服务端软件,貌似只有 Nginx 有比较新的 SPDY 支持
@mozbugbox 对,HTTP 代理基本上就是发个完整的 URL 给代理服务器。但是 Nginx 转发给 Squid 好像不太容易弄成 GET url 的格式,不管怎么配置都只提供 GET path
@whuhacker 用 shadowsocks 得运行一个 client-side socks5 service 才行,因为 shadowsocks 算是攒了个自己的协议。在 chrome extension 里没办法监听本地端口,所以不能跑这样的代码,所以感觉我们只能用内置支持的代理类型,HTTP HTTPS Socks5 这些
@zhuzhuor 你看看这个,不需要另外的 client ,直接用 Chrome App 就可以,用到了 Chrome socket API 不过好久没更新了
@whuhacker socket API 只有 chrome app 能用,chrome extension 不能。。。
我看到有文章说 proxy_pass
的值如果不是完整 URI 的话,应该会使用全部的 URL。所谓不完整 URI 应该就是 http://host:port , 最后面没有 /
,path 部分。
而看 Module ngx_http_proxy_module 手册,也有这个意思,进一步用了 rewrite 也应该给出 full url。可以试试。
@zhuzhuor 如果真的想使用SPDY Proxy的話 也許可以試試這個 Shrpx + squid https://tatsuhiro-t.github.io/spdylay/package_README.html#spdy-client-and-server-programs
然後在chrome 產生pac 的 return proxy 改為 HTTPS
@mozbugbox 那个我也看到了,也试过了,Squid 还是只能收到 path 的部分 module document 里面的意思估计是, 如果省略了 /path,就会默认使用 request 里的 /path
@karlcheong 恩,回头可以试试 Shprx
@zhuzhuor 在美团云伺服器上試了下, 建了 Shrpx + squid, port 80, self-signed cert.
@karlcheong 避免用 80 端口,我准备用 9999 用来做 SSL 的服务 80 端口可能回头会有麻烦的手续什么的
我这两天有点忙,没找到时间试试 前两天尝试编译 Squid3 自己的 HTTPS 支持,但是没弄成
@zhuzhuor 剛換成了 993 (IMAPS)
我是想測一下即使是80 端口, 也能穿透白名單(?), 而不會給干擾.. 另外..考慮一下port的使用, 不然有些firewall就會給擋掉了... 試過一個學校的WIFI, 只開放了 FTP,HTTP(S),IMAP,POP3,SMTP...
@karlcheong 有道理,回头可以都用 993
我已经把 proxy.mainland 上的 squid 都重新带 ssl 参数编译了一遍,现在 https 的代理理应正常工作了 chrome 扩展也更新了新版本,来使用 https 代理
如果这两天使用上有什么问题,可以来反馈
现在是 https 代理用 993 端口,http 代理用 8888 端口 两个端口都可以用,过两个礼拜看情况再把 http 的端口关掉吧
@karlcheong 美团那个服务器可能管得没有阿里云这么严格,所以用 8888 端口不会出备案的提示 你看看有什么办法可以弄个 socks5 转 http 的办法,这样不用 tls 证书也行 如果 socks5 的代理技术稳定的话,我们回头也多一种备选方案
另外我发现 chrome 已经开始支持 QUIC 协议的代理了,但是 QUIC 协议本身貌似还没有被 chrome 默认开启。QUIC 是基于 udp 的 http 协议,等到稳定一些我们可以试试,如果能用来做代理服务器,就不怕过滤了 可以在这个页面上搜 quic https://developer.chrome.com/extensions/proxy
阿里云是有监控http协议的东西,运行在网关上面,所以只要是http协议肯定能被抓到。 美团只要不是80,别的啥也不管,但是美团的带宽贵的要死。
@zhuzhuor
一個簡單的方法 socks5->http
1 squid3 的 http_port portnumber 加上 intercept
http_port portnumber intercept
2 先建一個新 user useradd -M -s /bin/false socksuser
3 運行 iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner socksuser -j REDIRECT --to-ports squidport
4 用其他user運行 ssh -TnNfqg -p sshport -D socksport socksuser@localhost
然後把 pac 里的 PROXY換成SOCKS, 就可以用了
今天我又在阿里云上试了一下,发现原来是用 IP 访问就不会出备案提示,而如果是域名访问则不论什么端口都提示备案。。
阿里云太变态了。其他 VPS 提供商可能会宽松些
話說大陸雲平台的服務越來越多了, 最近看到的360靠谱云 1G RAM+ 5Mbps 福州聯通 = RMB54/mo Win03-08 / CentOS5-6 ref: http://wangzhan.360.cn/news/shuqi
访问服务器有时候会出现截图这样的提示 会导致代理运行不正常
猜测只对某些类型的请求返回这样的数据