歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Linux ADSL家庭組網實現詳解

Linux ADSL家庭組網實現詳解

日期:2017/2/27 14:29:09   编辑:更多Linux
  家裡的台式機,裝有windows 2000 professional一直做server,本本使用Linux做client,後來覺得本本上運行linux太慢,而且也不能在上面隨隨便便做實驗,所以想要把台式機也裝上linux,這樣一來自然就涉及到了linux下adsl上網和組網的問題,經過幾天的實驗,總算是成功,因此把整個過程寫下來,一來備案,而來希望能對網友們有點幫助。 1.概述 機器配置: 主板芯片: Intel i815e 芯片組 CPU: Intel Tulatin celeron 1.3G RAM: PC-133 SDRAM 256MB*2 顯卡: TNT2 model 64 32MB 網卡: D-link DFX-530TX-Rev.c (自購,兩機聯機用) Tenda FAST Ethernet 100Base-TX (裝ADSL時電信配的) ADSL: 不知名,電信配 做server的台式機和做client的本本都安裝上了Fedora Core 1和Windows 2000 Professional。 2.准備工作 主要是獲得DNS,IP,MAC,軟件和一些基本的准備工作。 2.1網絡准備 最好先在server中windows下配置好局域網,使得client中linux能夠通過windows server訪問internet,同時也確定網卡和ADSL modem,省得做無用功;之所以要在client中使用linux來聯結,一來可以為一會兒在linux下配置網卡熟悉一下,二來windows網卡配置很容易,linux下通了,把IP,GATEWAY等抄到windows下無需特別設置一般也通了。 設置很簡單在windows中將聯結client機器的網卡設置好靜態ip,子網掩碼即可。然後在linux客戶端中設置好網卡的靜態ip和子網掩碼,網關設為server中的靜態ip,dns為server中的靜態ip和你的isp提供的dns即可。 我的設置如下: 代碼: server:ip=210.31.34.2 netmask=255.255.240.0 client: ip=210.31.34.3 netmask=255.255.240.0 gateway=210.31.34.2 dns=210.31.34.2,isp's dns 然後在server上聯上網,測試一下linux下是否能夠浏覽網絡,一般來說上面的設置正確client就可以訪問internet了,但是也有可能部分防火牆會導致client無法訪問網絡,可以關掉防火牆試試,如果確定是防火牆的問題,請自行查閱防火牆的相關資料。 client能夠訪問internet之後,就可以把當前sever的IP設置記錄下來,以備linux下使用,在windows console(開始->運行->cmd)中運行如下命令: 代碼: ipconfig /all >c:\ nic.txt 將產生的nic.txt文件拷貝到linux能夠訪問的分區中,以便將來在linux中查看。這一步的目的實際上是要記錄下,server上兩塊網卡的 IP和MAC,在linux下可能需要它們來確定哪塊網卡是聯結ADSL modem哪塊網卡是聯結client的(linux下網卡的名字和windows下可不一樣,除非你對網卡硬件十分熟悉,否則千萬不要略過這一步),當然還可以用這個方法查出你的ISP的DNS,前提是他提供的是靜態DNS。 現在server中windows下的工作已經做完了,請將它重啟到linux,client不用動他。 2.2需要的軟件 * C 開發工具 (automake, autoconf, gcc, glibc...),Fedora Core 1下最簡單的方法就是在軟件管理包裡面把開發欄下的開發工具全選上. * 內核源碼,一般來說都會安裝的,如果沒有,請將Fedora Core 1的第三張盤放進光驅,用root執行如下命令: 代碼: rpm -ivh /mnt/cdrom/Fedora/RPMS/kernel-source-2.4.22-1.2115.nptl.i386.rpm * pppoe客戶端,可以在http://www.roaringpenguin.com/penguin/open_source_rp- pppoe.PHP網頁下載到最新版.(如果你想說你不懂英語,那麼在這裡下載:http: //www.roaringpenguin.com/penguin/pppoe/rp-pppoe-3.5.tar.gz)


