linux網(wǎng)絡(luò)相關(guān)命令分為:監(jiān)測,傳輸凿傅,遠(yuǎn)端登錄
命令包括:
- ping - 監(jiān)測網(wǎng)絡(luò)連通性
- traceroute - 打印數(shù)據(jù)包的路由信息
- netstat - 多種用途
- ftp - 文件傳輸
- wget - 網(wǎng)絡(luò)下載器
- ssh - 遠(yuǎn)程登錄
ping
ping 命令發(fā)送一個特殊的網(wǎng)絡(luò)數(shù)據(jù)包赡磅,叫做 IMCP ECHO_REQUEST缴守,到 一臺指定的主機(jī)囚衔。大多數(shù)接收這個包的網(wǎng)絡(luò)設(shè)備將會回復(fù)它,來允許網(wǎng)絡(luò)連接驗(yàn)證匙赞。
[me@linuxbox ~]$ ping linuxcommand.org
traceroute
traceroute會顯示從本地到指定主機(jī) 要經(jīng)過的所有“跳數(shù)”的網(wǎng)絡(luò)流量列表佛掖。
[me@linuxbox ~]$ traceroute slashdot.org
netstat
netstat 程序被用來檢查各種各樣的網(wǎng)絡(luò)設(shè)置和統(tǒng)計(jì)數(shù)據(jù)。
使用“-ie”選項(xiàng)涌庭,我們能夠查看系統(tǒng)中的網(wǎng)絡(luò)接口:
[me@linuxbox ~]$ netstat -ie
eth0 Link encap:Ethernet HWaddr 00:1d:09:9b:99:67
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::21d:9ff:fe9b:9967/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:238488 errors:0 dropped:0 overruns:0 frame:0
TX packets:403217 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100 RX bytes:153098921 (146.0 MB) TX
bytes:261035246 (248.9 MB) Memory:fdfc0000-fdfe0000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
...
在上述實(shí)例中芥被,我們看到我們的測試系統(tǒng)有兩個網(wǎng)絡(luò)接口。第一個坐榆,叫做 eth0拴魄,是 因特網(wǎng)接口,和第二個,叫做 lo匹中,是內(nèi)部回環(huán)網(wǎng)絡(luò)接口夏漱,它是一個虛擬接口,系統(tǒng)用它來 “自言自語”顶捷。
當(dāng)執(zhí)行日常網(wǎng)絡(luò)診斷時挂绰,要查看的重要信息是每個網(wǎng)絡(luò)接口第四行開頭出現(xiàn)的單詞 “UP”,說明這個網(wǎng)絡(luò)接口已經(jīng)生效服赎,還要查看第二行中 inet addr 字段出現(xiàn)的有效 IP 地址葵蒂。對于使用 DHCP(動態(tài)主機(jī)配置協(xié)議)的系統(tǒng),在 這個字段中的一個有效 IP 地址則證明了 DHCP 工作正常重虑。
使用這個“-r”選項(xiàng)會顯示內(nèi)核的網(wǎng)絡(luò)路由表践付。
這展示了系統(tǒng)是如何配置網(wǎng)絡(luò)之間發(fā)送數(shù)據(jù)包的。
[me@linuxbox ~]$ netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
在這個簡單的例子里面嚎尤,我們看到了荔仁,位于防火墻之內(nèi)的局域網(wǎng)中伍宦,一臺客戶端計(jì)算機(jī)的典型路由表芽死。 第一行顯示了目的地 192.168.1.0。IP 地址以零結(jié)尾是指網(wǎng)絡(luò)次洼,而不是個人主機(jī)关贵, 所以這個目的地意味著局域網(wǎng)中的任何一臺主機(jī)。下一個字段卖毁,Gateway揖曾, 是網(wǎng)關(guān)(路由器)的名字或 IP 地址,用它來連接當(dāng)前的主機(jī)和目的地的網(wǎng)絡(luò)亥啦。 若這個字段顯示一個星號炭剪,則表明不需要網(wǎng)關(guān)。
最后一行包含目的地 default翔脱。指的是發(fā)往任何表上沒有列出的目的地網(wǎng)絡(luò)的流量奴拦。 在我們的實(shí)例中,我們看到網(wǎng)關(guān)被定義為地址 192.168.1.1 的路由器届吁,它應(yīng)該能 知道怎樣來處理目的地流量错妖。
ftp
ftp程序可用來與FTP服務(wù)器進(jìn)行通信,FTP服務(wù)器就是存儲文件的計(jì)算機(jī),這些文件能夠通過網(wǎng)絡(luò)下載和上傳.
FTP(它的原始形式)并不是安全的,因?yàn)樗鼤悦鞔a形式發(fā)送帳號的姓名和密碼.這就意味著這些數(shù)據(jù)沒有加密,任何嗅探網(wǎng)絡(luò)的人都能看到.由于此種原因,幾乎因特網(wǎng)中所有FTP服務(wù)器都是匿名的.一個匿名服務(wù)器能允許任何人使用注冊名“anonymous”和無意義的密碼登錄系統(tǒng).
在下面的例子中,我們將展示一個典型的會話,從匿名FTP服務(wù)器,其名字是fileserver,的/pub/_images/Ubuntu-8.04的目錄下,使用ftp程序下載一個Ubuntu系統(tǒng)映像文件。
[me@linuxbox ~]$ ftp fileserver
Connected to fileserver.localdomain.
220 (vsFTPd 2.0.1)
Name (fileserver:me): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub/cd\_images/Ubuntu-8.04
250 Directory successfully changed.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-rw-r-- 1 500 500 733079552 Apr 25 03:53 ubuntu-8.04- desktop-i386.iso
226 Directory send OK.
ftp> lcd Desktop
Local directory now /home/me/Desktop
ftp> get ubuntu-8.04-desktop-i386.iso
local: ubuntu-8.04-desktop-i386.iso remote: ubuntu-8.04-desktop-
i386.iso
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ubuntu-8.04-desktop-
i386.iso (733079552 bytes).
226 File send OK.
733079552 bytes received in 68.56 secs (10441.5 kB/s)
ftp> bye
這里是對會話期間所輸入命令的解釋說明:
ftp fileserver
喚醒ftp程序疚沐,讓它連接到FTP服務(wù)器暂氯,fileserver。
anonymous
登錄名亮蛔。輸入登錄名后痴施,將出現(xiàn)一個密碼提示。一些服務(wù)器將會接受空密碼,其它一些則會要求一個郵件地址形式的密碼辣吃。如果是這種情況锉矢,試著輸入 “user@example.com”。
cd pub/cd_images/Ubuntu-8.04
跳轉(zhuǎn)到遠(yuǎn)端系統(tǒng)中齿尽,要下載文件所在的目錄下沽损,注意在大多數(shù)匿名的FTP服務(wù)器中,支持公共下載的文件都能在目錄pub下找到
ls
列出遠(yuǎn)端系統(tǒng)中的目錄循头。
lcd Desktop
跳轉(zhuǎn)到本地系統(tǒng)中的 ~/Desktop 目錄下绵估。在實(shí)例中,ftp 程序在工作目錄 ~ 下被喚醒卡骂。 這個命令把工作目錄改為 ~/Desktop
get ubuntu-8.04-desktop-i386.iso
告訴遠(yuǎn)端系統(tǒng)傳送文件到本地国裳。因?yàn)楸镜叵到y(tǒng)的工作目錄已經(jīng)更改到了 ~/Desktop,所以文件會被下載到此目錄全跨。
bye
退出遠(yuǎn)端服務(wù)器缝左,結(jié)束ftp程序會話。也可以使用命令quit和exit浓若。
在 “ftp>” 提示符下渺杉,輸入 “help”,會顯示所支持命令的列表挪钓。使用 ftp 登錄到一臺授予了用戶足夠權(quán)限的服務(wù)器中是越,則可以執(zhí)行很多普通的文件管理任務(wù)。雖然很笨拙碌上, 但它真能工作倚评。
lftp - 更好的 ftp
雖然lftp工作起來與傳統(tǒng)的 ftp 程序很相似,但是它帶有額外的便捷特性馏予,包括多協(xié)議支持(包括HTTP)天梧,若下載失敗會自動地重新下載,后臺處理霞丧,用tab按鍵來補(bǔ)全路徑名呢岗,還有很多。
wget
若想從網(wǎng)絡(luò)和FTP網(wǎng)站兩者上都能下載數(shù)據(jù)蚯妇,wget 是很有用處的敷燎。
下載 linuxcommand.org 網(wǎng)站的首頁, 我們可以這樣做:
[me@linuxbox ~]$ wget http://linuxcommand.org/index.php
--11:02:51-- http://linuxcommand.org/index.php
=> `index.php'
Resolving linuxcommand.org... 66.35.250.210
Connecting to linuxcommand.org|66.35.250.210|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
[ < => ] 3,120 --.--K/s
11:02:51 (161.75 MB/s) - 'index.php' saved [3120]
這個程序的許多選項(xiàng)允許wget:遞歸地下載箩言,在后臺下載文件(你退出后仍在下載)硬贯,能完成未下載全的文件。這些特性在命令手冊陨收,better-than-average 一節(jié)中有詳盡地說明饭豹。
SSH
ssh解決了兩個基本的和遠(yuǎn)端主機(jī)安全交流的問題鸵赖。
首先,它要認(rèn)證遠(yuǎn)端主機(jī)是否為它所知道的那臺主機(jī)(這樣就阻止了所謂的“中間人”的攻擊)
其次拄衰,它加密了本地與遠(yuǎn)程主機(jī)之間所有的通訊信息它褪。
SSH 由兩部分組成。SSH服務(wù)器運(yùn)行在遠(yuǎn)端主機(jī)上運(yùn)行翘悉,在端口號22上監(jiān)聽將要到來的連接茫打,而SSH客戶端用在本地系統(tǒng)中,用來和遠(yuǎn)端服務(wù)器通信妖混。
大多數(shù)Linux發(fā)行版自帶一個提供SSH功能的軟件包老赤,叫做OpenSSH.
用來與遠(yuǎn)端SSH服務(wù)器相連接的SSH客戶端程序,順理成章制市,叫做ssh抬旺。連接到遠(yuǎn)端名為remote-sys的主機(jī),我們可以這樣使用ssh客戶端程序:
[me@linuxbox ~]$ ssh remote-sys
The authenticity of host 'remote-sys (192.168.1.4)' can't be
established.
RSA key fingerprint is
41:ed:7a:df:23:19:bf:3c:a5:17:bc:61:b3:7f:d9:bb.
Are you sure you want to continue connecting (yes/no)?
第一次嘗試連接祥楣,提示信息表明遠(yuǎn)端主機(jī)的真實(shí)性不能確立开财。這是因?yàn)榭蛻舳顺绦蛞郧皬臎]有看到過這個遠(yuǎn)端主機(jī)。為了接受遠(yuǎn)端主機(jī)的身份驗(yàn)證憑據(jù)误褪,輸入“yes”责鳍。一旦建立了連接,會提示 用戶輸入他或她的密碼:
Warning: Permanently added 'remote-sys,192.168.1.4' (RSA) to the list of known hosts.
me@remote-sys's password:
成功地輸入密碼之后振坚,我們會接收到遠(yuǎn)端系統(tǒng)的 shell 提示符:
Last login: Sat Aug 30 13:00:48 2008
[me@remote-sys ~]$
遠(yuǎn)端shell會話一直存在薇搁,直到用戶輸入exit命令后斋扰,則關(guān)閉了遠(yuǎn)程連接渡八。這時候,本地的shell會話恢復(fù)传货,本地shell提示符重新出現(xiàn)屎鳍。
也有可能使用不同的用戶名連接到遠(yuǎn)程系統(tǒng)。例如问裕,如果本地用戶“me”逮壁,在遠(yuǎn)端系統(tǒng)中有一個帳號名 “bob”,則用戶me能夠用 bob 帳號登錄到遠(yuǎn)端系統(tǒng)粮宛,如下所示:
[me@linuxbox ~]$ ssh bob@remote-sys
bob@remote-sys's password:
Last login: Sat Aug 30 13:03:21 2008
[bob@remote-sys ~]$
SSH 通道
當(dāng)你通過SSH協(xié)議與遠(yuǎn)端主機(jī)建立連接的時候窥淆,其中發(fā)生的事就是在本地與遠(yuǎn)端系統(tǒng)之間創(chuàng)建了一條加密通道。通常巍杈,這條通道被用來把在本地系統(tǒng)中輸入的命令安全地傳輸?shù)竭h(yuǎn)端系統(tǒng)忧饭, 同樣地,再把執(zhí)行結(jié)果安全地發(fā)送回來筷畦。除了這個基本功能之外词裤,SSH 協(xié)議允許大多數(shù)網(wǎng)絡(luò)流量類型通過這條加密通道來被傳送刺洒,在本地與遠(yuǎn)端系統(tǒng)之間創(chuàng)建某種 VPN(虛擬專用網(wǎng)絡(luò))。
scp 和 sftp
這個 OpenSSH 軟件包也包含兩個程序吼砂,它們可以利用 SSH 加密通道在網(wǎng)絡(luò)間復(fù)制文件逆航。
第一個,scp(安全復(fù)制)被用來復(fù)制文件渔肩,與熟悉的 cp 程序非常相似因俐。最顯著的區(qū)別就是 源或者目標(biāo)路徑名要以遠(yuǎn)端主機(jī)的名字,后跟一個冒號字符開頭周偎。
例如女揭,如果我們想要 從遠(yuǎn)端系統(tǒng),remote-sys栏饮,的家目錄下復(fù)制文檔 document.txt吧兔,到我們本地系統(tǒng)的當(dāng)前工作目錄下, 可以這樣操作:
[me@linuxbox ~]$ scp remote-sys:document.txt .
me@remote-sys's password:
document.txt
100% 5581 5.5KB/s 00:00
[me@linuxbox ~]$
和 ssh 命令一樣袍嬉,如果你所期望的遠(yuǎn)端主機(jī)帳戶與你本地系統(tǒng)中的不一致境蔼, 則可以把用戶名添加到遠(yuǎn)端主機(jī)名的開頭。
[me@linuxbox ~]$ scp bob@remote-sys:document.txt .
第二個SSH文件復(fù)制命令是sftp伺通,正如其名字所示箍土,它是ftp程序的安全替代品。sftp 工作起來與我們之前使用的ftp程序很相似罐监;然而吴藻,它不用明碼形式來傳遞數(shù)據(jù),它使用加密的SSH通道弓柱。sftp有一個重要特性強(qiáng)于傳統(tǒng)的ftp命令沟堡,就是sftp不需要遠(yuǎn)端系統(tǒng)中運(yùn)行FTP服務(wù)器。它僅僅要求SSH服務(wù)器矢空。 這意味著任何一臺能用SSH客戶端連接的遠(yuǎn)端機(jī)器航罗,也可當(dāng)作類似于FTP的服務(wù)器來使用。 這里是一個樣本會話:
[me@linuxbox ~]$ sftp remote-sys
Connecting to remote-sys...
me@remote-sys's password:
sftp> ls
ubuntu-8.04-desktop-i386.iso
sftp> lcd Desktop
sftp> get ubuntu-8.04-desktop-i386.iso
Fetching /home/me/ubuntu-8.04-desktop-i386.iso to ubuntu-8.04-
desktop-i386.iso
/home/me/ubuntu-8.04-desktop-i386.iso 100% 699MB 7.4MB/s 01:35
sftp> bye