[關閉]
@ghosert 2014-11-02T14:46:36.000000Z 字數 11148 閱讀 19524

Ubuntu桌面生存指南 (3) --- 構建Ubuntu系統基礎設施

Ubuntu


Ubuntu系統的基礎設施

任何一個高可用的操作系統,必須解決以下幾個重要的問題:

  1. 系統易于安裝升級
  2. 軟件豐富,完備
  3. 便捷的系統備份與恢復
  4. 硬件驅動完善
  5. 突破墻的封鎖(中國特色問題)

這一節中,我們將討論從頭開始搭建一個基礎設施完善的 Ubuntu 系統。主要包括基于 Ubuntu 系統的安裝,分區方案,顯卡驅動安裝,翻墻相關的一些技巧和同步軟件(Dropbox)等基礎性軟件的安裝方法。在夯實了這些基礎之后,我們也為未來的系統備份,恢復做好了準備,提高了系統的圖形處理性能,解決了在不同機器,不同系統間的文件同步問題,同時突破墻的封鎖,進一步方便我們日常的工作學習,極大提升系統的可用性和災難恢復能力。

從U盤安裝系統

上一篇 博客中我們提到過,雖然 Ubuntu 的發行安裝方式眾多,我們仍然推薦從硬盤開始安裝。另一方面比起光盤,相信很多同學也了解U盤的優勢:易于攜帶,保存,復制。這里不再敷陳,我們就從制作啟動U盤說起。

1. 下載 Ubuntu ISO 文件

訪問 Ubuntu 的 官方下載 頁面,選擇相應版本。一般而言它的版本有桌面版,服務器版,32位,64位,LTS,非LTS之分。所謂 LTS(Long Term Support)指的是長時間支持版本,并不是每一個新版本的 Ubuntu 都是 LTS 版本,譬如,最新的 12.10 版本就不是 LTS 版本,12.04 就是 LTS 版本,12.04 之前的 LTS 版本要追溯到2010年4月發布的 10.04,同時主版本號代表發布的年份,次版本號代表發布的月份,例如:12.04表示2012年4月發布。一般來說,推薦下載最近的 LTS 版本會得到更好的官方支援。這里我們推薦安裝 12.04 的64位桌面版(命名方式:ubuntu-12.04.1-desktop-amd64.iso),官方支持長達5年之久,基本上已經超過了用戶當前硬件的預期使用壽命,也就是說你在換下一臺PC之前無需更換操作系統。如果官方站點的下載速度較慢,你也可以搜索國內的一些鏡像網站加速下載過程。譬如 網易鏡像

2. 從 Windows 制作啟動U盤

在 Windows 下訪問 Universal USB Installer 的主頁,這個Ubuntu官方推薦的綠色小工具就是幫助用戶在手頭沒有 Ubuntu 的情況下,使用 Windows 來制作啟動U盤。這個頁面不僅包括了工具的下載鏈接,同時也包含了詳細的操作步驟,同學們準備好1G容量以上的U盤和剛才下載到的ISO文件,按部就班操作即可。制作U盤的時候注意相應的選項,按我個人的經驗它制作出的啟動U盤質量相當高,甚至超越了Ubuntu下自帶的工具。

Universal-USB-Installer

3. 從 Ubuntu 制作啟動U盤

如果你手頭有一臺安裝完畢的 Ubuntu 系統,你也可以通過啟動 Startup Disk Creator 這個系統自帶的工具制作啟動U盤。注意如果你是跨版本的制作相應的啟動盤可能會存在問題,筆者曾經在Ubuntu 10.04下使用這個工具制作基于12.04 ISO的啟動盤,結果啟動盤無法啟動電腦,花了一個晚上才搞清楚原來是跨版本引發的問題,最后切換到 Windows 下的 Universal USB Installer 才解決問題。

startup-disk-creator

4. Ubuntu 分區推薦方案

在安裝之前,我們先分析一下 Ubuntu 桌面系統的分區方案。