* 最新版的PPPD(FTP://cs.anu.edu.au/pub/software/ppp / ) ,一般來說應該是安裝了的,如果沒有,建議從上面下載,是tarball,需要自己編譯安裝。 3 網卡配置 先配置好局域網,然後再配置adsl使用的網卡。 3.1准備工作 首先得確定你的兩塊網卡在linux下的設備名,哪塊是eth0,哪塊是eth1,這時就要用到先前在windows下導出的nic.txt文件了,執行如下命令: 代碼: ifconfig 這時候會顯示你的機器上的網絡信息,比如: 代碼: eth0 Link encap:Ethernet HWaddr 00:40:05:40:C5:57 inet addr:210.31.34.2 Bcast:210.31.47.255 Mask:255.255.240.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:3075 errors:0 dropped:0 overruns:0 frame:0 TX packets:3759 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1244598 (1.1 Mb) TX bytes:1009199 (985.5 Kb) Interrupt:12 Base address:0xc000 其中的HWaddr 00:40:05:40:C5:57就是設備eth0的MAC,將它和nic.txt中的MAC對比,就可以確定eth0,eth1分別接的是哪個網絡。如果你的網卡沒有設置為啟動時激活,那麼你可能需要運行如下命令: 代碼: ifup eth0 ifup eth1 來啟動網卡,這個命令似乎是Redhat才有的,其他的發行版不知道怎麼啟動,還望各位告知。 通過對比發現,我的eth0接的是局域網,eth1接的ADSL modem。 3.2局域網配置 現在配置eth0,執行如下命令 代碼: vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改其BOOTPROTO為static,ONBOOT為yes;並配置好IPADDR,NETMASK,NETWORK,這些配置按照windows中的配置即可,也就是說把nic.txt中的相關數據抄過來就可以了。 我的ifcfg-eth0如下: 代碼: # VIA TechnologiesVT6105 [Rhine-III] DEVICE=eth0 BOOTPROTO=static BROADCAST=210.31.47.255 HWADDR=00:40:05:40:C5:57 IPADDR=210.31.34.2 NETMASK=255.255.240.0 NETWORK=210.31.32.0 ONBOOT=yes TYPE=Ethernet 請根據自己的情況做相應修改。 3.3 eth1的配置 現在我們來配置eth1,根據rp-pppoe的說明檔,eth1不能設置為啟動時激活,不能給它分配IP。因此修改如下: 代碼: vi /etc/sysconfig/network-scripts/ifcfg-eth1 修改其中的BOOTPROTO為dhcp,ONBOOT=no 我的ifcfg-eth1如下: 代碼: # LinksysNetwork Everywhere Fast Ethernet 10/100 model NC100 DEVICE=eth1 BOOTPROTO=dhcp HWADDR=00:00:E8:11:26:C5 ONBOOT=no TYPE=Ethernet DHCP_HOSTNAME=Cloud.Crop 你可以根據自己的情況做相應的修改。 3.4局域網連通測試 接下來,我們先測試一下局域網是否通了,在server和client上以root運行如下命令: 代碼: service network restart 之後,雙機就應該可以互相ping通了,如果不行,請再仔細檢查一下上面的設置,網絡不通的原因很多,但是如果你已經按我說的在server windows,client linux的情況下組網成功,那麼至少硬件沒問題,軟件原因導致的網絡不通就不在本文討論范圍之內了。 4.開始安裝 首先要確定你的adsl modem可用,這就是為什麼要先在windows下撥號上網,再進入linux的原因,要是你的設備原本就不能正常工作,你在linux下怎麼弄,也上不了網的。

整個安裝過程大概分為下面幾步 1、配置內核 2、編譯rp-pppoe客戶端和pppd 3、配置pppd 4.1配置內核 要想使用linux下的pppoe撥號服務,我們需要內核裡有PPP支持。如果你已經在內核中配置了PPP,請跳過這一段,如果你不確定,可以使用如下命令查看 代碼: grep CONFIG_PPP /usr/src/linux/.config 如果在反饋的信息中有 CONFIG_PPP=y 或者 CONFIG_PPP=m 那麼你的內核是支持PPP。否則的,你可能要編譯一下內核了。 實際上,如果你使用的是比較新的發行版比如Redhat linux 9以上,那麼內核應該是編譯了PPP支持的。 NOTE:我覺得應該有更好的方法來檢查是否有PPP支持,因為某些版本的linux可能不帶.config文件,如果lsmod又看不見編譯進內核的,不知道各位有什麼好的方法? 4.2編譯rp-pppoe客戶端和pppd 先安裝pppd 代碼: tar -zxf ppp-2.4.1-15.tar.gz cd ppp-2.4.1-15 ./configure && make && make install NOTE:可能你的機器上已經安裝了pppd,你可以用rpm -qa grep ppp來查看是否有ppp-2.xxx-xx的信息。如果有就不用再安裝了。 現在安裝rp-pppoe客戶端 代碼: tar -zxf rp-pppoe-3.5.tar.gz cd rp-pppoe-3.5 ./configure && make && make install NOTE:rp-pppoe客戶端提供了快速安裝的功能,./go這個是字符界面的,./go-gui這個是gui界面的,非常容易使用,不多說。 4.3配置rp-pppoe客戶端 配置方法分為手動和自動,強烈推薦使用自動配置的方式,即以root運行adsl-setup,如果無法連接再手動檢查各個配置文件。 代碼: adsl-setup 然後按著提示上的做就行了,這部分在本版精華已經講得頗為詳細了,本不想多說,但是總是有些人以自己“不懂英文“為名在下面JJYY,所以也在這裡順帶提提。 代碼: [root@Cloud root]# adsl-setup Welcome to the ADSL client setup. First, I will run some checks on your system to make sure the PPPoE client is installed properly... LOGIN NAME Enter your Login Name (default root): 輸入你的ISP給你的帳號名 INTERFACE 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 ethX, where 'X' is a number. (default eth0): eth1 輸入你的連接ADSL modem的網卡的設備名,我的是eth1。 Do you want the link to come up on demand, or stay up continuously? If you want it to come up on demand, enter the idle time in seconds after which the link should be dropped. If you want the link to stay up permanently, enter 'no' (two letters, lower-case.) NOTE: Demand-activated links do not interact well with dynamic IP addresses. You may have some problems with demand-activated links. Enter the demand value (default no):

通常來說用default no就可以了,一直在線,如果填yes,那麼在你設置的閒置時間內沒有網絡數據傳輸,那麼rp-pppoe會自動把連接斷掉。國內大部分都是包月,所以這個功能應該用不上。 DNS Please enter the IP address of your ISP's primary DNS server. If your ISP claims that 'the server will provide dynamic DNS addresses', enter 'server' (all lower-case) here. If you just press enter, I will assume you know what you are doing and not modify your DNS setup. Enter the DNS information here: 202.98.198.168 Please enter the IP address of your ISP's secondary DNS server. If you just press enter, I will assume there is only one DNS server. Enter the secondary DNS server address here: 202.98.192.68 填入你的ISP的靜態DNS server,nic.txt中應該保存了,如果你的ISP提供的是動態DNS地址,就填入server(小寫)。 PASSWord Please enter your Password: Please re-enter your Password: 輸入密碼 USERCTRL Please enter 'yes' (two letters, lower-case.) if you want to allow normal user to start or stop DSL connection (default yes): 是否允許普通用戶打開,關閉adsl連接。默認yes FIREWALLING Please choose the firewall rules to use. Note that these rules are very basic. You are strongly encouraged to use a more sophisticated firewall setup; however, these will provide basic security. If you are running any servers on your machine, you must choose 'NONE' and set up firewalling yourself. Otherwise, the firewall rules will deny Access to all standard servers like Web, e-mail, ftp, etc. If you are using SSH, the rules will block outgoing SSH connections which allocate a privileged source port. 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): 2 選擇防火牆,我選的2 Start this connection at boot time Do you want to start this connection at boot time? Please enter no or yes (default no): 是否在啟動的時候就撥號連接,默認no ** Summary of what you entered ** Ethernet Interface: eth1 User name: ***** Activate-on-demand: No Primary DNS: 202.98.198.168 Secondary DNS: 202.98.192.68 Firewalling: MASQUERADE User Control: yes Accept these settings and adjust configuration files (y/n)? y

