網路基本指令
比較主流的版本, 例如 ubuntu 或 fedora, 都有圖形介面設定網路的工具。 比較陽春的版本, 無線網路的設定可能要另外安裝套件, 例如 slax 6 系列提供 wlassistant, 而 antix 則提供 wicd ( 中文、 英文, 英文)。
剛裝好 linux, 最簡單的上網方式, 就是躲在有線分享器後面, 採用 dhcp (由分享器自動派送 IP 及其他網路設定) 的方式上網。 如果是筆電, 有時會遇到無線網卡驅動程式失敗的問題。 最快的解決方式, 就是搜尋 「usb wifi」, 隨便買一個三五百元的 usb 無線網卡, 幾乎都不會遇到驅動程式的問題。
其他情況下, 如果不幸無法用圖形介面的工具設定上網, 那就只好下指令自助。
請先變身為 root -- 在 debian 系列 (例如 ubuntu) 的版本裡,
sudo bash
然後打自己的密碼; 在其他系列的版本裡 (例如
fedora/mandriva/slackware), su
然後打 root
的密碼。
Linux 有沒有抓到網卡?
第一步先查看 linux 是否有抓到您的硬體。 下 ifconfig
-a
。 以我的 eeepc 為例,
正常應該至少偵測到 lo(每部電腦都會有的、 假的網卡),
eth0 (有線網卡), ath0 (無線網卡) 三項。
不過, 不同版本的 linux 命名網卡的方式不太相同 --
例如有些把有線無線混在一起命名為 eth0、 eth1、 eth2 ...
有些則把無線網卡命名為 wlan0、 wlan1、 ... 。
總之, 除了 lo 之外, 如果看到的項目與你有線無線網卡數目相同,
就可跳到下一節。
如果 ifconfig -a
只出現 lo 一項, 那就是沒偵測到網卡。
這有可能是驅動失敗, 例如欠缺專屬韌體之類的。
請參考
wicd 設定網路連線 或 (硬工夫的)
赤手空拳也要用 wpa_supplicant 接通無線網路。
另外也可用 lspci | grep -Pi 'ethernet|network'
查詢有線及無線網卡型號, 再用網卡型號跟 modprobe 下去搜尋,
可能可以找到驅動程式的解決方案。
連線
如果有偵測到網卡, 但網路卻不通, 請下這幾個指令:
/sbin/ifconfig -a
route -n
理想上, 從第一個指令可以讀出有連線的網卡代號以及它被分配到的 IP, 類似這樣:
eth0 Link encap:Ethernet HWaddr 12:34:56:78:9a:bc inet addr:192.168.3.75 Bcast:163.17.9.255 Mask:255.255.255.0
而第二個指令則應該要看到至少兩列數字, 類似這樣:
Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.168.3.254 0.0.0.0 UG 0 0 0 eth0
這表示: 對於區網內的 IP (192.168.3.*), 直接透過網卡 eth0 即可連線; 對於區網外的其他所有 IP (*.*.*.*) 則都要通過 gateway (192.168.3.254) 來連線。
不論上面出現什麼, 總之如果網路不通, 請依序做: (每一步都用 ctrl-c 中斷)
ping 自己
ping 鄰居
nmap -sP 192.168.3.0/24
ping gateway
ping 8.8.8.8
其中第三步應該要印出區網內所有鄰居。 以下是幾種常見的狀況:
- 如果看不到半個鄰居, 那多半是自己的問題。 例如網路線沒接好或插錯孔。
- 如果看得到 gateway 但連不到外界 (例如 google 的 DNS 伺服器 8.8.8.8), 而且鄰居們也是如此, 那多半是 gateway 對外連線有問題。
- 如果我看得到 gateway 但連不到外界;
可是別人卻看得到 gateway 也連得到外界,
那有可能是我的 IP 跟鄰居衝突了。
請先
ifconfig eth0 down
或ifdown eth0
清除網卡舊的設定, 再換一個閒置的 IP 再試試看。 (見下方 「有線網卡, 固定 ip」。)
如果連 8.8.8.8 也看得到, 那表示網路其實已正常連線; 可能只是沒設定 DNS。 請跳到下一節 「設定 DNS」。
有線網卡, 自動取得 ip
若您的網路環境是自動取得 ip, 請下 dhclient 網卡名稱
有些版本的指令是 dhcpd 而不是 dhclient; 總之先按 dhc 然後按一兩次 Tab 鍵, 系統會提示。
有線網卡, 固定 ip
若您的網路環境是固定 ip, 例如是 987.321.456.789 或者原本期待 DHCP 自動派送所有資訊, 但 DHCP 卻掛掉了, 那麼請下:
ifconfig eth2 987.321.456.789 netmask 255.255.255.0 route add default gw 987.321.456.254
其中 netmask 後面的數字, 及 gw 後面的數字, 可先用 windows 機器查出。
如果下錯第一個指令, 可以這樣刪除錯誤的設定:
ifconfig eth2 down
; 如果下錯第二個指令,
可以這樣刪除錯誤的設定: ip route del 0/0
。
再參考 這篇 填寫 /etc/network/interfaces 變成永久設定。
有線網卡, ADSL 撥接
若您的網路環境是 adsl, 請下 pppoeconf
或
有些版本的指令是 pppoe-setup 而不是 pppoeconf; 總之先按 pppoe
然後按一兩次 Tab 鍵, 系統會提示。
逐步回答問題, 包含帳號及密碼等等。 注意: 帳號要完整打出, 包含 @ 及後面一串, 像是 12345678@hinet.net 。 其他大多數問題如果看不懂, 可直接按 Enter 採用建議值。
關於 pppoe-setup 的補充: 在詢問 nameserver 時, 可考慮回答 "server"。 設定成功後, 按照 pppoe-setup 的指示, 用 pppoe-start 啟動連線。
無線網卡
詳見 赤手空拳也要用 wpa_supplicant 接通無線網路。
其他參考資料: 河馬工作室 的中文教學及 Jack Wallen 或 masrust 或 bernaerts 的英文教學。
設定 DNS
最後, 如果 route -n 看來正常, 但仍舊無法上網, 請在瀏覽器裡面打這個網址: 61.219.38.89 或這個網址: 203.66.88.89。 如果數字 ip 可以上網, 但文字 ip 不行, 那就是忘記設定 /etc/resolv.conf 請在這個檔案裡面加一句:
nameserver 8.8.8.8
或把裡面的數字改成網路提供者給您的 DNS 網址。 nameserver 指令可以有好幾列。 請把回應速度快的 DNS 伺服器放前面。
自我約束上網速度
曾經因為下載大檔案而被室友抱怨嗎? 可以用 trickle 指令自我限制上網速度, 把頻寬留給別人, 快快惹人愛 哦!
區網裡還有那些電腦? 開了什麼服務?
有些時候會需要知道某個區域網路裡面還有那些其他電腦。
(例如懷疑你的固定 IP 被別人搶走了。) 比方說我從無線分享器取得網址
192.168.1.21 那麼可以下: nmap -sP 192.168.1.0/24
從
192.168.1.1 到 192.168.1.254 逐一查看每個 IP 是否已被使用。 這裡的
/24 表示前面 24 個 bit 固定; 後面 8 個 bits 從 0 變化到 255
逐一檢查每個 ip。 (當然, 扣除 .0 和 .255 之類的例外 ip)
所以這個指令會列出 192.168.1.1 到 192.168.1.254 之間, 已被佔用的 ip
位址。
如果進一步想知道某一部電腦到底開啟了那些服務呢? nmap
192.168.1.21
會列出 192.168.1.21 這部機器所開啟的服務。
如果 nmap 回報該電腦未上線, 也可試打 nmap -PN
192.168.1.21
不論是否上線, 就是要強制檢查;
當然, 這樣會花比較久的時間。 請拿兩部電腦互相測試。
試著在一部機器上停止/重新啟動某些服務 (例如
apache 網頁伺服器), 然後從另一部機器回頭檢驗。
其他網路筆記
有一次我用 slax 開機, 透過 hinet 浮動 ip 上網, 並且想從其他電腦連線進去看它的網頁, 結果一直連不上。 當初這部 slax 電腦與其他電腦一起躲在 192.168.1.* 的區域網路裡面的時候, 明明別人就可以看得見它的網頁服務呀; 為什麼改用 hinet 的浮動 ip 就不行了呢? 用上述指令測試一下, 發覺所有服務都被關掉了。 後來才發現: 原來 slax 內建防火牆。 於是按照 論譠的建議:
iptables -F INPUT iptables -F OUTPUT iptables -F FORWARD iptables -t nat -F
再重新測試一次, 防火牆果然就卸除下來了。 也請搜尋 linux disable firewall。
參考資料
更多參考資料, 請用文中指令及關鍵詞搜尋。
- 本頁最新版網址: https://frdm.cyut.edu.tw/~ckhung/b/gnu/network.php; 您所看到的版本: February 13 2020 15:43:10.
- 作者: 朝陽科技大學 資訊管理系 洪朝貴
- 寶貝你我的地球, 請 減少列印, 多用背面, 丟棄時做垃圾分類。
- 本文件以 Creative Commons Attribution-ShareAlike License 或以 Free Document License 方式公開授權大眾自由複製/修改/散佈。