要了解分區方案,先從 Linux 系統的目錄結構說起。使用 Windows 系統的用戶都知道,Windows 系統先有分區的存在,然后在不同的分區下創建文件目錄結構。于是我們看到諸如 C:\Windows D:\Downloads 之類目錄,也就是說每一個目錄首先是存在于某個分區的。Linux 系統則相反,它首先確定有目錄的存在,例如:/, /usr, /media/usb,/media/cdrom, /disk 然后才確定這個目錄上掛載的是哪個分區(甚至掛載的可能是CDROM, USB等外設以及ISO光盤鏡像文件:類似 Windows 下虛擬光驅的作用)。訪問某個目錄,實質上就相當于訪問掛載在這個目錄上的分區,外設或者光盤鏡像文件。我們在 上一篇 博客中提到過一個系統存儲重要數據的目錄: /home 目錄, 在通常的最佳實踐中,可以把這個 home 目錄作為一個單獨的掛載點,掛載一個獨立分區。這樣做有幾個好處:

  1. 系統分區如果損壞,幷不影響到 /home 分區所在的數據。這些數據通常非常重要,包括有你常用的軟件,重要的文檔以及各類軟件的配置信息,反過來我們也鼓勵把重要的數據存放在 /home 目錄下,使得他們保存在系統分區以外的分區,避免因為系統的問題受損。
  2. 在重裝系統,或者升級系統以后,/home 分區的數據可以得到保留,最大程度的避免了軟件安裝和重新配置的耗時工作。
  3. 在日常備份的工作中可以選擇只備份 /home 分區所在的數據,避免做全盤的備份。

我自己就曾經因為在兩年前安裝Ubuntu 10.04的時候只分了一個分區,把 /home 目錄下的數據和系統文件存儲在了同一個分區下,導致在安裝Ubuntu 12.04的時候,在沒有第二個分區和第二臺電腦用來備份/home目錄數據的情況下,忍痛將整個系統連同/home目錄里的數據全部格式化,損失慘重,教訓深刻。

所以一般來說一個 Ubuntu 的系統在安裝之初應該有三個分區,他們分別是掛載于根目錄: /, home目錄: /home 的兩個分區以及 swap 分區。swap分區是指虛擬內存的交換區,一般設置為實際內存容量的兩倍大小即可。

假設你有一臺500G硬盤,2G內存的PC,那么比較好的分區分配方案是:根目錄所在分區分配50G左右, swap分區分配4G,剩余空間全部留給 /home 所在分區即可。

5. 安裝注意事項

在安裝之前,記得備份本機重要數據。在電腦上插入啟動U盤后,選擇從U盤啟動計算機:大多數電腦可以在出現啟動畫面的時候按F12選擇啟動媒介,此時選擇U盤即可。之后一路安裝 Ubuntu 會比較順利,但是以下幾個地方仍然需要注意:

  1. 在 Installation type 界面選擇 Something else 選項,這樣你才有機會調整,保留現有分區以及分區上的數據,并將多個分區掛載到同一個系統的不同掛載點(上文所述的根目錄和home目錄)【推薦】。
  2. 選擇 ext4 文件系統格式作為 Linux 的文件系統格式。
  3. 三個分區大小可按上個小節分配,根目錄分區大小不必過大,50G至多,如果硬盤本身不大,只分配15G問題也不大。大多的數據應該存放在 /home, 因此 /home 所在分區應該足夠大。
  4. Installation type 界面中 Device for boot loader installation 選項列表中記得選擇硬盤所在條目一般是:/dev/sda,筆者安裝 12.04 時因為不慎選擇了 USB 所在媒介:/dev/sdb 導致安裝完畢后只有插著USB才能啟動系統,悲劇!

大致的效果圖如下(忽略分區尺寸一項,隨意填的)

installation-type

高速下載軟件---關于Ubuntu源

1. 官方Ubuntu源