Adjusting /etc/sysconfig/network-scripts/ifcfg-ppp0 Adjusting /etc/resolv.conf (But first backing it up to /etc/resolv.conf.bak) Adjusting /etc/ppp/chap-secrets and /etc/ppp/pap-secrets (But first backing it up to /etc/ppp/chap-secrets.bak) (But first backing it up to /etc/ppp/pap-secrets.bak) 這是你輸入信息的一個摘要,如果要修改的話可以對adjusting字段後面的那些文件做修改,或者 Congratulations, it should be all set up! Type '/sbin/ifup ppp0' to bring up your xDSL link and '/sbin/ifdown ppp0' to bring it down. Type '/sbin/adsl-status /etc/sysconfig/network-scripts/ifcfg-ppp0' to see the link status. ifup ppp0 打開連接,ifdown ppp0關閉連接,adsl-status,查閱相關信息。 通常來說我們常用的是adsl-start,adsl-status,adsl-stop。 如果你的adsl不能連接上,請參看rp-pppoe解包後的根目錄下的doc/HOW-TO-CONNECT,另外rp-pppoe的安裝請看其根目錄下的README 5 adsl連接共享設置 這一步,弄得我很頭暈,因為自己的網絡知識實在是有限得很,在網上搜的資料,一部分說要添加靜態路由,一部分用squid,看了半天不明所以,後來在cu的一篇文章中找到了可用的方法,不保證其他的機器上能行。 原文http://bbs.chinaunix.net/forum/viewtopic.php?t=164907&highlight=linux 我輸入的命令是: 代碼: echo 1 > /proc/sys/net/ipv4/ip_forward /sbin/iptables -F /sbin/iptables -t nat -A POSTROUTING -s 210.31.34.0/28 -j MASQUERADE /sbin/iptables -A FORWARD -s 210.31.34.0/28 -j ACCEPT 然後在客戶機上不管是linux還是windows就可以訪問internet了。 上面的設置重啟後會失效,將它寫成腳本,自啟動即可,具體作法大家自己搜下cu好了,我實在寫得很累,改天補完,如果有什麼疏漏,錯誤請各位斧正。



