雜七雜八

以淘汰電腦安裝 Linux 做為伺服器分享 ADSL 的頻寬

以淘汰電腦安裝 Linux 做為伺服器分享 ADSL 的頻寬

最近更新時間: 2002/01/27

這些文章只是捨不得丟的資料,並不是什麼需要特別閱讀的!尤其是文章內容超級舊! 所以,大家看看就好!千萬不要學喔!哈哈哈!

目的與適用性

目的:
就如同前面所說的:
  • 直接以 Hub 連線進行分享的好處是簡單,但是缺點則是缺乏彈性。因為連線電腦的上限被限制在你的 ISP 所提供的連線數,例如中華電信僅支援兩個 IP 給一個帳號使用,Seednet 雖然可提供 5 個 IP ,但是對於學生宿舍族群來說,畢竟還是不夠的!
  • 若使用 Windows2000 做為伺服器分享頻寬,又礙於 win2000 需要的高檔配備!否則跑不動的啦!
  • 現在電腦進步的很快,很多人手邊都有一些廢棄的電腦。
因此,將廢棄電腦拿來當主機,嘿!是一件非常棒的利用方式!不過,以目前的主機系統來說,我們可以將他約略分成兩大類,分別是 MicroSoft 的 NT 系列( Windows 2000 也是屬於 NT 系列的喔!)與 Unix-Like 如 Linux 、 Solaris 、 FreeBSD 等等都是!好了,我們都知道要使用 Windows 作業軟體時,整體的硬體系統就不能太差,否則電腦的執行速度一定讓你等到肝火上升,所以,為了您的健康著想,這個時候安裝 Windows 在廢棄電腦上面,似乎不太妥當。OK!那另一個 Linux 系統如何呢?哈哈!他只要 p-100 等級的 CPU 加上 32 MB 左右的 RAM 就可以跑了!而且在『不執行 X-Window 』的情況下,執行的效率是不錯的!所以,以下我們就來談一談怎樣在 Linux 上面架設一個 NAT 主機來提供網路的頻寬分享!
原理:
以 Linux 伺服器連接上 Internet 的原理其實很簡單(其實就是 NAT 功能啦),主要分為兩步驟:
  • Linux 主機強烈建議需要兩張網路卡,而且晶片組最好不要相同。如果相同也沒有關系,但是不要一次安裝兩塊,最好安裝一塊並設定好之後,再安裝另一塊比較妥當;
  • 一張網路卡對內,並在啟動的時候就驅動;
  • 一張網路卡對外,在啟動的時候不要驅動他;
  • 在 Linux 上面安裝 rp-pppoe 來撥接上 Internet ;
  • 將內部網路與 Linux 對內的那張網路卡具有相同網段的『 虛擬IP 』,由於相同網段的虛擬IP可以直接連線,因此所有的電腦就可以直接連上主機啦;
  • 啟動 Linux 的 NAT 功能,將對內網路卡的對外連線轉成可以連上 Internet 的第一張網路卡,因此所有來自內部網卡的要求便都可以透過具有連上 Internet 功能的第一張網路卡來完成工作!
同樣的,這裡要注意,由於所有的虛擬IP的電腦均是透過第一張網卡對外連線,所以在 Internet 上看到的從你的主機連出去的電腦之 IP 都是同一個(就是對外網路卡的 IP 啦)。
優點與缺點:
使用 Linux 來架設 NAT 主機,優點是:網路的傳輸速度很快,比 Windows 2000 的分享還要快。另外, Linux 主機有相當多的附加價值,不但可以作為郵件主機、WWW主機、FTP主機,並且可以作為你區域網路的中心站!此外, Linux 是一套管理記憶體很好的作業軟體,所以平時沒有大量工作的時候,CPU是在待機的狀況,所以並不會發生高熱(就是說比較不會當機啦)!在 VBird 家中的 P-166 超頻至 P-200,連續開機到目前(從 2001/02 到目前)沒有關機過,使用上一切正常!不過缺點就是學習 Linux 的時間需要比較長一些,而且對於用慣了 Windows 並且沒有學過程式語言的朋友來說, Linux 倒真的是很難入門!然而,如果您只是需要安裝一個可以轉換 IP 的 NAT 主機,那麼照以下的步驟一步一步來,呵呵!也是可以達成你的需求啦!
適用性:
  • 同時適合 ADSL 固定制與計時制;
  • 可連接的電腦數量比較多(理論上可達無限多部電腦的連接)
  • 做為 Linux 主機的電腦不可關機,且開機後即需要連上 Internet,
  • 其他用戶端電腦開機後立即直接連上 Internet ,而不用再撥接!