安裝完系統以后,我們來聊聊軟件安裝的問題。之前,我們說到通過強大的 apt-get 命令從網絡上下載,安裝軟件的方式,而運行這個命令時,系統又是通過查詢軟件所在的 Ubuntu源 來了解從互聯網的什么地址去下載軟件,那么對于動輒上百兆或者數量繁多的軟件來說,從你的 PC 到 Ubuntu源 之間的網速就決定了你安裝下載軟件的速度。一個新安裝完畢的系統,默認選擇的是美國服務器作為 Ubuntu源,因此我們需要選擇更快的國內鏡像作為系統的源來下載安裝軟件。具體步驟:

  1. [email protected]-pc:~$ update-manager

但實際上,考察一個源是不是足夠好,光看速度并不正確,有時一個速度很快的源如果缺少某些軟件,仍然會造成困擾。按筆者的經驗,在國內可以直接選擇http://ubuntu.cn99.com/ubuntu這個源,速度快,源里的軟件也相當齊整。選擇完源以后,再次打開終端,輸入以下命令更新系統現有的軟件:

  1. [email protected]-pc:~$ sudo apt-get update
  2. [email protected]-pc:~$ sudo apt-get upgrade

2. 第三方Ubuntu源

以上我們講到的都是Ubuntu官方的源或者官方源在國內鏡像,除此以外,Ubuntu也允許第三方制作第三方源以擴充軟件的數量。但是如果你選擇第三方源,官方并未對其中的軟件進行過測試,也不保證軟件的質量,系統兼容性等問題。反過來說如果你開發的軟件進入了官方源,這是一種莫大的榮譽,它首先肯定了你軟件的質量,其次也擴大了軟件受眾的數量,并且經過了官方認證和測試。

假設你現在需要安裝 Wine 這個軟件------主要用來在 Ubuntu 下運行 Windows 的可執行文件。雖然這是一個合法的軟件,但是 Ubuntu 官方沒有可能在自己的源中加入一個可運行專利程序的軟件,因此你需要自己去加入包含有 Wine 這個軟件的第三方源,打開終端,運行:

  1. [email protected]-pc:~$ sudo add-apt-repository ppa:ubuntu-wine/ppa
  2. [email protected]-pc:~$ sudo apt-get update
  3. [email protected]-pc:~$ sudo apt-get install wine

3. Canonical合作伙伴的源

Ubuntu的母公司Canonical另外還有一些合作伙伴,例如在 Ubuntu 12.04 上,如果你需要安裝 skype,可以加入這個合作伙伴的源,然后進行安裝。

按照上面的步驟打開update-manager以后,仍舊點擊Settings按鈕,進入Other Software選項卡選中“Canonical Partners”和“Canonical Partners(Source Code)”加入合作伙伴源,接著運行:

  1. [email protected]-pc:~$ sudo apt-get update
  2. [email protected]-pc:~$ sudo apt-get install skype

個人建議在系統安裝完畢以后按此步驟加入這個源,方便以后的軟件安裝。

顯卡驅動安裝

默認情況下,Ubuntu在安裝完成以后,可以認出絕大多數的硬件,并不需要特別的設置。唯一例外的是,如果你無法開啟某些窗口特效,意味著系統自帶的驅動無法和你的顯卡很好的匹配,這個時候你需要去手工安裝顯卡驅動。我們以 nvidia 的顯卡為例,介紹一下顯卡驅動的安裝方法:

1. 訪問 nvidia 官網 下載最新的驅動程序

假設下載文件名為:NVIDIA-Linux-x86_64-304.60.run的64位顯卡驅動程序

2. 設置下次系統啟動后,只運行在終端下,不啟動 GUI 系統

就和在Windows下,系統要求你在保護模式下安裝某些軟件類似,安裝顯卡驅動的時候,系統也往往要求在完全的終端里,不帶任何圖形界面的模式下,因此我們需要讓系統下次啟動的時候進入終端模式,這里我們第一次需要修改系統的配置文件,在使用 Linux 系統的時候,今后我們會無數次的通過修改基于文本的配置文件來設置我們的系統,因此掌握一個好的文本編輯器也至關重要,Linux下標配的文本編輯器是強大的 vi,如果你現在還不熟悉,沒關系,可以先使用 gedit,為了保持博客的專業性,我在今后的命令行中只使用 vi,讀者自行替換成 gedit 即可。

  1. sudo vi /etc/default/grub
  2. 找到 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 這一行,修改為 GRUB_CMDLINE_LINUX_DEFAULT="text"
  3. sudo update-grub
  4. sudo shutdown -r 0 #重啟電腦

