存档

文章标签 ‘Internet’

几种不得已时的上网办法

2009年8月28日 Solrex Yang 4 条评论

由于小弟最近上网受到诸多限制,在校时帐号爆掉,回家又没有网络可上,所以尝试了各种上网方法,也许对大家有用呢,所以下面分享及记录一下:

1. 手机作为 modem,使用 GPRS 拨号上网

这个一般受到手机版本影响,三星这方面做得非常不错。将手机使用数据线连接到电脑,打开 Samsung PC studio,选择 Network Wizard(网络向导?),创建连接,连接名称随便写,比如“中国移动”,下一步调制解调器选择“Samsun Mobile USB Modem”,下一步国家选择中国,网络供应商选择“China Mobile(Beijing)”(其实选择哪个好像无所谓),用户ID选择“cmnet”,密码也是“cmnet”,创建完成后就可以拨号了。因网络状况或者 GPRS 版本不同,连接速度可能是 153.5 kbps,或者 460 kbps。

GPRS 资费是非常贵的,不在不得已或者包月流量用不完时,最好不要用 GPRS 上网;即使用 GPRS 拨号上网时,也要切记关掉所有自动联网的软件,比如禁用杀毒软件和操作系统的自动更新,禁用浏览器插件等等,这样才能将有限的网速使用在优先的程序上。

2. 使用 201 卡进行古老的 modem 拨号上网

使用 201 卡拨号上网可能会受到运营商的限制。经过我多次咨询 10010 和动手尝试,北京网通(联通)的“阳光心语普通快捷卡”拨号上网方式是这样的:首先将电话线插到笔记本的 modem 口(一般台式机已经没有这个口了)。创建一个新的连接,“连接到 Internet”->“手动设置我的连接”->“用拨号调制解调器连接”->选择笔记本电脑自带的调制解调器(我从来没想过我会有使用它的一天...)->ISP 名称,随便填,比如“201”->电话号码:“2012,语言种类,卡号#,密码#,16911#”,语言种类为打201电话时选择的数字->用户名:169,密码:169。设置完后就可以拨号了,刚开始会听到愉悦的 201 拨号机器回复,最后就要忍受一会儿嘈杂的拨号音了。201 拨号上网的速度大概为 46.6 kpbs...

使用 16911 拨号上网资费大概是 0.07 元一分钟,所以也是相当贵的,只是在 201 卡快过期或者不得已时才能为之。

3. 借用 IPv6 上的 Google App Engine 上网

这个大概只适用于高校使用教育网的学生了。Google,作为一间牛逼闪闪的公司,当其他互联网公司还在 IPv4 上晃悠时,Google 已经将其几乎所有服务部署在 IPv6 互联网上了。作为 IPv6 网络用户,您只需要将所有 Google 相关的域名在 hosts 文件(C:\WINDOWS\system32\drivers\etc, /etc/hosts)中映射到 2001:4860:c004::68 这个 IPv6 地址即可,格式例如:

2001:4860:c004::68 www.google.com mail.google.com clients1.google.com talk.google.com ssl.goo飞gle-analytics.com

就可以使用浏览器访问 IPv6 上的 Google 服务了。目前中国的 IPv6 网络上是没有审查制度的,所以在 Google 搜索时,您可以放心地搜索任意关键词,以及查看网页快照了。

但是目前只解决了访问 Google 的问题,如何访问其它网站呢?就不得不提到我前段时间发布的 Tohr 项目了。Tohr router 可以运行在 Google App Engine 上,所以您只需要将您的 Google App Engine 的域名,比如 example.appspot.com 照上面格式添加到 hosts 文件中,就可以利用 Tohr 结合 GAE 作为一个 IPv4 over IPv6 通道来上网了。当然,GAE 有很多限制,所以有些网站是铁定上不了的。为了实现浏览器自动选择直连 IPv6 的 Google 服务和使用 Tohr 代理访问其他网站,强烈推荐您阅读一下我的这篇博客文章《浏览器自动选择 Proxy 配置案例》。

