鳥哥的 Linux ADSL 私房菜


以淘汰電腦安裝 Linux 做為伺服器分享 ADSL 的頻寬
最近更新日期:2002/01/27
目的與適用性
Linux 所需硬體與安裝 Linux 所需套件
安裝第二塊網路卡
在 Linux 上面的 ADSL 撥接方法
啟動 Linux 上面的 NAT 設定
設定 Windows 用戶端的電腦設定
要不要設定 MTU !嘿!當然不需要
還有什麼可以玩得!呵!架站來玩玩!

目的與適用性
目的:
就如同前面所說的: 因此,將廢棄電腦拿來當主機,嘿!是一件非常棒的利用方式!不過,以目前的主機系統來說,我們可以將他約略分成兩大類,分別是 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 功能啦),主要分為兩步驟: 同樣的,這裡要注意,由於所有的虛擬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 主機,那麼照以下的步驟一步一步來,呵呵!也是可以達成你的需求啦!
適用性: 所需要的軟硬體配備:

Linux 所需硬體與安裝 Linux 所需套件
OK!既然我們使用的是『即將被淘汰的電腦』也就是 P-166 以下等級的電腦(當然可以選擇更好的,這裡僅說明最低的硬體配備啦!)那我們需要怎樣的硬體呢?以 VBird 來說,我建議的配備有點像這樣: 好了,確認完你的硬體之後,開始要來安裝囉,如果要瞭解每一個步驟代表的意義,那麼請到 鳥哥的私房菜館 來看看,底下僅列出需要注意的幾個步驟囉(底下先以一塊網路卡來安裝喔!):

安裝第二塊網路卡
怎樣安裝第二塊網路卡呢?就是將 Linux 關機囉,然後安裝第二塊卡,然後開機,然後就可以自動的被捉到囉!如果無法被自動的捉到,那麼就麻煩了!請參考這一篇看看如何安裝第二塊網路卡吧!
連上 Internet
另外,全部的硬體連接之後是怎樣呢?可以這樣看: 所有硬體連接完畢之後就會像底下的圖示這樣!

在 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以來統計人數