3. 進入重啟后的終端,運行

  1. cd ~/Downloads/
  2. chmod u+x NVIDIA-Linux-x86_64-304.60.run # u代表當前用戶,x代表可執行權限,u+x即表示賦予腳本當前用戶的可執行權限
  3. sh NVIDIA-Linux-x86_64-304.60.run # 執行腳本

按提示完成安裝以后,仍舊將系統改回下次重啟時進入用戶圖形界面而非終端模式:

  1. sudo vi /etc/default/grub
  2. 找到 GRUB_CMDLINE_LINUX_DEFAULT="text" 這一行,修改為 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
  3. sudo update-grub
  4. sudo shutdown -r 0 #重啟電腦

Ubuntu視窗特效及思考

如果一切順利和系統匹配的顯卡驅動已經安裝完成了,如果想開啟一些視窗特效可以下載這個軟件:

  1. sudo apt-get install compizconfig-settings-manager
  2. ccsm # 運行compizconfig-settings-manager 設置特效

在Category->Effects里勾選上Wobbly Windows選項,還算一個很好玩的特效,在你拖動,最大化,恢復任何程序窗體的時候,會有夸張的扭動效果,幾乎每一個看到我桌面的人都會贊嘆一下。不過窗體特效畢竟是華而不實的玩意,不必花費過多時間在這個上面,在許多 Ubuntu 論壇里會有長篇累牘的文章介紹如何裝扮炫目的動畫效果,我只想反問:還記得我們使用 Linux 系統的初衷是什么?是高效的使用開發者系統,如果迷戀炫目的視覺效果,花費大量的時間精力去配置,一來有違初衷,二來也容易破壞系統的穩定性,歷來一個操作系統的軟肋就是GUI,開發最復雜,也最容易引發程序甚至系統崩潰,進而炫目的視覺特效實際上會導致低效的操作。例如漸變式的關閉或者開啟一個窗口,看上去很炫,實質上為了完成這個特效,窗口延緩了開啟或者關閉的時間,一兩次延緩不會造成什么損失,考慮到我們會在這個系統中生存幾十年,很可能有幾萬幾十萬次的延緩累加--那簡直就是浪費生命了。撇開這個例子不談,使用開發者系統追求高效的實質就是改進每一個微操作,通過改進哪怕只能節省幾百毫秒的操作,只要這些操作會被無數次的重復,然后累積這些節省帶來的效果,經年累月以后,都是驚人的節約。假設一個500人的公司,每個人每天因此可以受益5分鐘的時間,那么一年下來:500 * 5 * 251(工作日)/ 60(分鐘)/ 8 (一天工作小時) = 1307 天/人,相當于這500人在一年里節約出了5個人年的時間。

Ubuntu 12.04 在切換程序這個環節因為采用特效其實也出了問題,有一些倒退的味道。大家可以試試 "Alt + Tab" 這個常用的程序切換的快捷鍵。它默認的行為是先對同一類的窗口進行分組,然后如果用戶的切換動作在某一組窗口上略作停頓,系統才會展開這一組的窗口,繼而在這一組窗口中的每一個窗口間進行切換。表面上看分組的形式減少了我們之前談到的 視覺迷失 帶來的困擾,實質上又增加了每個切換間的停頓時間,破壞了用戶原本流暢操作的體驗,況且,如上所述,累積停頓帶來的后果也是不可承受的,而這里 視覺迷失 的問題其實又可以通過系統自帶的 虛擬桌面 來解決,也算不上大問題。因此我個人推薦按以下方法舍棄這種切換特效:

打開終端輸入:ccsm 啟動 CompizConfig Settings Manager, 進入 Windows Management,選擇 Static Application Switcher 可能會報一些快捷鍵沖突的警告,強制切換即可。

