用Emacs开发Ruby on Rails的一个简单的演示视频, 虽然没有声音, 也足够获得一个初步的了解了。另外一个补充的视频, 从编辑的角度展示了Emacs的功能, 其中用到的软件这里给出了一个列表。

Rinari Screencast (Ruby on Rails development with Emacs) from Eric Schulte on Vimeo.

Slackware 13.0 Released

| 0 Comments | 0 TrackBacks

经过漫长的等待, 终于迎来了Slackware的一次重大的升级, 随着版本号步入13.0, Slackware的官方网站上已经有了四个目标平台的发行版本在同步开发, 包括: x86x64S390ARM。其中, x64版本的发行是首个官方版本的64位Slackware, 之前众多的非官方64位版本应该可以退休了。

为了方便大家下载使用, 本站特地提供了DVD版本的SlackwareSlackware64供大家下载, 也同我交流Slackware的使用经验。

下载地址:

EA-ManagementFramework.png

上次应福田科技局软件平台的邀请,做了一个简短的分布式版本控制系统的讲座从svn到hg和git。在同学员的课堂交流过程中,发现多数学员更关心管理方面的问题,这也正是我持续进行了多年的项目COKB所致力解决的问题。

碰巧的是:软件平台也要求我准备一个系列公开课的提案,就这个项目的研究成果, 我考虑可以开一个企业架构理论和实践的系列课程,一方面能够分享之前知识的累积,另一方面也可以用实践来检验这些知识。下面就是当初提案的内容:

初步计划用一个系列的课程来讲解这个问题,共分三个主题:

1、企业架构方法介绍,结合中外的企业架构框架和智慧来介绍企业架构方法,包括:TOGAF, Rational ADS, MDA, CMMI 以及《道德经》和《孙子兵法》中相关的内容,结合西方管理理念和中国文化精髓普及企业架构的知识。

2、企业架构务实,介绍企业架构的知识体系,选择和实践的依据,以CMMI和ISO-9000为起点介绍实施企业架构的方法,并初步介绍简单且容易实施的Collaboration Knowledge Management Methodology (CKMM) 方法。

3、企业架构在身边,以前面的介绍为基础,引导学员快速搭建起适合自身需求的企业架构平台,用以解决研发管理,企业管理中的问题,并用CMMI的25个过程域来对照检验企业架构平台所体现的最佳实践。

这个系列课程的好处是:理论同实践相结合,保证帮助企业学有所用,用有所成,共同提高。缺点是内容太多,怕难用三堂课讲清楚,尤其是第三部分,因为有实际操作的内容,互动的内容比较多,需要一个能够让学生自己动手操作的环境。

等待了一段时间后, 接到软件平台的通知, 拟定于09年8月1日开始这个企业架构的系列课程。听到这个消息后,自己也开始着手准备有关企业架构和软件架构方面的讲义,在整理讲义的过程中,不得不做了一些删减,去掉了Rational ADS, TOGAF和MDA方面的内容,而重点突出了业务架构和业务管理框架的内容,以避免过于理论化和太偏重于技术层面,尽量能够以MBA教育背景的管理人士为目标听众,所以,软件架构方面的比重反而大大降低了,最后,仅仅作为了补充材料而存在,以备有学员问到这个话题的时候,也能简单的讨论一下。点击讲义下载能得到PDF版本的讲义。

完成后的内容纲要如下:

  1. 背景资料,简单讨论一般性的常识问题,导入了架构元模型。
  2. 企业架构简介,以Zachman Framework和《孙子兵法》的映射对照关系,介绍了企业架构的概念;然后选择对比了一些著名的企业架构,如TOGAF, DoDAF等。
  3. 业务架构的框架和标准,罗列了ISO-9000, CMMI, Six Sigma,ITIL等众多的业务架构标准,尝试说明它们之间的联系。
  4. 选择合适的业务架构框架,从企业架构和工程的角度出发,对比了众多的业务架构框架,并选出了重点;然后,导入了EFQM和平衡记分卡(Balanced Score Card)的概念,重点介绍了集成绩效管理的框架。
  5. 实施方法论和最佳实践,从知识管理的角度出发,并对照知识管理同绩效管理的框架模型。
  6. 案例分析,先引入《道德经》同架构的关系,用以说明架构的一般原则,然后,用”MindWard研发管理平台”和”COKB - 社会性协作平台”说明,这些一般原则如何指导实践。
  7. 总结,提供了一个一般性的业务架构设计和实施建议。
  8. 在最后的部分,准备了一些”软件架构与技术架构 Software Architecture & Technical Architecture”的内容,以备同技术背景的人讨论软件架构的需要。

