关于socks代理,据笔者理解,他应该是从osi通信层进行全局代理。关于这个,论坛里的大神求科普。(socks代理与socket通信有什么区别?)
关于socks代理,笔者百试不爽,在以往的帖子中有所提汲,
《ssh socks动态端口转发在项目中的应用》,
《php动态socket代理脚本怎么写》,
《关于webshell下socket代理反弹的事情》。
在后面两个帖子中笔者得知
reGeorg的确是一个好东西。
能拿到socks代理,那就爽了,大多数软件(语言)支持socks代理,进行数据代理就可以无视内网了。
笔者遇到的问题如下:
一个内网的svn:外网可以访问部分代码仓库
假设这个svn仓库根地址为
https://111.111.111.111:2222/m20。
有一个代码分支库名字分别为
https://111.111.111.111:2222/m20/repo1
他还引用内网的
https://192.126.111.125:2222/m20/repo1
https://111.111.111.111:2222/m20/repo1是通过某种端口转发手段把内网192.126.111.125:2222映射到公网。而192.126.111.125就是真正svn仓库的内网Ip地址
那么问题来了:每次更新代码,引用的部分没办法更新,每次都要进内网,烦不烦?
最近得知regeorg可以获得socks代理,今天偶尔想起Proxifier可以在windows设置全局socks代理,笔者想:用regeorg+Proxifier应该能代理进内网了?
于是写了一个
python reGeorgSocksProxy.py -p 8080 -u [url]http://111.111.111.111/1.php[/url]
然后在Proxifier设置了socks代理,问题就解决,可以顺便访问内网。贴图为证。
笔者使用regeorg遇到一问题:
Exception in thread Thread-115:
Traceback (most recent call last):
File "D:\develop\Python27\lib\threading.py", line 810, in __bootstrap_inner
self.run()
File "D:\develop\Python27\lib\threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
File "reGeorgSocksProxy.py", line 324, in writer
raise ex
error: [Errno 10053]
根据Errno 10053搜索,网上说可以在accept之前暂停几秒。
也就是可以在在 while True:
try:
sock,addr_info=servSock.accept()
sock.settimeout(SOCKTIMEOUT)
log.debug("Incomming connection")
session(sock,args.url).start()
except KeyboardInterrupt,ex:
break
except Exception,e:
log.error(e)
设置线程延迟。是否有机油愿意改进一下regeorgproxy.py,添加一个可选参数 [-w],允许一个线程延迟特定的毫秒
然后执行 python reGeorgSocksProxy.py -h
得到 usage: reGeorgSocksProxy.py [-h] [-l] [-p] [-r] -u [-v] [-w]
如果填写 -w 10 将允许线程延迟10毫秒