同步軟件及 Dropbox 的安裝

本來一個同步軟件不需要提前到這個章節來講,但是同步軟件在我們這個時代越來越重要,可以提升到基礎設施的高度來首先考慮。Ubuntu 的 apt-get 命令為我們解決了從云端下載軟件的問題,自此我們不需要關心軟件在哪里,只需要告訴計算機我們需要什么軟件,并且即使在本機崩潰的情況下,仍然可以從云端用同樣的命令下載軟件。在解決了軟件的問題以后,類似 Dropbox 的同步軟件則為我們解決了私人文檔的問題。無論你的計算機是否崩潰,也無論你在那一臺計算機前,公司的,家里的,甚至手機,平板上,只要你能夠接入互聯網,你就可以訪問自己的私人文檔。所以個人推薦把重要的文檔存入同步軟件方便訪問和恢復。當然需要頻繁修改和多人合作完成的文本文件就不在此列了,專業的 Source Control System 例如 git 命令提供了更好,更強大也更專業的功能,我們以后再談。也有同學會說為什么不使用系統自帶的 Ubuntu One 這個同步軟件?在一兩年前 Ubuntu One 的平臺支持僅限于 Ubuntu 系統本身,這就是一個軟肋,同步軟件的軟件性質本身就要求跨平臺,全平臺的支持,包括: Ubuntu,Windows,Mac,Android, iOS 因為我們不知道自己今后可能在哪個平臺下需要訪問某個重要的文檔。在書寫本文之時,再次訪問 Ubuntu One 的官網,發現已經全平臺支持同步了,因為沒有使用經驗,不敢妄論,Dropbox 筆者使用多年,對中國用戶來說,除了網速和GFW的問題,其它各方面均體驗良好。先介紹一下 Dropbox 這個軟件的安裝,之所以需要單獨講安裝,還是因為 GFW 的緣故,也順便講解幾個小命令。首先

1. 訪問 Dropbox下載 頁面,下載 Ubuntu 版本對應的 .deb 文件

2. 開啟終端,輸入安裝deb包的命令:

  1. sudo dpkg -i dropbox_1.4.0_amd64.deb

dpkg 是一個比 apt-get 更低階的安裝命令,apt-get 命令下載的就是 .deb 文件,然后調用 dpkg -i 進行安裝, 以上命令只是安裝了 Dropbox 的 GUI 殼,運行以后會繼續下載 Dropbox daemon 程序,由于 GFW 的阻撓,這個過程無法進行。讀者選擇退出 Dropbox 即可。

3. 手動下載 Dropbox daemon

32-bit:

  1. cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf -

64-bit:

  1. cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -

解釋一下:cd ~ 就是進入 home 目錄, && 是指在 cd ~ 成功以后,繼續下一個 wget 的命令。 wget 會去后面 https 起首的地址下載 Dropbox daemon 的壓縮包,之后再通過 | 把壓縮包傳遞給 tar xzf - 這個命令進行解壓的操作。如果讀者暫時無法理解,也沒關系,直接把上述命令復制粘帖進終端即可。

4. 再次啟動 dropbox

打開終端,輸入:

  1. dropbox start

至此,安裝完畢,按筆者目前的網絡環境,在安裝以后,最新的 Dropbox 版本可以正常使用,無需修改任何配置,所有以 https 起首的 dropbox 網址也可以在瀏覽器中沒有限制的訪問。所以只要按上述步驟解決安裝的問題就可以了。筆者沒有測試所有網絡環境下的條件,如果還有問題,可以在博客評論中描述狀況,本人負責做力所能及的解答。

如果對 Dropbox 感興趣,可以通過本人帳號的推廣鏈接創建帳號:http://db.tt/oNnbpla 你我各自增加 500M 的空間大小,惠己利人。

同步軟件使用經驗

雖然筆者在此處推薦 Dropbox, 讀者也可以自行選擇其他同步軟件,下面繼續分享一下我自己在 Ubuntu 上使用同步軟件的體會。

