Xiaoxia[PG] Yesterday is history, tomorrow is mistery, today is a gift!

14十一/11237

更新Sogou代理服务器程序,支持HTTPS


这个是对之前用Python写的一个Sogou本地代理服务器的更新版本,新版本支持了HTTPS连接,实现了CONNECT请求。
我发现,Sogou上的squid服务器,限制了CONNECT命令只能够连接远程主机的443端口,其他的端口都返回403 Forbidden状态。

教育网的用户,可以使用我在学校建立的HTTP代理,scut.tk:1998。支持IPv4和IPv6的访问。

Windows Binary 下载

sogou.zip (Win32, IPv4)

上代码:

'''
    Author:  Xiaoxia
    Contact: xiaoxia@xiaoxia.org
    Website: xiaoxia.org
'''

from threading import Thread, Lock
from struct import unpack
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
from httplib import HTTPResponse
from SocketServer import ThreadingMixIn
import socket, os, select
import time, sys, random
import threading

# Minimize Memory Usage
threading.stack_size(128*1024)

x_sogou_auth = "9CD285F1E7ADB0BD403C22AD1D545F40/30/853edc6d49ba4e27"
proxy_host = "h0.edu.bj.ie.sogou.com"
proxy_port = 80
BufferSize = 8192
RemoteTimeout = 15

def calc_sogou_hash(t, host):
    s = (t + host + 'SogouExplorerProxy').encode('ascii')
    code = len(s)
    dwords = int(len(s)/4)
    rest = len(s) % 4
    v = unpack(str(dwords) + 'i'+str(rest)+'s', s)
    for vv in v:
        if(type(vv)==type('i')):
            break
        a = (vv & 0xFFFF)
        b = (vv >> 16)
        code += a
        code = code ^ (((code<<5)^b) << 0xb)
        # To avoid overflows
        code &= 0xffffffff
        code += code >> 0xb
    if rest == 3:
        code += ord(s[len(s)-2]) * 256 + ord(s[len(s)-3])
        code = code ^ ((code ^ (ord(s[len(s)-1])*4)) << 0x10)
        code &= 0xffffffff
        code += code >> 0xb
    elif rest == 2:
        code += ord(s[len(s)-1]) * 256 + ord(s[len(s)-2])
        code ^= code << 0xb
        code &= 0xffffffff
        code += code >> 0x11
    elif rest == 1:
        code += ord(s[len(s)-1])
        code ^= code << 0xa
        code &= 0xffffffff
        code += code >> 0x1
    code ^= code * 8
    code &= 0xffffffff
    code += code >> 5
    code ^= code << 4
    code = code & 0xffffffff
    code += code >> 0x11
    code ^= code << 0x19
    code = code & 0xffffffff
    code += code >> 6
    code = code & 0xffffffff
    return hex(code)[2:].rstrip('L').zfill(8)

class Handler(BaseHTTPRequestHandler):
    remote = None

    # Ignore Connection Failure
    def handle(self):
        try:
            BaseHTTPRequestHandler.handle(self)
        except socket.error: pass
    def finish(self):
        try:
            BaseHTTPRequestHandler.finish(self)
        except socket.error: pass

    # CONNECT Data Transfer
    def transfer(self, a, b):
        fdset = [a, b]
        while True:
            r,w,e = select.select(fdset, [], [])
            if a in r:
                data = a.recv(BufferSize)
                if not data: break
                b.sendall(data)
            if b in r:
                data = b.recv(BufferSize)
                if not data: break
                a.sendall(data)

    def sogouProxy(self):
        if self.remote is None or self.lastHost != self.headers["Host"]:
            self.remote = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            self.remote.settimeout(RemoteTimeout)
            self.remote.connect((proxy_host, proxy_port))
        self.remote.sendall(self.requestline.encode('ascii') + b"\r\n")
        # Add Sogou Verification Tags
        self.headers["X-Sogou-Auth"] = x_sogou_auth
        t = hex(int(time.time()))[2:].rstrip('L').zfill(8)
        self.headers["X-Sogou-Tag"] = calc_sogou_hash(t, self.headers['Host'])
        self.headers["X-Sogou-Timestamp"] = t
        headerstr = str(self.headers).replace("\r\n", "\n").replace("\n", "\r\n")
        self.remote.sendall(headerstr.encode('ascii') + b"\r\n")
        # Send Post data
        if self.command == 'POST':
            self.remote.sendall(self.rfile.read(int(self.headers['Content-Length'])))
        response = HTTPResponse(self.remote, method=self.command)
        response.begin()

        # Reply to the browser
        status = "HTTP/1.1 " + str(response.status) + " " + response.reason
        self.wfile.write(status.encode('ascii') + b'\r\n')
        hlist = []
        for line in response.msg.headers: # Fixed multiple values of a same name
            if 'TRANSFER-ENCODING' not in line.upper():
                hlist.append(line)
        self.wfile.write("".join(hlist) + b'\r\n')

        if self.command == "CONNECT" and response.status == 200:
            return self.transfer(self.remote, self.connection)
        else:
            while True:
                response_data = response.read(BufferSize)
                if not response_data: break
                self.wfile.write(response_data)

    do_POST = do_GET = do_CONNECT = sogouProxy