to see the link status. ifup ppp0 打開連接,ifdown ppp0關閉連接,adsl-status,查閱相關信息。 通常來說我們常用的是adsl-start,adsl-status,adsl-stop。 如果你的adsl不能連接上,請參看rp-pppoe解包後的根目錄下的doc/HOW-TO-CONNECT,另外rp-pppoe的安裝請看其根目錄下的README 5 adsl連接共享設置 這一步,弄得我很頭暈,因為自己的網絡知識實在是有限得很,在網上搜的資料,一部分說要添加靜態路由,一部分用squid,看了半天不明所以,後來在cu的一篇文章中找到了可用的方法,不保證其他的機器上能行。 原文http://bbs.chinaunix.net/forum/viewtopic.php?t=164907&highlight=linux 我輸入的命令是: 代碼: echo 1 > /proc/sys/net/ipv4/ip_forward /sbin/iptables -F /sbin/iptables -t nat -A POSTROUTING -s 210.31.34.0/28 -j MASQUERADE /sbin/iptables -A FORWARD -s 210.31.34.0/28 -j ACCEPT 然後在客戶機上不管是linux還是windows就可以訪問internet了。 上面的設置重啟後會失效,將它寫成腳本,自啟動即可,具體作法大家自己搜下cu好了,我實在寫得很累,改天補完,如果有什麼疏漏,錯誤請各位斧正。



(But first backing it up to /etc/ppp/chap-secrets.bak) (But first backing it up to /etc/ppp/pap-secrets.bak) 這是你輸入信息的一個摘要,如果要修改的話可以對adjusting字段後面的那些文件做修改,或者 Congratulations, it should be all set up! Type '/sbin/ifup ppp0' to bring up your xDSL link and '/sbin/ifdown ppp0' to bring it down. Type '/sbin/adsl-status /etc/sysconfig/network-scripts/ifcfg-ppp0' to see the link status. ifup ppp0 打開連接,ifdown ppp0關閉連接,adsl-status,查閱相關信息。 通常來說我們常用的是adsl-start,adsl-status,adsl-stop。 如果你的adsl不能連接上,請參看rp-pppoe解包後的根目錄下的doc/HOW-TO-CONNECT,另外rp-pppoe的安裝請看其根目錄下的README 5 adsl連接共享設置 這一步,弄得我很頭暈,因為自己的網絡知識實在是有限得很,在網上搜的資料,一部分說要添加靜態路由,一部分用squid,看了半天不明所以,後來在cu的一篇文章中找到了可用的方法,不保證其他的機器上能行。 原文http://bbs.chinaunix.net/forum/viewtopic.php?t=164907&highlight=linux 我輸入的命令是: 代碼: echo 1 > /proc/sys/net/ipv4/ip_forward /sbin/iptables -F /sbin/iptables -t nat -A POSTROUTING -s 210.31.34.0/28 -j MASQUERADE /sbin/iptables -A FORWARD -s 210.31.34.0/28 -j ACCEPT 然後在客戶機上不管是linux還是windows就可以訪問internet了。 上面的設置重啟後會失效,將它寫成腳本,自啟動即可,具體作法大家自己搜下cu好了,我實在寫得很累,改天補完,如果有什麼疏漏,錯誤請各位斧正。



Copyright © Linux教程網 All Rights Reserved