• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Khan's Notebook GCC/GNU/Linux Delphi/Window Java/Anywhere

            路漫漫,長修遠,我們不能沒有錢
            隨筆 - 173, 文章 - 0, 評論 - 257, 引用 - 0
            數據加載中……

            一個小型的無線路由器 Linux 系統OpenWRT

            作者: Cody Teng
            網址: http://www.eosp.org
            郵箱: cody@eosp.org


            ?OpenWRT - (http://www.openwrt.org)

            開發板: 十幾種市面上很容易買到的無線路由器,價錢500元左右, 請看硬件列表: (http://wiki.openwrt.org/TableOfHardware)

            我使用的是 Linksys WRT54G:
            CPU: MIPS 200MHZ
            內存: 16M
            ROM: 4M
            網絡接口: 4個LAN, 1個WAN, 1個Wireless Lan
            已加接SD Card, 雙串口和JTAG
            詳細請看這里: (http://www.eosp.org/?page_id=20)

            在開發前可先安裝使用jffs2(可讀寫)文件系統的Firmware, 了解系統架構, 安裝軟件, 內建HTTP, DHCP, DNS, SSH, Telnet, PPPOE, PPTP等, 有WEB界面,
            另外可加裝軟件有7百多個選擇, 包括Samba, mysql, OpenVPN, Asterisk,

            軟件列表:
            http://tracker.openwrt.org/packages/

            到熟悉后使用Buildroot 做交叉編譯等工作, 自后打包軟件, 制作自己的Firmware, 進入嵌入式Linux 的世界.

            學習后還可以繼續充當家里無線路由器的角色, 或你改裝后的小型Linux服務器!!!


            這是安裝 OpenWRT 的步驟

            注: 轉貼時請保持文章的完整性.

            在安裝 OpenWrt 之前,首先你要知道你所使用的無線路由器 OpenWrt 是否支持,在 OpenWrt 的網頁上提供了一個路由器列表,地址是:
            http://wiki.openwrt.org/TableOfHardware

            當中最多人使用的是 Linksys WRT54G/GS 和 ASUS WL-500G,相關的文檔也較多,Linksys在前面已經介紹過,我在這里不再重復了,其次是 ASUS WL-500G, 原因是它在市面容易找到,而且支持 USB,即使價錢比一般的無線路由器貴1百多元,也相當值得,有了USB,你可以接上一個掫像頭,移動盤,硬盤和打印機等設備。接下來我會說明 OpenWrt 在 WRT54G上的安裝過程。

            首先,到 OpenWrt 下載 Firmware,地址是:

            http://downloads.openwrt.org/whiterussian/rc4/bin/

            OpenWrt 提供很多版本的 Firmware下載,例如 openwrt-brcm-2.4-jffs2-4MB.trx,其中brcm是通用版本,如果你ASUS的路由器就屬于這類;2.4是所使用的 Kernel版本;jffs2是文件系統,文件系統有2種,jffs2是可讀寫的,沒有壓縮,文件較大,squashfs是只讀的,由于是壓縮文件系統, 這意味著在相同大小的 Flash Rom 你可以安裝更多軟件;4MB是 Flash Rom 大小,這根據你使用的路由器版本而定,請參考剛才的路由器列表。下面是現時 OpenWrt提供的 Firmware:

            [ ] openwrt-brcm-2.4-jffs2-4MB.trx 14-Sep-2005 19:21 2.1M
            [ ] openwrt-brcm-2.4-jffs2-8MB.trx 14-Sep-2005 19:21 2.1M
            [ ] openwrt-brcm-2.4-squashfs.trx 14-Sep-2005 19:21 1.5M
            [ ] openwrt-motorola-jffs2-4MB.bin 14-Sep-2005 19:21 2.1M
            [ ] openwrt-motorola-jffs2-8MB.bin 14-Sep-2005 19:21 2.1M
            [ ] openwrt-motorola-squashfs.bin 14-Sep-2005 19:21 1.5M
            [ ] openwrt-wrt54g-jffs2.bin 14-Sep-2005 19:21 2.1M
            [ ] openwrt-wrt54g-squashfs.bin 14-Sep-2005 19:21 1.5M
            [ ] openwrt-wrt54gs-jffs2.bin 14-Sep-2005 19:21 2.1M
            [ ] openwrt-wrt54gs-squashfs.bin 14-Sep-2005 19:21 1.5M
            [ ] openwrt-wrt54gs_v4-jffs2.bin 14-Sep-2005 19:21 2.1M
            [ ] openwrt-wrt54gs_v4-squashfs.bin 14-Sep-2005 19:21 1.5M

            我用的是WRT54G v2.2版,所以我下載了 openwrt-wrt54gs-jffs2.bin,有了這文件后,我可以開始設定我的路由器了。WRT54G 默認的 IP 是 192.168.1.1,在接上你的電腦之前,你要更改你電腦的網絡設定,把你電腦改為固定IP,IP是192.168.1.xxx,掩碼是 255.255.255.0。然后用網絡線把你的電腦和 WRT54G 其中一個 LAN 接口連起來,這時候你可以在 DOS PROMPT 中輸入 “ping 192.168.1.1” 這命令,如果有回應的話就證明連線沒有問題,如果出現 “Request Time Out” ,請檢查一下你的防火墻和網線有沒有問題(不要忘了為WRT54G接上電源)。

            安裝 OpenWrt 有幾種方法,在不拆開路由器的情況下,最簡單的方法是利用TFTP 軟件,把整個 OpenWrt Firmware 更新到 WRT54G 的 Flash Rom里,
            現在請打開你的瀏覽器,在網址一欄輸入“http://192.168.1.1”,這時候應該會出現一個登入畫面,用戶和密碼都是“admin”,如果你 的路由器是新買回來的話,請先把WAN設定好,你可以隨便給一個固定IP,但不要設定DHCP,因為如果WAN接口沒有連線而且沒有IP的話,接下來我們 的PING工具將無法使用,我們會利用“PING”工具的一個小BUG,更改[/url] WRT54G 的 BOOTWAIT 設定,讓我們可以把 Firmware上傳到TFTP服務器。操作如下:

            1. 打開 ping工具,“administration” --> “diagnostics” --> “Ping”,又或者在網址一欄輸入 “192.168.1.1/ping.asp”

            2. 在 “IP Address”一欄中,順序輸入下面4行指令,每輸入一行就按一下“PING”按鈕:


            ;cp${IFS}*/*/nvram${IFS}/tmp/n
            ;*/n${IFS}set${IFS}boot_wait=on
            ;*/n${IFS}commit
            ;*/n${IFS}show>tmp/ping.log


            當最后一行輸入后,你會看到一堆文字,如果你看到其中一行是“boot_wait=on”的話,你可以繼續下一步了。

            3. 把你的 WRT54G 電源拔出來,然后準備好剛才的 Firmware,在Windows的DOS PROMPT,輸入這條命令,但不要按 “ENTER”:

            tftp -i 192.168.1.1 PUT C:\openwrt-wrt54gs-jffs2.bin

            *這里,我把openwrt-wrt54gs-jffs2.bin放在 C:\ ,如果你放在別的位置,請按你的情況更改

            4. 一邊接上 WRT54G 的電源,同時另一邊按 “ENTER” ,如果成功的話,你會看見 WRT54G上 的 DMZ 燈不停閃動,而且畫面會出現類似下面的訊息:

            Transfer successful: 1537024 bytes in 6 seconds, 256170 bytes/s

            5. 等待 2-3 分鐘后,DMZ 燈會停止閃動,這時執行 “telnet 192.168.1.1”,如果出現 OpenWrt 的歡迎畫面,代表你安裝成功了。




            Trying 192.168.1.1...
            Connected to 192.168.1.1.
            Escape character is '^]'.

            BusyBox v1.00 (2004.12.24-03:19+0000) Built-in shell (ash)
            Enter 'help' for a list of built-in commands.

            _______ ________ __
            | |.-----.-----.-----.| | | |.----.| |_
            | - || _ | -__| || | | || _|| _|
            |_______|| __|_____|__|__||________||__| |____|
            |__| W I R E L E S S F R E E D O M

            root@OpenWrt:/#

            NVRAM 全名是 Non-Volatile Ram ,在 OpenWrt 里是用了 Flash Rom 最后的 64K 區塊,用來儲存一些環境參數,OpenWrt 通過這些參數來配置網絡,DHCP,DNS和記載硬件版本等。

            常用的 nvram 指令有以下 4 種:

            1. nvram show
            列出 NVRAM 內所有參數,我們亦可以用 grep 命令來抽取部份資訊,例如

            nvram show | grep lan_


            這命令列出了所以用 lan_ 開頭的參數,結果如下:


            lan_gateway=192.168.1.254
            dr_lan_rx=0
            lan_netmask=255.255.255.0
            lan_lease=86400
            lan_stp=1
            lan_hwaddr=00:12:17:E1:56:F5
            lan_dns=211.152.179.7 202.96.128.86
            lan_ifnames=vlan0 eth1
            size: 12567 bytes (20201 left)
            lan_ipaddr=192.168.1.1
            lan_proto=static
            lan_ifname=br0
            lan_wins=
            lan_hwnames=

            2. nvram set 參數=數值
            用來添加或修改一些參數,例如我想把 LAN 的 IP 由 192.168.1.1 改為 192.168.1.2,可執行:


            nvram set lan_ipaddr=192.168.1.2
            nvram commit
            reboot


            第 1 行是修改 IP 地址,第 2 行是保存,第 3 行是重新啟動 OpenWrt ,因為更改 IP 地址后要重啟才能生效。

            3. nvram unset 參數
            用來刪除一些參數,不過這個功能很少用到,因為 NVRAM 的 64K 容量足夠保存大量參數,大部份人都賴得去刪。
            例如我想刪除 “dr_lan_rx=0” 這個參數,請執行:

            nvram unset dr_lan_rx

            4. nvram commit
            當你對 NVRAM 做了一大堆修改后,你需要把這些修改保存起來,否則你的路由器 RESET 后,這些修改便沒有了,和上面一樣,這時你要執行:

            nvram commit

            1. WRT54G 的網絡概況

            下面是 WRT54G 的內部結構示意圖:

            WRT54G由包括LAN,WAN,WIFI 等 3 部份組成,相等于圖中的vlan0,vlan1,eth0。

            http://www.eosp.org/wp-content/photo...chitecture.png

            當你安裝好 OpenWrt 后,NVRAM 里的默認配置是這樣的:


            lan_ifname=br0
            lan_ifnames=”vlan0 eth1”
            lan_proto=static
            lan_ipaddr=192.168.1.1
            lan_netmask=255.255.255.0

            wan_ifname=vlan1
            wan_proto=dhcp

            第 1 項 lan_ifname=br0 是指 LAN 的網絡介面名稱;
            第 2 項 lan_ifnames=”vlan0 eth1” 是指實際上 LAN 的真正網絡介面,這里包括 vlan0(Port 1-4) 和 eth1 (無線網卡接口) ;
            第 3 項 lan_proto=static 是指 LAN 用固定 IP 方式;
            第 4 項 lan_ipaddr=192.168.1.1 指定了 LAN 的 IP 是 192.168.1.1;
            第 5 項 lan_netmask=255.255.255.0 指定了 LAN 的子網絡掩碼;

            第 6 項 wan_ifname=vlan1 指定了 WAN 的網絡為 vlan1 (Port 0);
            第 7 項 wan_proto=dhcp 指定了 WAN 的網絡方式為 DHCP;

            2. 配置 Lan 網絡參數
            假設我想修改路由器的 TCP/IP 設定為:

            IP: 192.168.0.1
            掩碼: 255.255.255.0
            網關: 192.168.0.254
            DNS1: 192.168.0.254
            DNS2: 202.14.67.4

            并打開 DHCP 服務,IP 范圍由 192.168.0.100 至 192.168.0.150;可以執行以下命令:


            nvram set lan_proto=static
            nvram set lan_ipaddr=192.168.0.1
            nvram set lan_netmask=255.255.255.0
            nvram set lan_gateway=192.168.0.254
            nvram set lan_dns=’192.168.0.254 202.14.67.4’

            nvram set dhcp_start=100
            nvram set dhcp_num=50
            nvram commit
            reboot

            第 1 項 nvram set lan_proto=static 是指 LAN 的網絡方式為固定 IP
            第 2 項 nvram set lan_ipaddr=192.168.0.1 是指定 LAN 的 IP 地址為 192.168.0.1
            第 3 項 nvram set lan_netmask=255.255.255.0 是指定 LAN 的子網絡掩碼為 255.255.255.0
            第 4 項 nvram set lan_gateway=192.168.0.254 是指定 LAN 的網關為 192.168.0.254
            第 5 項 nvram set lan_dns=’192.168.0.254 202.14.67.4’ 是指定 LAN 使的 DNS 服務器,由于DNS服務器有 2 個,所以用空格來分開。

            第 6 項 nvram set dhcp_start=100 是指 DHCP 服務器從 192.168.0.100 開始派發 IP
            第 7 項 nvram set dhcp_num=50 是指 DHCP 從 192.168.0.100 開始 派發到 192.168.0.150 (100+50) 為止。

            3. 設定WAN
            一般常見的上網方式有3種: DHCP, PPPOE 撥號上網 及 STATIC IP(固定 IP)

            2.1 DHCP
            DHCP很簡單,你只需告訴路由器用DHCP來上網,它便會替你自動取得IP,網絡掩碼,網關,DNS等資料


            nvram set wan_proto=dhcp
            nvram commit
            reboot

            2.2 固定 IP
            很多商用寬帶都是使用固定 IP,ISP 會提供 IP 地址(第2項),子網絡掩碼(第3項),網關(第4項)及DNS(第5項)資料,DNS如果超過一個的話用空格分開。


            nvram set wan_proto=static
            nvram set wan_ipaddr=218.103.124.24
            nvram set wan_netmask=255.255.255.252
            nvram set wan_gateway=218.103.124.23
            nvram set wan_dns=’210.80.60.1 210.80.60.2’
            nvram commit
            reboot

            2.3 PPPOE
            PPPOE 在家用寬帶是很常見的,ISP會提供 用戶名及密碼,你只需把下面第5和第6項換成相應的用戶名及密碼就可以用PPPOE上網了。


            nvram set wan_ifname=ppp0
            nvram set wan_proto=pppoe
            nvram set ppp_mtu=1492
            nvram set pppoe_ifname=vlan1
            nvram set ppp_username=your_isp_login
            nvram set ppp_passwd=your_isp_password
            nvram commit
            reboot

            第 1 項 nvram set wan_ifname=ppp0 是指 WAN 使用 ppp0 網絡介面來撥號上網
            第 2 項 nvram set wan_proto=pppoe 是指 WAN 使用 PPPOE 的方式上網
            第 3 項 nvram set ppp_mtu=1492 指定 MTU 為 1492
            第 4 項 nvram set pppoe_ifname=vlan1 指 PPPOE 撥號的介面是 vlan1
            第 5 項 nvram set ppp_username=your_isp_login 指定PPPOE 的用戶名是 your_isp_login
            第 6 項 nvram set ppp_passwd=your_isp_password 指定了 PPPOE 的密碼是 your_isp_password

            4. 配置無線網絡


            nvram set wl0_gmode=
            nvram set wl0_ssid=
            nvram set wl0_channel=
            nvram set wl0_closed=
            nvram commit
            wifi up

            關閉 WEP 和 WPA


            nvram set wl0_wep=disabled
            nvram set wl0_akm=open

            開啟WEP

            nvram set wl0_wep=
            nvram set wl0_wep_bit=
            nvram set wl0_key=
            nvram set wl0_key1=
            nvram set wl0_key2=
            nvram set wl0_key3=
            nvram set wl0_key4=
            nvram set security_mode_last=wep
            nvram commit
            ifdown wifi
            ifup wifi

            WPA


            nvram unset wl0_auth_mode
            nvram set wl0_akm=psk
            nvram set wl0_crypto=
            nvram set wl0_wpa_psk=
            nvram set wl0_radius_key=
            nvram set wl0_radius_ipaddr=
            nvram set wl0_radius_port=
            nvram set security_mode_last=wpa
            nvram commit

            無線網絡 – MAC Filter


            nvram set wl0_macmode=allow
            nvram set wl0_mac_list=
            nvram set wl0_mac_deny=
            nvram commit
            wifi up

            5. 加強 OpenWrt 的安全性
            我認為沒有密碼和使用 Telnet 是不安全的,OpenWrt 在設定密碼后會把 Telnet 關閉,改用 SSH 服務


            passwd

            ipkg 是 OpenWrt 內的一個軟件安裝管理工具,在 OpenWrt 內輸入

            root@Linksys:~# ipkg


            你會得到 ipkg 的說明和幫助,接下來我會說明 ipkg 常用的幾個命令:

            1. ipkg update
            ipkg 會到 http://downloads.openwrt.org/whiterussian/packages/ 下載并更新最新的軟件包列表(這個列表的位置在/etc/ipkg.conf指定):


            root@Linksys:~# ipkg update
            Downloading http://downloads.openwrt.org/whiteru...kages/Packages
            Updated list of available packages in /usr/lib/ipkg/lists/whiterussian
            Downloading http://downloads.openwrt.org/whiteru...-free/Packages
            Updated list of available packages in /usr/lib/ipkg/lists/non-free
            Successfully terminated.

            2. ipkg list
            在更新之后,我們可以用 ipkg list 這命令查看一下有什么軟件包可供安裝,這里我會列出部份結果:


            root@Linksys:~# ipkg list
            aiccu – 2005.01.31-1 – SixXS Automatic IPv6 Connectivity Client Utility
            arptables – 0.0.3-1 – ARP firewalling software
            arpwatch – 2.1a11-1 – Ethernet monitor program for keeping track of ethernet/ip address pairings
            asterisk – 1.0.7-1 – An open source PBX
            ...

            3. ipkg install
            安裝軟件包,有 2 種方法,例如我想安裝 OpenSSH 的 SFTP 服務器(注 1),方便我以后上傳文件到 OpenWrt,我可以執行 ipkg list 或到 OpenWrt 的軟件包網址取得軟件 SFTP 服務器的資料:

            Package: openssh-sftp-server
            Version: 4.0p1-1
            Depends: zlib, libopenssl
            Section: net
            Architecture: mipsel
            Maintainer: bugs@openwrt.org
            MD5Sum: 145c72f82f2404b991a96bf5f3ef2262
            Size: 14086
            Filename: openssh-sftp-server_4.0p1-1_mipsel.ipk
            Source: buildroot internal
            Description: OpenSSH SFTP server

            之后我可以選擇第 1 個方法用軟件包名來安裝,這方法會自動把軟件包下載并安裝:

            ipkg install openssh-sftp-server

            或者選擇第 2 個方法從網站把安裝包下載到路由器上,然后輸入文件名安裝:

            ipkg install openssh-sftp-server_4.0p1-1_mipsel.ipk

            4. ipkg list_installed
            這個命令會列出 OpenWrt 預先為你安裝好的軟件 (包括一些常用軟件和驅動) 以及你后來安裝的軟件。

            5. ipkg remove
            當你的空間不足時,這個命令非常有用,你先執行 ipkg list_installed 得出己安裝的軟件列表,然后找出你要刪除的軟件包名稱,例如:

            ipkg remove openssh-sftp-server

            注意事項:
            由于 WRG54G 的空間有限,安裝軟件時要留意軟件的大小和剩余的空間,我們可以用 df -h 命令得知 Flash Rom 和 虛擬內存的使用量:

            root@Linksys:~# df -h

            Filesystem Size Used Available Use% Mounted on
            /dev/root 3.2M 2.8M 372.0k 89% /
            none 7.0M 6.5M 540.0k 92% /tmp
            /dev/mmc/disc0/part1 14.2M 7.5M 6.6M 53% /sd

            結果顯示我的 WRT54G 只剩下 372k 的空間,虛擬內存也只剩下 540k,因為我為我的WRT54G 加裝了一張 16MB 的 SD Card,所以你會看到有一項設備 /dev/mmc/disc0/part1 剩余 6.6M 空間。

            注 1: 安裝了 openssh-sftp-server,你會發現 sftp 服務器并不能正常使用,為什么呢?!這時你要輸入這個命令:

            ln -s /usr/libexec /usr/lib

            posted on 2006-11-23 10:02 Khan 閱讀(21277) 評論(7)  編輯 收藏 引用 所屬分類: 周邊技術

            評論

            # re: 一個小型的無線路由器 Linux 系統OpenWRT  回復  更多評論   

            樓主好文章!
            2007-05-07 19:10 | ronaldo

            # re: 一個小型的無線路由器 Linux 系統OpenWRT  回復  更多評論   

            介紹得很詳細,受教了
            2007-10-08 17:12 | sintsu

            # re: 一個小型的無線路由器 Linux 系統OpenWRT  回復  更多評論   

            摟主寫的很不錯啊,強烈推薦阿!
            2007-10-09 16:21 | kuny

            # re: 一個小型的無線路由器 Linux 系統OpenWRT  回復  更多評論   

            謬贊謬贊...我都是轉載的..
            2007-10-11 10:55 | Khan's Notebook

            # re: 一個小型的無線路由器 Linux 系統OpenWRT[未登錄]  回復  更多評論   

            實驗室有一個路由器Linksys WRT54G,已經刷了openwrt的7.09版本,想實驗一下自己編譯然后刷到路由器中。因為openwrt7.09版本沒有提供web界面,所以只能用tftp:拔電,等ping一有反應,馬上tftp上trx文件。可是tftp總是提示timeout,實在讓人頭大!請問樓主有沒有什么好的解決辦法?
            2008-12-05 20:44 | Lisa

            # re: 一個小型的無線路由器 Linux 系統OpenWRT  回復  更多評論   

            專業開發定制和修改有線,無線,軟路由等嵌入式Linux,OpenWRT,DD-WRT,Tomato系統固件和系統,擁有業內頂尖的技術和經驗,有成熟穩定的Ralink,Broadcom,Atheros,MTK,X86系統方案,和國內外多家知名公司有業務合作關系。
            軟件業務合作聯系 一八零一三五八二一二五 陸工
            網站地址 http://www.router.tw
            2013-07-12 21:43 | www.router.tw

            # re: 一個小型的無線路由器 Linux 系統OpenWRT  回復  更多評論   

            很好
            日韩欧美亚洲国产精品字幕久久久| 精品久久久久久综合日本| 国产精品无码久久四虎| 欧美成a人片免费看久久| 日本精品久久久久久久久免费| 亚洲性久久久影院| 久久综合给合久久狠狠狠97色| 人人狠狠综合久久亚洲婷婷| 蜜桃麻豆www久久国产精品| 囯产极品美女高潮无套久久久| WWW婷婷AV久久久影片| 日韩久久无码免费毛片软件| 久久精品国产99久久久| 久久噜噜久久久精品66| 久久亚洲春色中文字幕久久久| 成人精品一区二区久久久| 久久久久久久久久久精品尤物| 久久精品人人做人人爽电影| 久久精品中文字幕一区| 伊人久久免费视频| 国产婷婷成人久久Av免费高清| 三级韩国一区久久二区综合| 色偷偷888欧美精品久久久| 一本色综合网久久| 亚洲欧美一级久久精品| 99久久久久| 国产成人久久777777| 国产精品99久久99久久久| 国产成年无码久久久免费| 色综合久久天天综线观看| 久久夜色精品国产亚洲| A狠狠久久蜜臀婷色中文网| 伊人久久久AV老熟妇色| 久久久久久综合网天天| 国产精品久久久久免费a∨| 色偷偷88欧美精品久久久| 久久国产精品一区| 久久人人超碰精品CAOPOREN| 久久久久久极精品久久久| 天天综合久久一二三区| 欧美麻豆久久久久久中文|