1. 在云端保存基于單一文本的Linux知識

我們前面提到為了提升使用計算機的效率, Linux 系統是需要花費腦力學習,研究的系統,每一個用戶親身獲得的技巧,知識,例如:一種配置方法,一個命令用法,往往這些東西都很零碎且不易記住。俗話說:好記性不如爛筆頭,所以我們可以使用文本去記錄這些知識片段,記錄的時候不要求完整全面,反而應該描述簡潔,步驟清晰,提供有價值的參考。這樣一旦遇到問題就可以在經過摸索以后把解決的方案寫入這個文本,以后遇到類似的問題,即便忘記了命令,步驟,再次搜索這個文本即可。基于單一文本的云端保存優勢明顯,它可以在任意計算機上被任意程序閱讀,修改和搜索,搜索優于導航的理念使得我們也不再組織各種文件目錄去保存這些知識:在增加知識的時候,你無需煩惱如何整理分類某一個技巧,在查詢知識點的時候,也無需到不同的目錄去翻閱,只在單一文件中做搜索工作。增加文件或者樹形結構的目錄在某些情況下只不過是增加了導航的成本,而如果我們化繁致簡,那么我們花費的記憶成本就只有一個文件路徑而已,其它的事情,全都教給搜索去打理。不僅于此,做任何事的時候,謹慎的增加事物的復雜度以保持簡單的特性才能避免混亂的局面,即所謂的 KISS 原則,Keep it simple, stupid!

2. 在云端保存一個軟件安裝的腳本

apt-get 作為命令行安裝軟件的一大優勢就在于可腳本化幷反復運行。每次運行 apt-get 下載安裝一個軟件以后,都把這一句 apt-get 命令保存在腳本文件里,這樣,一旦發生系統崩潰的情況,只需要在全新安裝后的系統上重新運行這個腳本,就可以恢復我們系統上曾經安裝的軟件。更進一步,如果我們有編譯安裝軟件的步驟或者定制系統的工作都可以用命令行的形式固化在這個腳本中,用以今后恢復系統。實踐上,我自己將這個腳本的內容和上述第1點的知識文檔合二為一,所有的知識文本以注釋的形式存在于這個系統恢復腳本中。因此這個腳本既可以用來恢復系統,也可以用來記錄,查詢知識點,當然為了方便使用,這個腳本也需要時時刻刻的更新和維護以保證最大的正確性和可用性。以下是摘自我個人腳本中的片段:
ubuntu_install_guide.sh

  1. #!/bin/sh
  2. cd ~
  3. sudo apt-get update # This is very important step to update system first.
  4. # install gcc/g++ first
  5. sudo apt-get install gcc -y # if there is no gcc, do this first.
  6. sudo apt-get install g++ -y # if there is no g++, do this first.
  7. # install gvim
  8. sudo apt-get install vim-gnome -y
  9. ......
  10. ......
  11. ......
  12. # XXX Tips:
  13. # Visit http://www.google.com/ncr to make sure no country redirection, this will resolve some issues on resetting google-search-result(by GFW or ISP).
  14. # XXX Tips:
  15. # Start gvim from terminal and get global menu in Ubuntu 12.04: gvim -f filename
  16. ......
  17. ......
  18. ......

3. 在云端備份 home 目錄下重要的配置文件

在重新恢復一個系統的時候,除了軟件的恢復可以通過上述云端的腳本,另外還有一個重要的東西就是軟件的配置文件。由于 Linux 軟件的高可定制化,許多高效率的用戶之所以可以靈活駕馭 Linux 系統,實際上是花費了大量的時間在適應軟件,或者調整軟件的配置來適應自己,達到人機合一的境界,而一旦切換到別人的環境上,由于人與人之間習慣的不同導致配置的不同,效率立刻就下降幾個數量級,甚至根本在別人的環境里無法工作。因此丟失配置文件對于高效用戶來說,就相當于丟失效率,必須從頭開始花費心力去配置軟件,損失大量的時間,而與用戶相關的配置文件一般都會存放在 home 目錄,因此及時備份這些數據到云端就顯得尤為重要了。一來可以在安裝完軟件以后恢復這些配置文件,二來我們也可以通過云端在不同計算機上共享這些配置,無需在多個計算機上反復進行相同的配置工作。一般來說,這些文件都以 . 起首的隱藏文件形式存在,可以使用以下命令查看

  1. ls -al ~