借这个机会,也系统的整理了我个人在企业架构,软件架构和知识管理领域的认知,外化成了这篇讲义,很期望能够借这个机会多找到一些同道中人,互相交流和学习。

也欢迎到问题追踪系统中提出问题,参与开发和讨论。

更新

收到了软件平台制作的招贴广告, 也放上来,留个纪念。

architecture.png


有用的链接

用Emacs很久了,可是,不断探索和学习的旅程远没有结束,总有新的发现在前面等着,这不,又发现了一个好用的列编辑模式。下面的内容转帖自Emacs Tip #26: CUA mode (specifically rectangle editing) ,以方便在中国查阅:

I’d heard of CUA mode, but generally dismiss it because I don’t want the “windows” bindings for cut/copy/paste/undo. But when I saw this video of CUA’s rectangle support, I knew this was the way to edit rectangles.

Emacs Column Editing from Mark Mansour on Vimeo.


To activate in emacs 22.1 - with minimal intrusion (I don't like transient mark mode):
(setq cua-enable-cua-keys nil)
(setq cua-highlight-region-shift-only t) ;; no transient mark mode
(setq cua-toggle-set-mark nil) ;; original set-mark behavior, i.e. no transient-mark-mode
(cua-mode)

The *info* page doesn't have the rectangle bindings (as far as I can see), so here is the documentation from the code:


;; CUA rectangle support
;; ---------------------
;; Emacs' normal rectangle support is based on interpreting the region
;; between the mark and point as a "virtual rectangle", and using a
;; completely separate set of "rectangle commands" [C-x r ...] on the
;; region to copy, kill, fill a.s.o. the virtual rectangle.
;;
;; cua-mode's superior rectangle support uses a true visual
;; representation of the selected rectangle, i.e. it highlights the
;; actual part of the buffer that is currently selected as part of the
;; rectangle.  Unlike emacs' traditional rectangle commands, the
;; selected rectangle always as straight left and right edges, even
;; when those are in the middle of a TAB character or beyond the end
;; of the current line.  And it does this without actually modifying
;; the buffer contents (it uses display overlays to visualize the
;; virtual dimensions of the rectangle).
;;
;; This means that cua-mode's rectangles are not limited to the actual
;; contents of the buffer, so if the cursor is currently at the end of a
;; short line, you can still extend the rectangle to include more columns
;; of longer lines in the same rectangle.  And you can also have the
;; left edge of a rectangle start in the middle of a TAB character.
;; Sounds strange? Try it!
;;
;; To start a rectangle, use [C-return] and extend it using the normal
;; movement keys (up, down, left, right, home, end, C-home,
;; C-end). Once the rectangle has the desired size, you can cut or
;; copy it using C-x and C-c (or C-w and M-w), and you can
;; subsequently insert it - as a rectangle - using C-v (or C-y).  So
;; the only new command you need to know to work with cua-mode
;; rectangles is C-return!
;;
;; Normally, when you paste a rectangle using C-v (C-y), each line of
;; the rectangle is inserted into the existing lines in the buffer.
;; If overwrite-mode is active when you paste a rectangle, it is
;; inserted as normal (multi-line) text.
;;
;; If you prefer the traditional rectangle marking (i.e. don't want
;; straight edges), [M-p] toggles this for the current rectangle,
;; or you can customize cua-virtual-rectangle-edges.

;; And there's more: If you want to extend or reduce the size of the
;; rectangle in one of the other corners of the rectangle, just use
;; [return] to move the cursor to the "next" corner.  Or you can use
;; the [M-up], [M-down], [M-left], and [M-right] keys to move the
;; entire rectangle overlay (but not the contents) in the given
;; direction.
;;
;; [C-return] cancels the rectangle
;; [C-space] activates the region bounded by the rectangle

;; If you type a normal (self-inserting) character when the rectangle is
;; active, the character is inserted on the "current side" of every line
;; of the rectangle.  The "current side" is the side on which the cursor
;; is currently located. If the rectangle is only 1 column wide,
;; insertion will be performed to the left when the cursor is at the
;; bottom of the rectangle.  So, for example, to comment out an entire
;; paragraph like this one, just place the cursor on the first character
;; of the first line, and enter the following:
;;     C-return M-} ; ;   C-return