使用这种方法起码在访问只需要阅读的网站还是 OK 的,Twitter 也可以直接登陆。部分在登录时检查 HTTP 请求 Referer 的网站是无法登录的,比如豆瓣、开心网、Facebook 等,这些时候不要责怪我,因为这是 GAE 的限制,不许用户自定义 Referer;或者 gmail, google reader 等,这也可能是 GAE 限制访问的网站。

但比较遗憾的是,除了第3种方法在 Linux 一样好用以外,前两种方法我都不知道如何在 Linux 上使用。

分类: IT 标签: , ,

浏览器自动选择 Proxy 配置案例

2009年7月13日 Solrex Yang 9 条评论

本文主要讨论的是浏览器代理服务器设置技术,文中出现的人名、公司名或者域名均为化名,如有雷同,纯属巧合。

在某些地方上网时,比如南京大学的校园网中,某些公司的局域网中,我们可能需要用到代理服务器。代理服务器的切换一直是一个让人头痛的话题,IE 浏览器有一个 ProxySwither Lite 软件可以用来切换代理,Firefox 有一批插件可以用来切换代理,但是,很难用它们来解决全局性的问题,使用前的配置也是比较麻烦的事情。那么,有没有一种方法可以一劳永逸地解决这个问题呢?答案是有的,那就是 PAC(Proxy Auto-Config) 文件。

使用 PAC 文件我们可以做到:1. IE、Firefox、Opera...浏览器使用同一个代理配置方案,Windows、Linux多系统使用同一个代理配置方案;2. 针对特定的域名,使用特定的代理;3. 针对特定的 IP 范围,使用特定的代理;4. 针对特定的 URL 模式,使用特定的代理。

下面我们来看一个案例:

假设小明的电脑位于 C 公司的局域网中,C 公司为了某些需要禁止员工访问某些站点,例如: alogspot.com 和 bwitter.com ,但是小明的工作和学习需要经常访问这些站点,公司的网管给小明带来了很大不便。不过小明很聪明,他找到了一个可以访问被禁那些站点的一个代理 127.0.0.1:8000。虽然通过该代理小明可以访问这些站点,但是切换代理和浏览器设置始终是麻烦;特别是在用 doogle.com 搜索到的某些文章位于 alogspot.com 时,一不小心点了搜索结果,到搜索引擎 doogle.com 的连接就会有很大一会儿被重置。因为小明的代理速度比较慢,总不能用代理上所有网站吧?这真是件麻烦事,小明该怎么办呢?

虽然很头痛,但是互联网的开拓者们给我们留下了那么多遗产,怎么能不好好利用呢?小明翻出了一个尘封已久的 Wiki 页面,缓缓回忆起那古老的 Javascript 语言,顿时有了主意,于是他写出了下面这个 PAC 脚本:

// 看看域名是不是本地站点
function isLocalHost(host)
{
  if( dnsDomainIs(host, "localhost") )
    return true;
  return false;
}
// 看看域名是不是禁止访问的站点
function isBlockedHost(host)
{
  if( dnsDomainIs(host, "alogspot.com") ||
      dnsDomainIs(host, "bwitter.com") )
    return true;
  return false;
}
// 看看搜索结果 URL 中是不是包含被禁止访问的关键字
function isBlockedURL(url, host)
{
  if( dnsDomainIs(host, "doogle.com") ) {
    if ( shExpMatch(url, "*alogspot.com*") ||
         shExpMatch(url, "*bwitter.com*") )
      return true;
  }
  return false;
}
// 看看 IP 在不在本地 IP 范围内
function isLocalIP(addr)
{
  if( isInNet(addr,"127.0.0.0","255.0.0.0") ||
      isInNet(addr,"10.0.0.0","255.0.0.0") ||
      isInNet(addr,"192.168.0.0","255.255.0.0") ||
      isInNet(addr,"172.16.0.0","255.255.0.0") )
    return true;
  return false;
}
// 看看 IP 在不在被禁止访问的 IP 范围内
function isBlockedIP(addr)
{
  return false;
}
// 看看 IP 地址是不是 IPv6 地址
function isIPV6(addr)
{
  if( shExpMatch(addr, "*:*") )
    return true;
  return false;
}
// 这是浏览器默认调用的函数接口
function FindProxyForURL(url, host)
{
  var direct      = "DIRECT";
  var httpProxy   = "PROXY localhost:8000";
  var socksProxy  = "SOCKS localhost:9050"// 留着做个参考
 
  if(isLocalHost(host)) {
    // 如果是本地域名,那就直连
    return direct;
  } else if(isBlockedURL(url, host) || isBlockedHost(host)) {
    // 如果是被禁止访问的域名,或者搜索结果 URL 中含有被禁止访问的关键词,那就走代理
    return httpProxy;
  }

  if(!isResolvable(host)) {
    // 如果域名不能解析,那就直连
    return direct;
  }
  // 解析域名到 IP 地址
  var IpAddr = dnsResolve(host);

  if(isLocalIP(IpAddr) || isIPV6(IpAddr)) {
    // 如果是本地 IP 或者 IPv6 地址,那就直连
    return direct;
  } else if(isBlockedIP(IpAddr)) {
    // 如果是被禁止访问的地址,那就走代理
    return httpProxy;
  } else {
    // 剩下的,唉,就直连吧
    return direct;
  }
}