例如:.vim .vimrc 保存了 gvim 的配置信息, .mozilla 保存了 firefox 的配置信息,等等。

4. 在云端存儲其它重要的文檔,電子書,音樂,圖片等等

這個是同步軟件的基本用途,不再敷陳。

綜上所述,現在我們的云端帳號里存儲了所有安裝軟件的命令,所有軟件的配置文件以及我們記錄下的所有Linux的使用經驗,技巧,知識。有了這些東西,即使面對一臺全新的計算機,只要首先保證云端的數據都傳回本地,就不難很快地再次把它恢復成自己最順手的系統。

沒有墻的 Ubuntu

由于GFW的存在,無法自由的接收和發送訊息,這是 Ubuntu 基礎架構必須面對的另一個問題,我們就此討論一種基本的翻墻方法。假設我們的計算機 A 需要訪問計算機 B,然而由于墻的阻隔無法達成,因此我們需要首先找到 計算機 C,并且滿足A 和 C, C 和 B 之間互相可訪問,這樣,借助計算機 C 作為代理,就可以實現 A <-> C <-> B 的 A B 之間可訪問。這就是我們翻墻方法的基本原理。

假定我們找到了這樣一臺代理服務器 C(可以通過淘寶購買?),這里又有兩種狀況需要考慮:

  1. 通常成熟的帶 GUI 的軟件,譬如 Firefox,IMs 軟件等等,都會在設置中包含代理服務器選項,你只需要填入代理服務器的地址即可。
  2. 基于命令優于圖形化界面,我們又有許多命令行軟件例如:wget,git,w3m,apt-get 需要連接互聯網才能運行,一旦目標地址有墻的阻隔,又沒有辦法像 GUI 軟件那樣設置代理服務器那就成問題了,好在 Linux 早就為我們解決了這個問題,打開終端,輸入:
  1. sudo apt-get install proxychains -y
  2. sudo vi /etc/proxychains.conf
  3. 注釋掉文件中最后一行:socks4 127.0.0.1 9050
  4. 幷在文件最后追加一行:socks5 proxy_ip_address port

通過安裝 proxychains 這個軟件,同時我們在它的配置文件 /etc/proxychains.conf 中加入了代理服務器的 ip 地址和端口號,這樣我們就可以要求任意被墻阻斷的命令行軟件通過代理服務器連接互聯網了,使用方法也很簡單,假設我們需要下載 facebook 的主頁,就可以運行:

  1. proxychains wget http://www.facebook.com

即在任何命令行前首先加注 proxychains 這個命令。

設置本地計算機為代理服務器

假設目前我們沒有代理服務器 C,但是另外有一臺裝有 ssh server的國外主機 D,這個時候我們可以在本地計算機和國外主機 D 之間建立 ssh channel,然后通過這個 channel 把本機設置為代理服務器,所有通過本機代理的請求都會被再次轉發到國外主機 D,再經由 D 訪問最終的目標地址,最后再把結果回傳給本地程序。具體步驟,打開終端輸入:

  1. ssh [email protected]_d_ip_address -D 127.0.0.1:7070 # 建立 ssh channel,并且不要關閉這個終端或者退出 ssh

此時本地 127.0.0.1:7070 這個地址端口已經具備了類似代理服務器 C 相同的作用,你只需要在任意 GUI 程序的代理服務器選項上填入 127.0.0.1:7070,或者在上述 /etc/proxychains.conf 文件最后追加一行

  1. socks5 127.0.0.1 7070

即可讓 GUI 或者命令行程序通過代理服務器連接互聯網。

未完待續......

添加新批注
在作者公開此批注前,只有你和作者可見。
回復批注
湖北快三遗漏