;; cua-mode's rectangle support also includes all the normal rectangle
;; functions with easy access:
;;
;; [M-a] aligns all words at the left edge of the rectangle
;; [M-b] fills the rectangle with blanks (tabs and spaces)
;; [M-c] closes the rectangle by removing all blanks at the left edge
;;       of the rectangle
;; [M-f] fills the rectangle with a single character (prompt)
;; [M-i] increases the first number found on each line of the rectangle
;;       by the amount given by the numeric prefix argument (default 1)
;;       It recognizes 0x... as hexadecimal numbers
;; [M-k] kills the rectangle as normal multi-line text (for paste)
;; [M-l] downcases the rectangle
;; [M-m] copies the rectangle as normal multi-line text (for paste)
;; [M-n] fills each line of the rectangle with increasing numbers using
;;       a supplied format string (prompt)
;; [M-o] opens the rectangle by moving the highlighted text to the
;;       right of the rectangle and filling the rectangle with blanks.
;; [M-p] toggles virtual straight rectangle edges
;; [M-P] inserts tabs and spaces (padding) to make real straight edges
;; [M-q] performs text filling on the rectangle
;; [M-r] replaces REGEXP (prompt) by STRING (prompt) in rectangle
;; [M-R] reverse the lines in the rectangle
;; [M-s] fills each line of the rectangle with the same STRING (prompt)
;; [M-t] performs text fill of the rectangle with TEXT (prompt)
;; [M-u] upcases the rectangle
;; [M-|] runs shell command on rectangle
;; [M-'] restricts rectangle to lines with CHAR (prompt) at left column
;; [M-/] restricts rectangle to lines matching REGEXP (prompt)
;; [C-?] Shows a brief list of the above commands.

;; [M-C-up] and [M-C-down] scrolls the lines INSIDE the rectangle up
;; and down; lines scrolled outside the top or bottom of the rectangle
;; are lost, but can be recovered using [C-z].

前言

升级到Apache2以后,查阅了一些文档,不少人推荐用mod_fcgid来取代mod_fastcgi,据说能获得性能上的提升。国人写的fcgid据说同mod_fastcgi全兼容,同时做了一些改进。所以,决定尝试一下用fcgid来加速MovableType的cgi程序。但是,fcgid已经有一段时间没有更新了,一些apache用户论坛建议使用sourceforge上的cvs中的mod_fcgid,其中包含了一些更新。

各种不同的Linux版本安装fcgid的方法略有差异,但是,成功安装完fcgid后,还是有一些配制过程需要注意的。fcgid的配制中有不少陷阱,我经过了反复尝试,终于让fcgid正常运行起来了。

陷阱一: 启动fcgid时的配制

安装好fcgid模块后,重新启动apache服务器之前,需要指定正确的配制文件,Include下面 文件到httpd.conf中,能够正常的启动apache服务,其中两个重要的选项是SocketPath和SharememPath, 缺少任何一项,都会造成apache不能正常启动,而且,指定的目录需要设置成同apache进程同一个用户,好让apache能够读写该目录中的内容。

 <IfModule mod_fcgid.c>
   AddHandler fcgid-script .fcgi
   IPCConnectTimeout 40
   IPCCommTimeout 300
   DefaultInitEnv RAILS_ENV production
   SocketPath /var/lib/fcgid/fcgidsock
   SharememPath /var/lib/fcgid/fcgidshm
</IfModule>

陷阱二:需要为每个虚拟主机或每个IfModule配制项目单独指定fcgid参数

按照上面的配制,虽然能够正常的启动apache服务了,但是,并不代表fcgid能够正常的工作。如果需要让fcgid能够正常的工作,还需要为每个虚拟主机配制单独指定配置参数,fcgid并不能自动的继承上面的参数。在尝试正确配制Apache2+fcgid,发现,不但需要在每个虚拟主机配制中需要重新设定参数,甚至在需要在每个IfModule fcgid_module中都需要重新指定fcgid的配制选项,通过google查到文章重点说明了这一点。解决了这个问题之后,MovableType终于能够稳定的运行在fcgid下了。建议单独设定一个包含公共配制项目的文件,在需要的地方Include该文件,以免重复。

配制MT-Dispatch

fcgid能够正常工作之后,开始尝试用MT-Dispatch管理MovableType的进程,参考了MovableType+FCGI文章中的内容,成功让MT-Dispatch运行起来了。下面是我的Apache配置文件中同MT-Dispatch对应的部分,也可以作为如何配制fcgid的例子:

<IfModule fcgid_module>
   DefaultInitEnv MT_HOME /srv/www/sites/mindward/mt/
   DefaultInitEnv MT_PERIODIC 50
   DefaultInitEnv PERL_FCGI_MAX_REQUESTS 250
   DefaultInitEnv PERL_FCGI_CHILDREN 4
   DefaultInitEnv PERL_FCGI_LOG /var/log/httpd/fcgid.log

   Include /etc/httpd/inc.d/fcgid.inc
   <Directory "/srv/www/sites/mindward/mt">
     AddHandler fcgid-script .cgi
     <FilesMatch "^mt-(add-notify|atom|check|config|feed|testbg|upgrade|wizard|xmlrpc)\.cgi$">
        SetHandler cgi-script
     </FilesMatch>
     DirectoryIndex mt.cgi
     Options Indexes ExecCGI -MultiViews
     Order allow,deny
     Allow from all
     <FilesMatch "^mt(-cp|-search|-ftsearch|-comments|-tb)?\.cgi$">
        FCGIWrapper /srv/www/sites/mindward/mt/bin/mt-dispatch.fcgi .cgi
     </FilesMatch>
   </Directory>
 </IfModule>

其中,fcgid.inc的内容如下:

  SocketPath /var/lib/fcgid/fcgidsock
  SharememPath /var/lib/fcgid/fcgidshm
  BusyTimeout 300
  IdleTimeout 600
  IdleScanInterval 240
  BusyScanInterval 120
  ErrorScanInterval 6
  ZombieScanInterval 3
  ProcessLifeTime 1200
  SpawnScoreUpLimit 10
  SpawnScore 1
  TerminationScore 2
  MaxProcessCount 250
  DefaultMaxClassProcessCount 10
  DefaultMinClassProcessCount 0
  IPCConnectTimeout 20
  IPCCommTimeout 600
  MaxRequestsPerProcess 500

经过测试,Blog, Motion和Forum都能够正常工作。执行:

ps fax

能够看到启动了perl-fcgi进程。

需要注意的是,只有mt.cgi, mt-cp.cgi, mt-search.cgi这几个文件同fcgid环境是兼容的,其他文件还需要保持在cgi模式下运行,否则会出错。

总结

fcgid存在的这些陷阱,让我花费了不少时间去定位和排除,也许,好的软件应该注意做好防错设计,健壮的软件应该在容易并可能出现错误的时候,尽量能够给出有意义的提示信息,这样才是对软件用户友好的高质量软件。

技术总在不断的进步,apache已经有一个新的mod_proxy_fcgi模块在开发中,可能会从Apache2.4版本开始正式的内置对fastcgi协议的支持,从而不在需要安装第三方模块。另一方面,perl社群设计出了mod_perlite,期望让用perl编写的cgi能够象php那样容易部署和运行,但是该项目的成熟还需要时间。

不过,国人能写出在服务端广泛部署并使用的高性能软件,还是值得钦佩的。瑕不掩瑜,综合评估上面提到的技术方案,fcgid对于在apache2下面部署cgi应用程序,到目前为止,还是最佳选择。

更新:重新调整了fcgid.inc中的参数,调低了ProcessLifeTime的值, 并对应调整了其他参数。经过实际测试,新配制对提高系统稳定性有帮助。

前言

因为中国的网络环境使然,常常莫名奇妙的不能访问一些国外的网站,为了能够绕开由此带来的不便,也想了很多的办法。这不,在网上看到不少朋友正为这事情苦恼着,所以想把自己知道的方法写下来,也许对其他具有类似的烦恼的朋友,未尝不是一个解脱的办法。

1. 代理服务器方法(Proxy)

这个方法最为大多数人所熟知,使用起来也非常的简单。google一下proxy这个关键字,能得到不少代理服务器的列表,而且,不过找到好用的代理服务器也是一个化功夫的细活,如果找到了,就赶快把地址记录下来,这不,我自己尝试了很多次,终于发现一个好用的代理服务器easyproxy.nl,大家可以自己去试一试,在表单中输入你想访问的地址,就能够访问那些之前不能直接访问的网站了。

或者,如果你有境外的服务器资源,可以自己架设一个代理服务器,google一下cgiproxy或者phproxy,能够找到代理服务器软件的下载链接,按照软件中的说明安装好后,就能够享受代理服务器带来的便利了。

优点

使用容易,免费资源多。

缺点

兼容性差,对视频类,Flash类网站支持不好,很多富媒体网站无法浏览。安全性差,不适合商务操作。

2. 用ssh客户端作为SOCKS服务器的方法

如果你已经有一个境外服务器的账号,并能够通过ssh客户端远程登录到境外的服务器上,那么,只需要简单的配制,就能够让浏览器借助ssh客户端提供的SOCKS代理功能,通过该境外服务器做跳板,访问其他的网站,对被访问的网站来说,所见到的IP地址是境外服务器的IP地址。详细的设置方法请参考ssh client as SOCKS server。成功设置后,浏览器会将网页浏览的请求先转发给远程服务器,然后有远程服务器取得需要的内容后,再传给浏览器。

优点

兼容性好,几乎能够支持所有类型的网站,对于境外的网站,网页浏览速度也能够得到提升。安全性好,能够支持商务应用。

缺点

需要境外服务器的账号,设置稍微麻烦了一些。

3. 强制忽略互联网长城

互联网长城的工作机制,大概可以分为三种,IP封锁,DNS劫持和关键字过滤。当浏览网页时,先能够访问网站,然后出现马上出现连接中断(Connection Interrupted)错误的时候,证明互联网长城识别出网页内包含敏感的关键字,向两端发送了连接重置信号。对于关键字过滤这种封锁方式,可以通过设置操作系统底层网络处理参数,让其忽略互联网长城的发来的连接重置信息,从而破除封锁,其原理和详细的设置使用方法,请参考By pass the GFW - 穿越互联网长城

优点

网站兼容性好,一旦设置好之后,对用户完全透明,使用容易。

缺点

目前只知道Linux和FreeBSD下的设置方法,还没有发现Windows下的设置方法,对普通用户来说,不具备可操作性。如上面的原理分析文章中所描述的,仅仅能破解关键字过滤的封锁。

4. Tor代理软件方法(TorProject)

vidalia.png

在本机上安装Tor代理软件,比如vidalia,然后借助代理软件访问互联网,Tor将浏览器的请求分解到多台同样安装了该代理软件的境外客户机上,由多台客户机帮助浏览器取得需要的数据。

优点

安全性高,使用方便,不需要集中服务器,支持Windows平台。

缺点

安装设置稍微麻烦,实际测试的时候,浏览速度不理想。

5. 组合使用1,3的方法

我们注意到,方法1的代理软件方案,需要有服务端配合,而方法3既适合客户端,也适合服务端,但是对操作系统有要求,安装配制不容易。那么,我们可以考虑结合这两个方法的优点,将服务端按照方法3配制并安装代理软件以方便用户的使用,这样,即便是服务器在境内,也能够破除互联网长城的关键字过滤封锁了。一旦正确配制的服务器能够顺利的访问本被封锁的网站,这时候,只需要在服务器上部署方法1所提到的代理软件,然后用代理软件来访问原本被关键字过滤阻挡的网站,而且我已经用cgiproxy软件成功的验证了这个方法的可行性,点击MindWard cgiproxy,然后在顶步的表单中输入这个地址 http://www.lightbluetouchpaper.org/2006/06/27/ignoring-the-great-firewall-of-china/ 就能够访问,而直接在浏览器地址栏输入上面的地址,会得到连接错误。

优点

结合了方法1的优点,容易部署和使用,同时去掉了方法2中必须具备境外服务器的限制,只要有Linux或FreeBSD操作系统就都能够使用这个方法。

缺点

对比方法4,还是需要有服务器的存在。仅仅能突破关键字过滤,而对IP封锁和DNS劫持没有作用。

6. 组合使用方法2,3

理论上来说,既然我们能够组合使用方法1和3,我们也应该能够组合使用方案2和3,但是,在尝试这样配制的时候,服务器端给出了 “channel 7: open failed: connect failed: Connection timed out” 错误,我需要进一步发掘问题的原因,到目前为止,这个方法还没有配制成功。

7. 下载安装其他破封网的客户端软件

我之前尝试过一些这类软件,因为某些原因,这里就不再多说了,请自己想办法查找下载地址。

总结

如果有大量廉价的免费的Linux或FreeBSD服务器可供使用,那么,采用方法5的原理,开发一款客户端软件,广泛的部署到大众的电脑上,那么,破除互联网长城的封锁就变成了一个异常容易的事情,而不象现在这样有一个高技术的门槛。如果从技术的角度考虑,那么方法4和5已经变成了类似的原理和架构了,也许,这正是互联网的未来发展趋势,不依赖集中服务器,成长为透明的,自适应的,完全分布式的全球网络环境。

后记

访问YouTube的方法

IBM Rational Method Composer

IBM收购了Rational之后,RUP升级成了基于Eclipse的Method Composer,借助这个工具,能够自行定制RUP流程,然后发布到网站上,作为组织特定的流程库。对于需要剪裁定制RUP以适合自己组织需求的企业来说,这样的工具无疑方便了裁减定制工作,让RUP更容易的适合组织的流程需求。

试用IBM Rational Method Composer

这个工具是基于Eclipse的,熟悉Eclipse的朋友很容易上手,帮助系统是IBM一贯的风格,简洁而有用。参考帮助系统中的教程,简单的尝试了一下之后,创建了一个自己的Plugin,并发布了一个加入了该Plugin的流程库RUP for CKMM,这只是一个简单的尝试,证明了RMC的可用性,下一步,期望把CKMM中的流程元模型从SPEM升级到SPEM2之后,能够基于CKMM的元模型来开发自己的Plugin,并定制出适合CKMM元模型的流程库。

跨平台的图形工具库

每种操作系统平台都有自己的风格和图形工具库,Windows有MFC,MacOSX有Cocoa和Carbon,而Linux则有GTK+和Qt。但是,也有专门开发的跨平台工具库,其中最著名的是Tk和wxWidgets。跨平台的工具库不但需要能够跨平台运行,还要能够在目标平台上行为良好,看起来不要象外星人,而应该象本地居民一样,融入本地的风格和行为习惯中。加上这些要求之后,这个列表就剩下GTK+, Qt, Tk和wxWidgets了,其中,源于Tcl扩展的Tk图形库,因为历史的原因,默认为选为流行脚本语言的默认图形库,如Perl和Python的默认跨平台图形库。然而,随着脚本语言对wxWidgets的接纳,如wxperl和wxpython这样的脚本语言同wxWidgets的绑定库使得用脚本语言写重量级的图形应用程序成为可能,这样的例子包括Perl语言的集成开发环境Padre,Python语言写的文本编辑器Editra等等。

选择跨平台工具库

在文档Cross Platform GUI Toolkits中,我尝试分析跨平台工具库的技术,社会以及趋势方面的因素,让大家得到一个相对清晰的视图,以了解各种图形工具库的优势和弱点,以便给出选择图形工具库的指引。

就我目前的实践经验和知识,能给出的建议如下:

忽略Tk,重量级或嵌入式开发用Qt,低成本脚本语言开发用wxWidgets

为了让非技术人员也能够开始使用版本控制系统,特地添加了一份多图版本的RapidSVN使用说明,用看图说话的方式引导大家入门。期望有了这样一份说明,有更多的人能够开始使用版本控制系统管理协作编写的文档了。

请参考如何使用Rapid SVN 客户端?

场景

假设你有一个能够用ssh远程连接的境外服务器的账号,比如Dreamhost或其他托管服务商的虚拟主机或远程管理账号,同时,由于生在伟大的防火墙的防护之下,苦恼于某些网站被屏蔽了,而没有办法访问。这时候,参照本文提供的方法,就可以借助这个境外服务器作为代理服务器,突破伟大防火墙的封锁,访问到想看的内容了。

用ssh来作为SOCKS server.

ssh -D 5566 username@remote.server

用你自己的用户名和服务器名来替换上面的username@remote.server,然后配制你的浏览器使用SOCKS协议,能够支持V4或V5版本。下面用firefox浏览器作为例子:

  1. 打开firefox浏览器,在地址栏输入: about:config,然后按回车; socks.png
  2. 在过滤栏(Filter)输入: proxy
  3. 找到下面四个选项,并做如下修改:

network.proxy.socks127.0.0.1
network.proxy.socks_port5566
network.proxy.socks_version5
network.proxy.type1

然后,点击http://www.whatismyip.com/,如果看到的IP Address是远程服务器的地址是一样的(而不是你本机的IP地址),那么,恭喜你了,设置已经成功了。

现在,我们试一试之前没办法访问的网站,比如: http://codelite.org,现在,不但能够浏览到网站的内容,而且,浏览的速度也提高了。

更新: 将上面参数设置部分中默认的SOCKS协议由4修改为5,原因见这里

Recent Comments

Recent Assets

  • architecture.png
  • EA-ManagementFramework.png
  • mt4.png
  • search.png
  • reposhosting.png
  • redmine.png
  • wiki.png
  • motion.png
  • forum.png
  • eprints.png
OpenID accepted here Learn more about OpenID