所需要的軟硬體配備:
  • 一台淘汰的電腦(最好是 P-100 以上等級,32MB以上RAM,2GB硬碟即可);
  • 個人電腦(PC);
  • 網路卡(每部電腦均要一塊,但做為主機的 Linux 需要兩塊);
  • 正常的 RJ-45 網路線(連接電腦與Hub及主機);
  • 一條跳線(連接主機與ATU-R)
  • 集線器(就是 Hub 啦);
  • ADSL (連同 ATU-R)。

Linux 所需硬體與安裝 Linux 所需套件

OK!既然我們使用的是『即將被淘汰的電腦』也就是 P-166 以下等級的電腦(當然可以選擇更好的,這裡僅說明最低的硬體配備啦!)那我們需要怎樣的硬體呢?以 VBird 來說,我建議的配備有點像這樣:
  • P-166 左右等級的 CPU + 適合的主機板:基本上, 486 電腦也可以安裝沒問題的!
  • 至少 32 MB 以上的 RAM :建議最好可以加到 64 MB 以上的 RAM !其實,在 Linux 主機上面,CPU 往往不是重點,最大的問題應該是出現在 RAM 上面,所以,如果你的主機除了 NAT 功能外,還要進行一些哩哩摳摳的伺服器(例如 mail 與 proxy 等等),那麼建議 RAM 是越大越好!
  • 容易支援的網路卡:目前最建議的是使用 10/100 MB 的螃蟹卡,這種卡不但便宜,而且 Linux 的支援度蠻高的!另外,第二塊網路卡建議使用 via-rhine 這個晶片的網路卡,因為這個晶片 Linux 也有支援喔!
  • 大於等於 500 MB 的硬碟:基本上,如果你未來知道如何安裝 Linux 之後,只要 200 MB 的硬碟就可以進行 NAT 的架設了。但是由於 VBird 也不是很會挑選這個東西,所以目前建議大約 500 MB 的硬碟來進行安裝才好!
  • 隨便一塊 PCI 的顯示卡:目前最建議的是 S3 的顯示卡,例如 Virge 系列,或者 S3-775 系列等等的顯示卡都可以喔!
  • 安裝時需要的 CDROM、鍵盤與滑鼠:這幾個東西在安裝的時候是必須的,但是安裝完畢之後就可以拔掉了!不過,在 BIOS 當中,需要將 ERROR 設定成『 NO ERROR 』或者是『ALL but Keyboard』才行!甚至,你連顯示卡都可以拔掉!因為根本就不需要顯示呀!(呵呵!所以除了安裝過程當中需要螢幕,安裝完畢之後,你的 NAT 主機是不需要螢幕、鍵盤、滑鼠、CDROM 及顯示卡的喔!
好了,確認完你的硬體之後,開始要來安裝囉,如果要瞭解每一個步驟代表的意義,那麼請到 鳥哥的私房菜館 來看看,底下僅列出需要注意的幾個步驟囉(底下先以一塊網路卡來安裝喔!):
  • 確認系統可以被支援:盡可能的找到 Linux 可以支援的界面卡,例如 VBird 上面推薦的幾張卡,這樣在安裝的時候比較簡單;
  • 下載可開機的 Linux 光碟:由於 VBird 都是使用 Red Hat 這個公司出的 Linux 套件,所以我推薦他,你可以在 中山大學 FTP 站 找到相關的檔案(請下載有 i386 的那兩個檔案),下載完畢之後,可以使用類似 Nero 的檔案將這個映像檔燒錄成可以開機的光碟!
  • 修改 BIOS 設定:通常,如果你的主機板可以設定為 CDROM 開機的話,呵呵!那麼恭喜你,你可以進入 BIOS 當中,設定使用 CDROM 來開機,並馬上進入安裝畫面,如果沒有辦法的話,那麼只好製作可開機的軟碟囉!製作開機軟碟的方法如下:
    1. 隨便找一部 Windows 電腦,並放入剛剛燒錄完成的光碟片;
    2. 進入 MS DOS 模式(或者是 windows 2000 的命令提示字元),

    3. C:\WINDOWS> cd   E:\dosutils
      上面的 E 為你的光碟機代號;
    4. E:\dosutils> rawrite   -f   e:\images\boot.img   -d   a:
  • 開機,並進入 text 模式安裝:不論使用光碟或者軟碟開機都是一樣的!會出現一個指示的話面,這個時候請輸入 text 則可以進入文字模式安裝,安裝的過程:
    1. 選擇語系為『 English
    2. 使用鍵盤為『 us keyboard
    3. 使用滑鼠為,由於我沒有安裝滑鼠,所以選『 No
    4. 選擇安裝模式為『 Custom 』自訂安裝
    5. 使用的硬碟分割工具為『 Disk Druid 』,開始進入硬碟分割畫面,我的動作都是先將所有的硬碟都 delete 掉,然後分割 64 MB 給 swap ,將所有的 500 MB 都分割給 / 即可!
    6. 開機的選項,我喜歡使用『 Lilo 』這一個;
    7. 安裝啟動磁區,呵呵『/dev/hda  MBR(Master Boot Record) 』這一項囉;
    8. 要不要在核心輸入其他的設定『 OK 』直接跳過;
    9. Network Card 要設定喔!(這一個是對內(eth0)卡喔)

    10. IP=192.168.1.2
      NetMask = 255.255.255.0
      Gateway = 192.168.1.2
      DNS = 139.175.10.20
    11. 主機名稱 hostname 『隨便你取囉』;
    12. firewall 防火牆的設定,呵呵,選擇『 No Firewall 』吧!
    13. 選擇語系,不希望有中文,所以選擇『 English
    14. 選擇時區,那就是『 Asia/ Taipei
    15. Pass Word 的輸入;
    16. 設定使用者 ID :先不要設定囉!
    17. 加密的幾個重點,都不要改啦!保持預設值;
    18. 套件的選擇:這裡最重要了,你只要選擇底下這幾個即可:
      1. Network Support
        Dialup Support
        Messaging and Web Tools
        Router / Firewall
        Network / Managed Workstation
        Utilities
      這幾個套件選擇完畢之後,大概需要 366 MB 的空間吧!
    19. 照螢幕顯示一步一步安裝吧!
    這樣子就安裝完畢了!在你開機完成之後,就可以使用 root 的身份登入 Linux 主機囉!

安裝第二塊網路卡

怎樣安裝第二塊網路卡呢?就是將 Linux 關機囉,然後安裝第二塊卡,然後開機,然後就可以自動的被捉到囉!如果無法被自動的捉到,那麼就麻煩了!請參考這一篇看看如何安裝第二塊網路卡吧!
連上 Internet
另外,全部的硬體連接之後是怎樣呢?可以這樣看:
  • 先將 Linux 主機以跳線將第一張網路卡與 ATU-R 數據機以『跳線』連接;
  • 將第二張網路卡安裝上 Linux 主機,並以正常的 RJ-45 網路線連接上 Hub 的正常孔;
  • 將所有其他電腦安裝上網路卡後,並將網路卡與 Hub 的正常孔以正常的 RJ-45 網路線連接;
  • 開啟 Hub 電源,並開始 windows 的設定。(注意,並沒有用到 Hub 的 Up-Link 孔)
  • 如果你有兩個以上的 Hub 的話,以正常線連接第一個 Hub 的 Up-Link 孔,並串接到第二個 Hub 的正常孔就可以了。
所有硬體連接完畢之後就會像底下的圖示這樣!

在 Linux 上面的 ADSL 撥接方法

在 Linux 上面撥接到 ADSL 計時制是使用 rp-pppoe 這一個套件至於 Red Hat 7.2 VBird 建議使用 rp-pppoe-2.6.5 這一個版本就可以囉!安裝的步驟可以直接以 rpm 來安裝即可;
那如何撥接呢?詳細的步驟我寫在 這裡 了,簡單的很:
 
step 1:
[root@tsai /root]# /sbin/ifdown eth0
[root@tsai /root]# /usr/sbin/adsl-setup
假設我們以第一塊網路卡連上 ADSL ,所以先斷掉 eth0 的連線!

step 2:
>>> Enter your PPPoE user name (default bxxxnxnx@sympatico.ca):
這個時候請輸入你在 ADSL 的帳號,
如果是 seednet 的話,應該有點像這樣==> T0123456
注意大小寫喔!

step 3:
>>> Enter the Ethernet interface connected to the ADSL modem
For Solaris, this is likely to be something like /dev/hme0.
For Linux, it will be ethn, where 'n' is a number.
(default eth1):eth0
因為我們使用 eth0 連線的呀!

step 4:
>>> Enter the demand value (default no):
這裡按 enter 不用設定就好了!

step 5:
>>> Enter the DNS information here: 139.175.10.20
>>> Enter the secondary DNS server address here: 163.28.112.1
這裡要你輸入慣用的 DNS 主機,若使用 seednet 的話,可以打入
139.175.10.20
若在台南地區的話,可以使用成大的 DNS => 163.28.112.1

step 6:
>>> Please enter your PPPoE password:
>>> Please re-enter your PPPoE password:
這裡就輸入你的 ADSL 密碼啦,要輸入兩次喔!

step 7:
The firewall choices are:
0 - NONE: This script will not set any firewall rules.  You are responsible
          for ensuring the security of your machine.  You are STRONGLY
          recommended to use some kind of firewall rules.
1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation
2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway
                for a LAN
>>> Choose a type of firewall (0-2):0
這裡要你選擇 防火牆 的形式,通常我是不設火牆的,
所以直接選 0 就對了!

step 8:
Ethernet Interface: eth0
User name:          T0123456
Activate-on-demand: No
Primary DNS:        139.175.10.20
Secondary DNS:      163.28.112.1
Firewalling:        NONE

>>> Accept these settings and adjust configuration files (y/n)? y
接下來將你的設定作一個整合結果輸出,如果沒有問題的話,
輸入 y 之後就完成設定啦!
基本上,設定完成之後以下的檔案會被自動改變,
有影響的是 resolv.conf 這個檔案,你可以手動改變這個檔案喔!

Adjusting /etc/ppp/pppoe.conf
Adjusting /etc/resolv.conf
  (But first backing it up to /etc/resolv.conf-bak)
Adjusting /etc/ppp/pap-secrets and /etc/ppp/chap-secrets
  (But first backing it up to /etc/ppp/pap-secrets-bak)
  (But first backing it up to /etc/ppp/chap-secrets-bak) 

連上 Internet 之前,請先確認 eth0 或 eth1(用來連接線到 Modem 的那一張網路卡)已經斷線了,可以使用 /sbin/ifconfig 來確認,然後直接輸入
    /usr/sbin/adsl-start
即可連上網路啦!通常比較容易出問題的地方在於硬體的連線情況,請先確認所有的硬體連線沒有問題喔!通常,如果你使用小烏龜(ATU-R)時,請使用跳線連接網路卡與ATU-R。另外一個容易出錯的地方在於輸入的帳號與密碼,帳號與密碼都是你的 ISP 給你的,並且注意大小寫

啟動 Linux 上面的 NAT 設定

NAT 設定由於 Linux 核心的不同而有點差異性,如果您是使用舊的 2.2.x 核心的話,也就是 Red Hat 7.0 以前的版本時,那麼你可以使用下面的指令來啟動 NAT 的功能:
 
 echo "1" > /proc/sys/net/ipv4/ip_forward
 /sbin/ipchains -P forward DENY
 /sbin/ipchains -A forward -j MASQ -s 192.168.1.0/24 -d 0.0.0.0/0
 /sbin/modprobe ip_masq_ftp
 /sbin/modprobe ip_masq_raudio
 /sbin/modprobe ip_masq_irc
 /sbin/modprobe ip_masq_autofw
 /sbin/modprobe ip_masq_cuseeme
 /sbin/modprobe ip_masq_portfw
 /sbin/modprobe ip_masq_quake
 /sbin/modprobe ip_masq_vdolive
 /sbin/modprobe ip_masq_user
 /sbin/modprobe ip_masq_mfw
當然囉,您必須是使用 ipchains 這一個咚咚。至於若您使用的是 Red Hat 7.1 以後的系統,例如我們介紹的 Red Hat 7.2 的話,那麼就必須以下面的方法來啟動 NAT 囉:
 
echo "1" > /proc/sys/net/ipv4/ip_forward
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.1.0/24 -j MASQUERADE
當然囉,如果您希望每次開機都可以自動的載入上面的咚咚,那麼你就可以將上面的資料寫入 /etc/rc.d/rc.local 裡面的最後一行中!
 詳細的 NAT 功能與相關設定可以看一下底下這兩篇文章,一定可以對你有幫助喔:
鳥哥的私房菜館--NAT 設定
Study-Area 的技巧心得--NAT 設定
容易出錯的地方
前一些時候幫一些網友在討論 NAT 的問題,後來發現大家的問題都差不多!最容易發生錯誤的地方在於 default gateway 的問題,在 /etc/sysconfig/network 這個檔案中,或許有個 GATEWAYDEV 的咚咚,那個東西是你的 Linux 主機預設的通訊閘,由於我們是使用 ADSL 撥接制的,所以撥接之後會有一個 ppp0 的界面,因此呢,你就必須在 GATEWAYDEV=ppp0 這一個設定才對喔!另外,將 GATEWAY= 這一行空下來不要設定!
如果你還是有解決不了的問題,請先參考一下底下這一篇探討網路問題的心得分享囉!
檢查 Linux 網路問題

設定 Windows 用戶端的電腦設定

我們的 Linux 主機已經架設完畢囉!而且,如果你沒有更改上面的一些設定的話,那麼你的區域網路內的 Windows 電腦所需要注意的事項為:
  1. Windows 的 IP 在 192.168.1.3~192.168.1.254 之間均可接受;
  2. 子遮罩網路 Netmask 為 255.255.255.0 這一個;
  3. 通訊閘為 192.168.1.2 ,這個需要與你的設定相呼應喔!
  4. DNS 主機可以設定為 139.175.10.20 這一個 seednet 的 DNS 主機,如果你的 ISP 有提供其他的主機的話,那麼請參考吧!
這樣就夠你設定的資訊了吧!還是不會嗎?看一下 Hub 的連接一文吧!

要不要設定 Client 的 MTU 值!?當然不需要!

使用 Windows 2000 最討厭的地方就是需要一大堆的 MTU 偵測與設定了!在 Linux 裡面可就沒有這個困擾了!我的經驗裡面,呵呵!這個 Linux 做為網路頻寬的分享,不但速度快,而且夠穩定的了!我使用 Seednet 這一家 ISP 來說,最長的連線時間為兩個月左右沒有斷線過!而且,即使斷線了,使用 Linux 的設定功能,可以立即自動的連接上 Internet 喔!好用的很!
另外一個最棒的是, Linux 可以支援架站喔!不論是目錄伺服器、檔案伺服器、郵件伺服器、網頁伺服器、FTP 伺服器等等的服務,只要你的頻寬夠大,硬碟夠大,都可以架設喔!提供兩個架站的網站給你瞧一瞧:
鳥哥的私房菜館
Study-Area 的 Linux 架站說明
2002/01/27以來統計人數
其他連結
環境工程模式篇
鳥園討論區
鳥哥舊站

今日 人數統計
昨日 人數統計
本月 人數統計
上月 人數統計