2012年10月31日 星期三

慎用public DNS

全世界范围的public dns日渐增多。比如谷歌的8.8.8.8以及OpenDNS的公开DNS。 使用它们可能会造成一些问题。影响用户上网的体验。
根据实际测试,凡是比较大的网站,比如google, youtube, facebook, twitter,以及其他采用了各种CDN 分发技术的网站。都会根据DNS的请求,来智能分配最近的IP 地址。
拿到中国来说,中国境内的网站,如果有用CDN加速,那么电信用户,访问电信节点应该是很快的。联通访问联通的节点,应该也很快。
但是启用了public DNS之后,也许会绕道从海外的节点获取数据。
DNS解析的过程是 客户端发起DNS查询 ,查询被发送至DNS查询服务器,查询服务器通过查阅根服务器,最后找到某域名的dns服务器,读取DNS。
这个过程是没办法避免的。
理论上来说,最近的DNS服务器,获取的IP,是最优的。我们可以在本机架设一个bind服务器,来负责查询DNS。但因为我们自己的网速不快,查询延时是很高的。
另外就是因为GFW的封锁。导致就算正确解析了IP,也不一定能访问解析后的IP。
我们经常需要借助国外的VPN,SSH SOCK5隧道来翻墙。
不管是通过VPN还是通过隧道来翻墙。我们都需要明白一点。DNS查询应该就近。 比如你的代理在洛杉矶,你最好在洛杉矶的DNS服务器查询。否则你查询纽约的dns服务器,返回的是纽约的IP,一来一回,传输数据的过程就变长了。
所以我建议大家在国外服务器本地建立bind来查询DNS。 如果机房本身有DNS查询服务器,可以直接让bind forward DNS查询到机房的DNS服务器查询。

2012年7月23日 星期一

Google public DNS也请小心使用

今天感觉翻墙的速度很慢,排查了一天,都找不出不对的地方,最后用dnsmasq来解析DNS,发现上网的速度忽然就快了。
因为我之前一直用着Google public dns服务
虽然我无法证实Google public DNS有问题,但是我想远程连接Google Public DNS服务器查询,肯定是有延时的,如果网络不好的情况下,DNS查询响应肯定无法及时传回来,那么我们上网的过程就会被延误。如果DNS查询没有返回 或者是等几秒钟才返回,那么我们就会感觉上网很慢。

dnsmasq可以缓存DNS查询请求,推荐大家安装使用。在一定程度上,可以加速上网浏览的体验

freebsd+dnsmasq+tinyproxy+ssh端口转发+sshtunnel优化上网速度

freebsd+dnsmasq+tinyproxy+ssh端口转发+sshtunnel优化上网速度
Freebsd作为操作系统,网络吞吐性能优异。
dnsmasq为本地DNS缓存,加速dns查询返回。
tinyproxy代理上网,性能较高,占用较少的CPU和内存。
ssh端口转发,提供了加密的上网通道
sshtunnel可以在android手机上面使用,可以访问ssh服务,建立端口转发。

2012年7月19日 星期四

SSH端口轉發加tinyproxy代理上網解決方案

利用tinyproxy搭建代理服務器。監聽127.0.0.1:8080端口。利用ssh的端口轉發功能架起橋樑,讓我們能在中國通過遠程位於美國的服務器瀏覽上網。

PC端,我們可以通過MyEntunnel plink配置端口轉發。

android手機端,我們可以下載一個sshtunnel軟件來實現端口轉發。

本文檔所涉及的一些軟件:

http://nemesis2.qx.net/pages/MyEnTunnel/

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

https://code.google.com/p/sshtunnel/

服務器端我們推薦VPS,安裝centos 5.8系統, 然後通過yum安裝tinyproxy. yum install tinyproxy

之前用過MyEntunnel Plink本地socks5代理上網。但是發現本地socks5的效率不夠高。速度受影響。所以想到了用把代理服務器放在遠端。一勞永逸的解決我們代理上網的問題。