小明将以上内容保存为 C:proxy.pac(~/proxy.pac),然后到

Firefox 中,选择 工具->选项->高级->网络->设置(Edit->Preferences->Advanced->Network->Settings),将 file:///c:/proxy.pac(file:///home/username/proxy.pac)填入“自动代理配置 URL”(Automatic proxy configuration URL)文本框中;

再到

IE 中,选择 工具->Internet 选项->连接->局域网设置,勾选使用自动配置脚本,填入 file://c:/proxy.pac;

再到

Opera 中,选择 Tools->Preferences->Advanced->Network->Proxy Servers,勾选上 Use automatic proxy configuration,填入 file://c:/proxy.pac。

从此,小明就开始了自己幸福的互联网冲浪生活,再也没有看到那曾经熟悉的“到该网站的连接已被重置”消息了。

电脑宅男

2007年11月24日 Solrex Yang 没有评论

周杰伦出的新专辑“我很忙”中有一首“阳光宅男”,我就此歌名咨询了某资深动漫迷,得到的答案是:“宅男”,痴迷于某种东西而与他人隔离的族群,宅就是家的意思,指老呆在家中不出门。于是我回到宿舍,对着坐在电脑前的室友说:“电脑宅男同志,你好!”

在网上随便搜索了一下和自己有关的关键字,点点那些知道或不知道的链接,看看那些文字,有些是感动,有些是惊讶,总之都很有意思。比如我早先对龙芯的几句闲话被一个龙芯爱好者编辑的电子杂志“龙讯“作为评论引用上去,还有一些技术文章被别的网站或者博客引用,看到别人引用我的文章我是很开心的,因为那说明自己的文字没有白写。但是还有更好玩的是有人会从我的博客文章中截取一部分,然后换个标题作为自己的文章,这充分说明了我通常博客标题的辞不达意 :-) 。无意中还搜索到了于洋师兄以前送我的几句话:

老弟此去京城,鹏鹤万里。京畿高朋如云,藏龙卧虎,胜江南一隅百倍,然旧友故人,心随君万里,亲切切而意期期,愿吾弟居京城得演天下,处翰院以震寰宇。此情依依,折柳依依,善自珍重。

这些值得纪念的文字,有趣的或者感动的,平时隐藏在互联网的某些角落里,搜索引擎就像考古学家一样,把它们翻出来放在博物馆里,当无意间走过那橱窗前时,会看到那闪光的历史。它告诉路过的人们,你已经陷进互联网很深了。

我在小百合的签名档里写:“珍惜时间,远离百合”,就是想告诫自己要远离网络。有那么容易吗?一个儿子,可能同时也是一个父亲;一个现实生活中的人,也有在网络中的身份。而且现实和虚拟的两种身份可能变得重合,或者同等重要。互联网上有很多我很欣赏的人,对我来说只是一个 ID 而已,我对他们的了解只是一篇篇漂亮的文字;而同样我相信,对于某些人来说,Solrex 比“杨文博”更具有明确的意义。

互联网本来应该只是人类社会活动的延续,但是它有太多的内容让人沉浸其中,反而忽略了真实的社会活动。那么以后打招呼的时候就需要说:电脑宅男们,你们好!

分类: Life 标签: , ,