class ThreadingHTTPServer(ThreadingMixIn, HTTPServer):
    address_family = socket.AF_INET6

server_address = ("", 1998)
server = ThreadingHTTPServer(server_address, Handler)
# Random Target Proxy Server
proxy_host = 'h' + str(random.randint(0,5)) + '.edu.bj.ie.sogou.com'

print('Proxy over %s.\nPlease set your browser\'s proxy to %s.' % (proxy_host, server_address))
try:
	server.serve_forever()
except:
	os._exit(1)

喜欢这个文章吗?

考虑订阅我们的RSS Feed吧!

评论 (237) 引用 (3)
  1. 什么意思? 通过Sogou服务器 代理 fanqiang ?

  2. str(random.randint(0,15))

    • o(∩∩)o…哈哈,之前担心这个数字的上限可能会变化比较大,所以改小了。不清楚10以上的服务器,跟5以下的那些,在网络质量和稳定性方面是否会有差异。

  3. 这样公开会不会给小虾的服务器带来挺大压力啊= =

    • :) 不会,只给教育网用户服务,现在服务器负载非常渺小。可以开个vps给你玩玩

      • 哇,还可以这样啊!哈哈,现在这个牛逼的代理已经完全满足我的需要了,vps用来学习测试,我还没用过这么高级的东西~!BTW.我要怎样在评论里像你一样发表情啊O.o

        • 嗯。因为这段时间比较忙,等12月份空闲了,就在校园网搞一个Linux体验中心。
          发表情不是冒号加括号吗? :)

          • 原来是符号表情解析啊- – 呵呵,我2了…:)
            Linux体验中心!!给力啊!!我也很想让linux在我们学校推广,有什么用得上我帮忙的尽管叫我哈!!

  4. 你可以试试用goagent在sae里面搭建一个代理,相信比这个搜狗会快很多。个人觉得新浪的网络硬件比搜狗的好一点,嘿嘿。

    • 嗯,我有空试试!!!

      • 这个实现了没有。goagent在代理翻墙方面一流。我不会py,不过觉得这样可以实现。在gae上自己架了一个翻墙用。sae还没用过

        • 还没试,等放假有空才试试!你在gae上的速度如何?这些app应该都是有资源限制的吧

          • 你没用过goagent?翻wall的速度比好多国外ssh快多了。原理我没分析明白。架在gae上的是可以用来翻wall的。不过现在gae刚刚瞎改了账号收费策略。免费的每天1个G流量。架一些小程序足够了。其他磁盘大小我没有了解。

          • 是一个月1G流量。翻墙什么的没问题,打开apple store也没问题,但要在itunes里面下载软件是不行的,老是错误提示。用这个搜狗就没问题了

  5. 你好,请问你的firefox是怎么与kde整合的那么好的(无标题栏;菜单按钮、标签栏、最大\小化、关闭按钮在一栏上)

  6. 直接点那个copy to clipboard 代码会有很多转义字符
    自己选中复制呢 每行前面多4个空格……虽然要写代码去掉也很简单……

    能不能给个编译好的exe?

  7. 你这个要怎么用?对PY不是很了解,之前就用过Felix Yan用PY写的一个影片信息提取工具。
    对于代码最还是能提供一个可下载的文本,这个直接贴在博客上,用有些麻烦啊。

    • 对于Windows用户,已经提供二进制文件下载使用。
      对于贴博客的代码,可以选择View Plain,然后再copy代码。
      嗯,下次长长的代码,我还是上传文件吧 :)

  8. 挺好用的了 不过还是有个建议 最小化的时候能不能放到托盘里呢 因为代理啥的 毕竟不会经常要打开看
    放任务栏上占一个位置不太好

  9. 另外 这句话 print(‘Proxy over %s.\nPlease set your browser\’s proxy to %s.’ % (proxy_host, server_address))

    server_address没有这个变量嘛 直接就是空的 应该是127.0.0.1吧

  10. 唔 server_address = (“”, 1998)

    前面为啥是空的? 这个写 127.0.0.1:1998不好吗

  11. just-ping了,Packets lost (100%) ipv4 &ipv6

    • I’m sorry, the server tonight is down because of a partition problem!!!
      The hard disk is to be fixed this night. So sorry~~

  12. “教育网的用户,可以使用我在学校建立的HTTP代理,scut.tk:1998。支持IPv4和IPv6的访问。”
    能否讲解一下在浏览器怎么设置代理服务器才能访问IPV6?端口是1998,那代理地址填什么?谢谢!

    • 这句话是说,拥有IPv4或者IPv6的使用者都可以访问scut.tk。
      你在浏览器里设置http代理,地址填scut.tk,端口填1998就行了!

  13. 能否讲一下代理地址填“”和填“127.0.0.1”的区别么?用的其实是同一个代理对不?

    • 不一样的!
      “”是会绑定主机上的所有网卡的端口,除了你自己能够访问,跟你同一个网络的其他电脑,也可以输入你的IP地址或者主机名,使用你的代理。
      而127.0.0.1只能绑定你的系统的端口,只有你的主机上才可以使用。

  14. tk代理服务端又用sogou代理?所以不能使用scut的数据库(访问内网)?同样ipv6亦是。

    • 对!!!用了那个代理之后,你就不能访问scut的ipv4内网了,因为使用的要么是搜狗的网络了,要么就是ipv6了。

  15. 你好,我是教育网的某个用户。首先你的代理很好用,谢谢。然后有个小问题,就是用代理似乎没有办法下载软件什么的,迅雷和BT都没有速度(大部分情况是这样,极少数可以用迅雷、BT或者IDM下载)。不知道这仅仅是我这的原因还是?

    • 你好,用代理是方便浏览网页的,不适用于下载软件。再说,你的下载软件也可能会搞垮搜狗的服务器。。。

  16. 怎么用啊 我的为什么上不去qq呢

  17. 昨天用小虾的Python脚本制作了一个”一键代理“,

    有机会你可以测试一下:
    http://www.lijiejie.cn/soft/NPUcat-SetUp.exe

  18. 很好用,感谢提供源代码~
    这下在教育网里面可以将就使用迅雷离线了……

  19. 第一次看到你的博客,开始时觉得很有意思,很仔细地看了十几篇文章之后,实在是太佩服你了,以后我一定会关注你写的每一篇文章。

  20. 感谢,很强大,很想知道计算hash的方法是怎么得到的。

  21. 感谢楼主,确实是超级好的代理

  22. 运行py文件后,发现对应的本地端口没有打开。
    但是为什么exe文件没问题呢?
    不知道小虾大大有没有在windows7下测试过。

  23. 现在正在用教育网的IPv6和博主给的scut.tk的代理访问你的博客,非常感谢啦!
    貌似QQ不能用这个代理服务器?或者它不支持IPv6来连接到代理服务器吗?

    • 据我所知,QQ应该没有ipv6的服务器。国内有ipv6地址的服务器,大部分都是教育网的,全走香港路线。

  24. 我同学是Vista,它用exe访问 127.0.0.1:1998 和 localhost:1998 都能正常打开“The requested URL could not be retrieved”页面。
    但是也是Python2.7.2,运行py(当然关了exe),只能访问localhost:1998,127.0.0.1:1998无法连接。查看了他的hosts文件,正常。

    • 运行py脚本时,浏览器代理也必须设成localhost:1998才能访问网站。QQ同理。
      而exe的话,localhost:1998和127.0.0.1:1998都行。

    • 你ping一下localhost,应该不是127.0.0.1了。

      • ping下来是::1,但也不会不能访问127.0.0.1:1998啊。奇怪。

        • ::1是IPv6的。跟127.0.0.1不一样。
          你说的之所以exe版本可以使用是因为我编译的exe版本不支持ipv6,代码不同之处在于
          address_family = socket.AF_INET4
          而你使用的是我文章上贴出来的代码,这个代码是
          address_family = socket.AF_INET6
          也就是说,你的localhost指向的是IPv6的::1地址,会绑定IPv6的地址。

  25. 我发现问题所在了,是hosts文件的问题。
    我原来的hosts文件中有一行去广告的将一个域名指向了127.0.0.1,造成127.0.0.1:1998和localhost:1998都不能访问了。
    我讲这一行去掉以后就跟我同学同样的状况了,但是我想不通为什么还是不能用127.0.0.1:1998访问。

  26. 还有一个问题,Win7下,如果设置server_address = (“127.0.0.1″, 1998)的话会出错:

    Traceback (most recent call last):
    File “D:\sogou.py”, line 137, in
    server = ThreadingHTTPServer(server_address, Handler)
    File “C:\Python27\lib\SocketServer.py”, line 408, in __init__
    self.server_bind()
    File “C:\Python27\lib\BaseHTTPServer.py”, line 108, in server_bind
    SocketServer.TCPServer.server_bind(self)
    File “C:\Python27\lib\SocketServer.py”, line 419, in server_bind
    self.socket.bind(self.server_address)
    File “C:\Python27\lib\socket.py”, line 224, in meth
    return getattr(self._sock,name)(*args)
    error: [Errno 10049]

    设置成server_address = (“localhost”, 1998)的话没问题。

  27. 首先感谢你提供,此外,用你提供的exe,一直提示
    localhost.localdomain–[06/Dec/2011 16:26:10] Request timed out:timeout
    请问怎么解决,此外,你在代码里面用到的是h0.edu.bj.ie.sogou.com这个服务器,怎么找到和自己连得最快的服务器呢?

  28. 你好,首先感谢你提供的代码,但是我这有些问题:
    我是用你编译好的exe文件,但是一直提示localhost.localdomain – - [06/Dec/2011 16:32:08] Request timed out: timeout,请问怎么解决
    此外,你在代码中使用的服务器是h0.edu.bj.ie.sogou.com,我想请问下如何找到和自己连接最快的服务器,
    先谢过了

    • 出现timed out是因为连接超时,默认超时的时间为15秒,你可以修改,不过你需要安装python。
      默认会选择h0.edu.bj.ie.sogou.com到h4.edu.bj.ie.sogou.com这5个服务器进行连接。
      如果你需要其他网络,例如h0.ctc.bj.ie.sogou.com或者h1.cnc.bj.ie.sogou.com等,你需要自己修改代码 :-)

  29. 最近发现你的博客很给力 这个软件也很好用 收了 3Q

  30. 话说你提供的那个scut.tk:1998 的代理是国内的服务器还是国外的啊

  31. thanks,刚发现sougou的代理源码,非常赞~

  32. 你好,请问 WIN7 64位可以用么?
    是直接运行sogou.exe?(双击后命令行闪现一下就没了。。

    • 很可能是你的1998端口被占用了。你可以用
      netstat或者资源管理器来找找哪个程序占用了,例如迅雷之类的。

      • 貌似没有被占用的说。。但是依旧双击闪一下就没反应了。。防火墙已关闭

        (话说开着搜狗浏览器也可以运行这个的吧?只要端口没被占用

        • 你先打开一个控制台,然后切换到文件目录,输入文件名来执行。看退出的时候输出什么信息。

  33. 希望这个代理可以永世长存,你们学校怎么计费的?按流量么?明年开始清华每人每月就给20G,估计都不够用了…

    • 好像我们学校没有听说有流量限制的。
      因为我本身也没有开通网络,目前我用的是同学的网络端口通过无线路由共享出来的。
      只要我还在这个学校,这个代理基本上都可以一直用,^_^

    • 同希望,这个代理太牛了你们学校的网络研究中心,无愧国家重点学科的称号啊。以后就在学校当教授吧,呵呵

  34. 好像挂了,ipv6可以ping通,但是ipv4的出口好像挂了。

    • 太好用了,所以很难长寿啊

    • ipv4的地址今天被某人占用了。
      不知道谁在本地乱改的IP,查了一下,是一台windows机器,还装了防火墙软件。
      刚才改了一下IPv4的地址,估计等10分钟左右就生效了。

  35. 我也是教育网的。。试用了一下速度还可以。话说搜狗的服务器有ipv6地址吗?学校限速ipv4但不限速ipv6

  36. 本文被某敏感网站转载了,还注明了出处。
    另,转载后被大量滥用,这几晚的质量明显下滑。

  37. 现在代理是不能用了么
    刚刚设置了代理为scut.tk:1998,可是什么网都上不去,但是可以ping通scut.tk

    • 能ping说明代理服务器网络正常。
      你试试能不能上youtube。如果可以上youtube,则可能是搜狗的代理服务器出了问题,否则就是代理服务器挂了。

  38. 还有就是我用sogou.exe的话会一直提示a.baidu.com – - [10/Dec/2011 13:56:27] Request timed out: timeout(‘timed out’,)
    而我根本就没开百度类的网页。。

  39. v4、ipv6都访问不能了?

  40. 搜狗有动作了?很多网站打开有问题了?

  41. 貌似搜狗有行动了,一些网站打不开了,有解不?

  42. 不能打开google 的所有网站,求解决办法

    • # Random Target Proxy Server
      proxy_host = ‘h’ + str(random.randint(0,5)) + ‘.edu.bj.ie.sogou.com’

      改为

      # Random Target Proxy Server
      proxy_host = ‘h’ + str(random.randint(5,15)) + ‘.edu.bj.ie.sogou.com’

  43. 非常感谢博主,这个软件非常好用。
    我非常想知道,我自己怎么搭建一个像你scut.tk一样的代理服务器?直接在scut.tk上面运行你的程序吗?

    • 在你的服务器上运行代理程序就行了 :)

      • AF_INET6对应ipv6,AF_INET对应ipv4,不知小虾的服务器上运行两个不同的sogou.py程序还是?另 之前的问题,是否意味着 “自定义规则 代理实现校内用户访问学校数据库及fb等,可编译到sogou或其他代理”,有其他可参考的实例吗?谢谢!!!

        • 这个可以在代理的代码里,添加一套规则进行判断。你可以准备一张ipv6的hosts,如果能够找到ipv6地址,就首选ipv6吧 :)

  44. 小虾你好,我又有问题了。你给大家提供的scut.tk:1998竟然可以访问“脸谱”和“推”,按理说Sogou的代理是不行的,我看上面你说是有IPv6,我想知道怎么配置我们实验室的服务器才能达到像你这个scut.tk一样的效果?我们实验室的服务器已经接通IPv6,我们局域网内的都没有IPv6。可以大概给我讲讲吗?谢谢!

    • 因为我有一张ipv6的hosts表,你访问一些网站例如google的网站,会优先使用ipv6来访问,而不是用搜狗代理的。
      当然,我是扩展了这篇文章里的这个python程序。

      • 哦,原来是这样,谢谢楼主指点。

      • 看样子,scut.tk监听::及0.0.0.0,优先使用ipv6访问ytb,twit等,有点负载均衡的味道。scut服务器使用的ip是公网|教育网125.216.248.10,还是nat了?校园网的公网出ip不是很少吗?若是具有Internet访问权限的校园内网的代理,如何给外网代理?没有在学校路由器开映射的权限,内网开代理或vpn不知如何作?

        • 这个主机的机器比较古董,现装内存512M,在CentOS的基础上安装了OpenVZ,随后再运行了10个Ubuntu系统。主机通过路由器直接桥接到外部网络,有教育网的IPv4和IPv6地址,除80、21、3306等端口被封,其他端口均对外部开放。
          OpenVZ绑定了一个IPv4地址,125.216.248.10,有dhcpd服务,做路由功能以及端口转发功能。Ubuntu系统的内部IPv4地址为10.0.8.*,作为HTTP,Proxy,FTP,实验等不同的服务各自独立一个系统运行,但是拥有公网的IPv6地址(IPv6没有NAT)。
          Anything else?

          • 谢谢xiaoxia的解答!scut.tk上的sogou proxy 到底plus or modify 什么,来使用ipv6 hosts.域名过滤用到没?
            路由器桥接没用wlan接口,centos路由用到 ipv6 dhcp 中继 还是什么 使10个ubuntu有各自ipv6地址——[2001:250:3000:3cc5::252]为cento os address OR ubuntu address?
            公网地址125.216.248.10容易申请 亦或,,,
            ps:
            将’AF_INET6改为’AF_INET4, py2exe 后 出现line 128, in ThreadingHTTPServer AttributeError: ‘module’ object has no attribute ‘AF_INET4′;
            python25 py2exe不能编译 error。linux python2.5环境下log
            line 100
            self.remote.sendall(self.requestline.encode(‘ascii’) + b”\r\n”);
            期待Linux体验中心。

  45. 非常感谢站主的贡献

  46. 呐,太强了。非常感谢。

  47. 你这个软件很好很实用。本人对网络编程的东西不怎么了解,提个问题,为什么用这个代理不能够看视频直播(PPTV,PPS)呢?是因为相关的网络协议(tcp,udp)没加进来吗?现在只要是看直播就会提示网络故障。

    • Sogou代理只支持普通的80端口的网页请求以及HTTPS请求。所以不要指望UDP以及某些协议的流媒体。也不要对代理用p2p软件抱太大希望,即使可以用也随时被封锁。

  48. 这个代理软件很强大,但为什么不能用来看pptv和pps呢?

  49. 偶尔来吐个槽。本来想着发个sogouproxy修改版privoxy也不错,但是看见大家在虎视眈眈地准备用来P2P,想想还是算了。

  50. 换作address_family = socket.AF_INET4后,编译错误。
    可否email扩展版sogou proxy,以资研究。谢谢!位于宿舍的主机接入具公网ip的 campus network,sogou代理运行centos or ubuntu,ubuntu 内似无unicast ipv6 address?如何修改同时监听v4 v6?谢谢!

    • 须指定AF_INET6协议,监听IP不指定即可监听所有IP。目前不在学校,无法email你。

      • 还是老问题,address_family = socket.AF_INET4后编译运行,
        Traceback (most recent call last):
        File “cnc.py”, line 127, in
        File “cnc.py”, line 128, in ThreadingHTTPServer
        AttributeError: ‘module’ object has no attribute ‘AF_INET4′
        而AF_INET6 编译运行,netstat -ano | find “1998″只发现监听::,而没有监听0.0.0.0、不知xiaoxia提供的exe版本编译时做了哪些更改?而改为address_family = socket.AF_INET(非socket.AF_INET4)监听0.0.0.0,谢谢!

  51. 我这里好像对公网限速了100kb,对用sogou代理后也是如此,如果是教育网的ip就很快,请问sogou有没有那个服务器的ip是在教育网的啊,多谢了

  52. ha,我也是南边某理工的:-)
    问一下唉,这个代理能通过本地的win7的wifi分享给iPad使用不?

  53. 也就是在IE里的LAN设置改了端口wifi就可以直接用?之前在这个地方问了一下对方说127.0.0.1的代理不好共享给wifi:
    通过win7自带无线分享网络给iPad使用后,如何将浏览器的代理也分享给iPad呢?http://www.v2ex.com/t/24448

    • 涉及到的网络知识太多了。可以了解一下如何搭建互联网服务器方面的知识。

      在你的wifi网里,你本机会有一个在这个网络里的IP地址。例如192.168.1.2,在你的ipad(IP为192.168.1.3)上,设置http代理为 192.168.1.2:1998 即可!

      希望对你有帮助 :-)

  54. 为什么我不能用 轻舟等各种都不可以了

  55. 各种不能用了,已经(scut.tk:1998),麻烦……

  56. 我的设置(scut.tk:1998)怎么不能上fb,ytb?

  57. 在ubuntu下的锐捷没有办法连接免费资源,也就没办法使用sogou代理。能不能通过ipv6连接sogou代理服务器?如果可以的话,该怎样修改代码?

    • sogou只有ipv4的服务器吧! 现在国内没有商业网站使用ipv6的。

      • 能否通过nat技术来实现通过ipv6以及搜狗代理访问非教育网资源?
        这个是关于nat技术的一个帖子http://www.ipv6bbs.cn/thread-152-1-1.html

        • 既然要用到代理,就不是nat那么简单的事情了。
          代理需要应用程序支持代理协议,而nat对应用程序来说是透明的。
          如果你必须要用上搜狗代理,那就写一个代理程序根据不同规则来选择搜狗代理和ipv6吧!

          • 其实也不是必须用,由于我们学校使用锐捷认证,而锐捷也没有一个较好的linux客户端,所以我在ubuntu下只能通过ipv6上网(我承认不想交网费,不过我一个月总共也花不了多少流量却必须要买6G的流量套餐,我表示不服)。由于使用ipv6是通过nat技术来访问ipv4的,再加上支持nat的dns服务器在国外,访问国内网络速度比较蛋疼。所以我想通过搜狗代理来加速。
            事实上,设置了支持nat的dns以后,在ipv6下,我可以ping到搜狗的几个代理服务器,但通过代理上网时,始终显示连接被重置,不知这是为什么?是由于nat技术不支持代理协议吗?

            • 我觉得nat和http代理是不同层面的东西,互不相干吧!
              你要测试能不能使用http代理之前,应该需要先测试能否与搜狗的代理服务器建立TCP连接。

              你也不交网费上网的呀,我一直以来也是的 :)

              • 嘿嘿,本来刚上大学的时候还是交的,直到开学两个月后发现了你的这个神器,几个月前又发现了nat这个神器,两大神器在手,我为毛还要交网费?嘿嘿···
                我想问一下,如何测试能否与搜狗的代理服务器建立TCP连接?用什么命令?或者需要什么程序?(ubuntu下的)

                • telnet就可以吧, telnet host port

                  • ping搜狗的代理服务器时显示network unreachable。
                    ping6搜狗的代理服务器时可以正常得到回应。
                    telnet搜狗的代理服务器时,终端显示系统先测试ipv6host,失败;又测试ipv4host,再次失败,最终显示network unreachable。端口我试了好几个,对结果无影响。
                    这是肿么回事?求解释。

                    • 你好,你telnet的是1998端口吗?
                      telnet scut.tk 1998
                      or
                      telnet -6 scut.tk 1998

                    • telnet scut.tk 1998可以连接到。
                      运行sogou代理器以后,telnet 127.0.0.1 1998也可以连接到。
                      但是直接连接sogou的代理服务器时,连接不到。

                    • 你提供的那个scut.tk的代理一直可以用。

  58. 请问WIN64能用么

  59. 行 5: $’\n Author: Xiaoxia\n Contact: xiaoxia@xiaoxia.org\n Website: xiaoxia.org\n’: 未找到命令
    from: can’t read /var/mail/threading
    from: can’t read /var/mail/struct
    from: can’t read /var/mail/BaseHTTPServer
    from: can’t read /var/mail/httplib
    from: can’t read /var/mail/SocketServer
    import: unable to grab mouse `’: 资源暂时不可用 @ error/xwindow.c/XSelectWindow/9007.
    import: unable to grab mouse `’: 资源暂时不可用 @ error/xwindow.c/XSelectWindow/9007.
    /home/daiaji/文档/app/sougou.py: 行 17: 未预期的符号 `128*1024′ 附近有语法错误
    /home/daiaji/文档/app/sougou.py: 行 17: `threading.stack_size(128*1024)’

  60. scut.tk求恢复啊……

  61. 既然可以实现google ipv6等的等hosts 来使代理访问scut.tk:1998时不通过 soHu的sogou代理,能否同样过滤掉某些ip,例如cnki,万方等数据库ip。是否纯IP不能过滤,而只有有域名的可以呢?谢谢!

  62. 停掉了么?
    G10 设置wifi http代理无效呀

  63. 希望早日恢复scut.tk啊。。。

  64. 我想用Proxfier和搜狗代理来上网,不过使用proxifier时,总是显示HTTP/1.1 403 Forbidden。可是这个版本的搜狗代理不是已经修正了这个问题了吗?为什么还会这样?

    • proxifier是一个切换代理的工具么?如果不使用proxifier,会不会出现这样的问题?

      • Proxifier是用来帮助不支持代理协议的程序使用代理的软件(典型的例子是网游:P)。搜狗代理用于浏览网页时,完全可以正常浏览https类型的网页。可是用于Proxifier时,如果测试的是443端口,会显示连接成功,测试其他端口(如80)却会显示:
        [54:06] 测试已开始。
        代理服务器
        地址: 127.0.0.1:1998
        协议: HTTPS
        验证: 否

        [54:06] 正在开始: 测试 1: 连接到代理服务器
        [54:06] IP 地址: 127.0.0.1
        [54:06] 已建立连接
        [54:06] 测试已通过。
        [54:06] 正在开始: 测试 2: 通过代理服务器连接
        错误: 代理服务器 (Squid) 没有配置为允许 SSL 隧道至端口 80。
        要解决此问题,请查找和评论 Squid 配置文件(squid.conf)
        中的以下行:
        http_access deny CONNECT !SSL_ports
        代理服务器响应头为:
        HTTP/1.1 403 Forbidden
        Server: squid/2.6.STABLE23
        Date: Sat, 24 Mar 2012 05:54:06 GMT
        Content-Type: text/html
        Content-Length: 1059
        Expires: Sat, 24 Mar 2012 05:54:06 GMT
        X-Squid-ExtError: ERR_ACCESS_DENIED 0
        X-Cache: MISS from tc_194_6.sogou-in.domain
        Via: 1.0 tc_194_6.sogou-in.domain:80 (squid/2.6.STABLE23)
        Proxy-Connection: close
        [54:06] 测试已失败。
        是不是通过搜狗代理的https只能连接443,而无法连接其他端口?

        • 没办法了,因为sogou的squid代理只允许SSL使用443一个端口,其他端口我曾经试过,都不行。

          • proxifier支持代理链,你说能不能用搜狗的代理服务器连接一个无限制的https,再通过这个无限制的https代理来连接公用网络?

          • 网游通常有多个软件构成,它们并不总是使用443端口,有很多使用的是80端口。
            proxifier里可以设置为程序使用80端口时用http代理连接,使用443端口时用https代理连接。
            可问题在于,网游会使用一些其他的协议,这样就没办法代理了。

  65. 请问你的域名是怎么绑定的?你们宿舍还有固定IP啊~

  66. 昨天我用你的scut。tk的代理都好好的,今天就不行了。

  67. 学校有线网络好像被雷劈坏了…只有无线能用。无线网收费不过开放ipv6..
    挂vpn看视频太卡,好不容易才找到博主建的v6代理,速度够快啊!

    特地感谢下,估计我得常驻了

  68. 你们那儿12点断外网?又没得视频看了

  69. scut.tk1998代理速度为0,什么情况啊

  70. 上网没问题,就是不能登q

  71. 你好,我用你的sogou.exe(windows下)和py脚本(Ubuntu下)在本机做代理,请问为什么访问百度空间等网站经常会上不去呢?
    试过用了你的scut.xiaoxia.org:1998也同样会经常上不了百度空间

    • 不知道哦!!!百度的服务器很多地方都上不了吧。。。
      像我这里用移动网络,经常打不开百度主页的,用google或者bing比较多。

  72. 之前迅雷离线通过搜狗代理一般在8MB/s左右,用了一年了一直都很稳定。从前几天开始速度只有500K了,是搜狗开始限速了吗?
    看起来不像是学校这边的限制,有人遇到这种情况吗?


Leave a comment

(required)