问 题 已知一个SS帐号,包括 ip:port,密码,加密方式,求问如何通过终端的ping命令测试这个帐号的延迟,以及在python中如何进行测试? 解决方案 我假设你已经启用ss, 本地代理为socks5://127.0.0.1:1080, 下面是shell时间 # 暂时启用ss代理 export ALL_PROXY=socks5://127.0.0.1:1080 # 下面是百度最有价值的时刻: ping三次百度打印平均值 echo "挂梯子PING百度延时$(ping -c 3 www.baidu.com | grep ttl | awk -F "=" '{print $4}' | awk '{a+=$1}END{print a/NR}')ms" # 清除代理 unset ALL_PROXY 运行结果 挂梯子PING百度延时83.1333ms
以下是关于 shadowsocks 的编程技术问答
问 题 最近在读 shadowsocks 的源码,有一些疑惑。 shadowsocks 每次通过 epoll 监听到新连接之后,程序都会阻塞一段时间去执行 on_remote_read() 或 on_remote_write() 来传输数据,数据传输完毕之后才会再次调用 epoll 并 accept 新的 socket 连接,当连接达到一定数量之后,会出现高延迟、低效率的情况啊 # 在知乎上问了这个问题,没人理只好来 SegmentFault 啦~ 解决方案 因为这个过程是高CPU、高内存的操作,而非高硬盘IO的操作,也就是说,这个过程考验的是CPU性能。而我们知道,计算机了没有真正的多进程或是多线程,都是通过CPU调度模拟出来的。那么对于高CPU的操作,最好就是用单进程或者单线程的方法来处理(多核心可考虑增加),这样才是最高效的办法,因为这样避免了线程或进程来回切换带来的消耗。 这块可以参考Nginx的架构,Nginx的高负载也是在单进程中完成的。
问 题 我想通过设置HTTP_PROXY和HTTPS_PROXY方法实现代理,格式如下 $ export HTTP_PROXY="http[socks5]://user:pass@server_address:port/" $ export HTTPS_PROXY="http[socks5]://user:pass@server_address:port/" 昨天我买了一台阿里云的服务器,经过SSH -D user@server然后通过Chrome下的proxy插件可以实现翻墙。现在我想让用设置环境变量的方式代理实现终端下也能访问Goole等网站的页面,请问我应该怎样在我的阿里云服务器上面配置呢? 附录: 自己在Python爬虫里面通过下面的方式利用Shadowsocks已经可以爬取墙外的网站了,现在主要想在终端下使用wget, youtube-dl等命令翻墙。 proxy_handler = SocksiPyHandler(socks.SOCKS5,
问 题 最近在看shadowsocks源代码,有些地方不是很懂,比如如下代码中的frozen是啥意思?官方文档没有查到~ # fix py2exe if hasattr(sys, "frozen") and sys.frozen in \ ("windows_exe", "console_exe"): p = os.path.dirname(os.path.abspath(sys.executable)) os.chdir(p) 解决方案 和 cx_freeze 这个库有关。这是一个用于在 windows 下将程序打包成 exe 的库,会将一个变量 frozen 注入到 sys 中。
问 题 搭了一个ss服务器,已经可以跑通了,更近一步,我想将它用在我的iphone手机上,于是就研究了一下pac自动代理,并且也跑通了,但这样的代理,任意一个人只要扫一下端口就可以使用了,这中间应该怎样加一层身份验证呢? // pac function FindProxyForURL(url, host) { return 'SOCKS5 xxx.xxx.xxx.xxx:1080; SOCKS xxx.xxx.xxx.xxx:1080' } 这个问题已被关闭,原因:无法获得确切结果的问题 解决方案 iphone上支持socks5认证吗? 你可以将socks5部署在本地机器上,把ss部署在远程服务器,然后本地机器连接ss再做socks5的代理。iphone上访问本地机器提供的代理服务。 pac生成,可以使用:http://pac.sjz.io/