linux常用網(wǎng)絡(luò)命令
linux下網(wǎng)絡(luò)命令是最需要掌握的一部分命令。下面由學(xué)習(xí)啦小編為大家整理了linux常用網(wǎng)絡(luò)的相關(guān)知識,希望大家喜歡!
linux常用網(wǎng)絡(luò)命令
所有時刻如果你想要做好自己的網(wǎng)絡(luò)參數(shù)設(shè)置,包括IP參數(shù)、路由參數(shù)和無線網(wǎng)絡(luò)等,就得要了解下面這些相關(guān)的命令才行。其中Route及ip這兩條命令是比較重要的。當(dāng)然,比較早期的用法,我們都是使用ifconfig的。
? ifconfig:查詢、設(shè)置網(wǎng)卡和IP網(wǎng)段等相關(guān)參數(shù)。
? ifup、ifdown:這兩個文件是Script,通過更簡單的方式來啟動網(wǎng)絡(luò)接口。
? Route:查詢、設(shè)置路由表(Route table)。
? ip:復(fù)合式的命令,能直接修改上述命令提到的功能。
ifconfig、ifup、ifdown
這 3個命令的用途都是啟動網(wǎng)絡(luò)接口,不過,ifup和ifdown僅就 /etc/sysconfig/network- scripts內(nèi)的ifcfg-ethx(x為數(shù)字)進(jìn)行啟動或關(guān)閉的操作,并不能直接修改網(wǎng)絡(luò)參數(shù),除非手動調(diào)整ifcfg-ethx文件才行。至于 ifconfig則能直接手動給予某個接口IP或調(diào)整其網(wǎng)絡(luò)參數(shù)。下面我們就分別來談一談。
linux常用網(wǎng)絡(luò)命令1. ifconfig
ifconfig主要是能手動啟動、觀察和修改網(wǎng)絡(luò)接口的相關(guān)參數(shù),能修改的參數(shù)非常多,包括IP參數(shù)及MTU等都能修改,他的語法如下:
[root@linux ~]# ifconfig {interface} {up|down}
一 般來說,直接輸入ifconfig就會列出目前已被啟動的卡,不論這個卡是否有設(shè)置IP,都會被顯示出來。而如果是輸入ifconfig eth0,則會顯示出這個接口的相關(guān)數(shù)據(jù),而不管該接口是否啟動。所以,如果你想要知道某個網(wǎng)卡的Hardware Address,直接輸入“ifconfig"網(wǎng)絡(luò)接口代號"”即可。至于上述代碼中出現(xiàn)的各項數(shù)據(jù)是這樣的(數(shù)據(jù)排列由上而下、由左而右)。
? eth0:網(wǎng)卡的代號,也有l(wèi)o這個loopback。
? HWaddr:網(wǎng)卡的硬件地址,習(xí)慣稱為MAC。
? inet addr:IPv4的IP地址,后續(xù)的Bcase、Mask分別代表的是Broadcast和Netmask。
? inet6 addr:是IPv6的版本的IP,我們沒有使用,所以略過。
? RX:那一行代表的是網(wǎng)絡(luò)由啟動到目前為止的數(shù)據(jù)包接收情況,packets代表數(shù)據(jù)包數(shù)、errors代表數(shù)據(jù)包發(fā)生錯誤的數(shù)量、dropped代表數(shù)據(jù)包由于有問題而遭丟棄的數(shù)量等。
? TX:和RX相反,為網(wǎng)絡(luò)由啟動到目前為止的傳送情況。
? collisions:代表數(shù)據(jù)包碰撞的情況,如果發(fā)生太多次,表示你的網(wǎng)絡(luò)狀況不太好。
? txqueuelen:代表用來傳輸數(shù)據(jù)的緩沖區(qū)的儲存長度。
? RX Bytes、TX Bytes:總傳送、接收的字節(jié)總量。
? Interrupt、Memory:網(wǎng)卡硬件的數(shù)據(jù),IRQ岔斷和內(nèi)存地址。
通過觀察上述的資料,大致上能了解到你的網(wǎng)絡(luò)情況,尤其是RX、TX內(nèi)的error數(shù)量,及是否發(fā)生嚴(yán)重的collision情況,都是需要注意的。
范例二:暫時修改網(wǎng)絡(luò)接口
[root@linux ~]# ifconfig eth0 192.168.100.100
# 如果不加所有其他參數(shù),則系統(tǒng)會依照該 IP 所在的 class 范圍,
# 自動地計算出 netmask 及 network, broadcast 等 IP 參數(shù)
[root@linux ~]# ifconfig eth0 192.168.100.100 netmask 255.255.255.128 \
> mtu 8000
# 設(shè)置網(wǎng)絡(luò)接口,同時設(shè)置 MTU 的數(shù)值
[root@linux ~]# ifconfig eth0 MTU 9000
# 僅修改該接口的 MTU 數(shù)值,其他的保持不動
[root@linux ~]# ifconfig eth0:0 192.168.50.50
# 仔細(xì)看那個接口, eth0:0 。那就是在該網(wǎng)絡(luò)接口上,再仿真一個網(wǎng)絡(luò)接口,
# 亦即是在一個網(wǎng)卡上面設(shè)置多個 IP 的意思啦
[root@linux ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0F:EA:A3:06:A2
inet addr:192.168.10.100 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3669 errors:0 dropped:0 overruns:0 frame:0
TX packets:2892 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:667547 (651.9 KiB) TX bytes:584799 (571.0 KiB)
Interrupt:209 Memory:fb000000-0
eth0:0 Link encap:Ethernet HWaddr 00:0F:EA:A3:06:A2
inet addr:192.168.200.2 Bcast:192.168.200.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:209 Memory:fb000000-0
# 仔細(xì)看,是否和硬件有關(guān)的信息都相同。沒錯。因為是同一個網(wǎng)卡。
[root@linux ~]# ifconfig eth0:0 down
# 關(guān)掉 eth0:0 這個接口。如果想要啟動 eth1 ,并且不設(shè)置所有網(wǎng)絡(luò)參數(shù)
# ifconfig eth1 up 就能實(shí)現(xiàn)
[root@linux ~]# /etc/init.d/network restart
# 剛剛設(shè)置的數(shù)據(jù)全部失效,會以 ifcfg-ethx 的設(shè)置為主
使 用ifconfig能暫時用手動來設(shè)置或修改某個適配卡的相關(guān)功能,并且也能通過eth0:0這種虛擬的網(wǎng)絡(luò)接口來設(shè)置一張網(wǎng)卡上面的多個IP。手動的方 式是比較簡單。而且設(shè)置錯誤也沒有關(guān)系,因為我們能利用 /etc/init.d/network restart來重新啟動整個網(wǎng)絡(luò)接口,那么之前手動的設(shè)置數(shù)據(jù)會全部失效。另外,要啟動某個網(wǎng)絡(luò)接口,但又不讓他具有IP參數(shù)時,直接給他 ifconfig eth0 up即可。這個操作經(jīng)常在無線網(wǎng)卡當(dāng)中進(jìn)行,因為我們需要啟動無線網(wǎng)卡讓他去檢測AP存在和否。
linux常用網(wǎng)絡(luò)命令2. ifup、ifdown
實(shí)時地手動修改一些網(wǎng)絡(luò)接口參數(shù),能利用ifconfig來實(shí)現(xiàn),如果是要直接以設(shè)置文件,亦即是在 /etc/sysconfig/network-scripts里面的ifcfg-ethx等文件的設(shè)置參數(shù)來啟動的話,那就得要通過ifdown或ifup來實(shí)現(xiàn)了。
[root@linux ~]# ifup {interface}
[root@linux ~]# ifdown {interface}
[root@linux ~]# ifup eth0
ifup 和ifdown真是太簡單了。這兩個程式其實(shí)是script而已,他會直接到 /etc/ sysconfig/network-scripts目錄下搜索對應(yīng)的設(shè)置文件,例如ifup eth0,他會找出ifcfg-eth0這個文件的內(nèi)容,然后加以設(shè)置。關(guān)于ifcfg-eth0的設(shè)置請參考前一章連上Internet的說明。
不 過,由于這兩個程式主要是搜索設(shè)置文件(ifcfg-ethx)來進(jìn)行啟動和關(guān)閉的,所以在使用前請確定ifcfg-ethx是否真的存在于正確的目錄 內(nèi),否則會啟動失敗。另外,如果以ifconfig eth0來設(shè)置或是修改了網(wǎng)絡(luò)接口后,就無法再以ifdown eth0的方式來關(guān)閉了。因為ifdown會分析比較目前的網(wǎng)絡(luò)參數(shù)和ifcfg-eth0是否相符,不符的話,就會放棄這次操作。因此,使用 ifconfig修改完畢后,應(yīng)該要以ifconfig eth0 down才能夠關(guān)閉該接口。
路由修改route
我們在網(wǎng)絡(luò)基礎(chǔ)的時候談過關(guān)于路由的問題,兩臺主機(jī)之間一定要有路由才能夠互通TCP/IP的協(xié)議,否則就無法進(jìn)行聯(lián)機(jī)。一般來說,只要有網(wǎng)絡(luò)接口,該接口就會產(chǎn)生一個路由,例如,在鳥哥實(shí)驗室內(nèi)部的主機(jī)有一個eth0及l(fā)o,所以:
[root@linux ~]# route [-nee]
[root@linux ~]# route add [-net|-host] [網(wǎng)段或主機(jī)] netmask [mask] [gw|dev]
[root@linux ~]# route del [-net|-host] [網(wǎng)段或主機(jī)] netmask [mask] [gw|dev]
觀察的參數(shù):
-n,不要使用通信協(xié)議或主機(jī)名稱,直接使用 IP 或 Port Number;
-ee,使用更周詳?shù)男畔盹@示;
增加 (add) 和刪除 (del) 路由的相關(guān)參數(shù);
-net,表示后面接的路由為一個網(wǎng)段;
-host,表示后面接的為連接到單臺主機(jī)的路由;
Netmask,和網(wǎng)段有關(guān),能設(shè)置 netmask 決定網(wǎng)段的大小;
Gw,gateway 的簡寫,后續(xù)接的是 IP 的數(shù)值,和 dev 不同;
Dev,如果只是要指定由哪一塊網(wǎng)卡聯(lián)機(jī)出去,則使用這個設(shè)置,后面接 eth0 等。
范例一:單純的觀察路由狀態(tài)
[root@linux ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.10.30 0.0.0.0 UG 0 0 0 eth0
[root@linux ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.10.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
default Server.cluster 0.0.0.0 UG 0 0 0 eth0
在 上面的例子中仔細(xì)觀察route和route -n的輸出結(jié)果,你能發(fā)現(xiàn)有加-n參數(shù)的主要是顯示出IP,至于使用route,顯示的則是“主機(jī)名稱”。也就是說,在默認(rèn)的情況下,route會去找出 該IP的主機(jī)名稱,如果未找到呢?就會顯示得遲鈍(有點(diǎn)慢),所以說,鳥哥通常都直接使用route-n了。由上面看起來,我們也知道default = 0.0.0.0/0.0.0.0,而上面的信息有哪些你需要知道的呢?
? Destination、Genmask:這兩個術(shù)語就分別是Network和Netmask了。所以這兩個東西就組合成為一個完整的網(wǎng)段了。
? Gateway:該網(wǎng)段是通過哪個Gateway連接出去的?如果顯示0.0.0.0表示該路由是直接由本機(jī)傳送,亦即能通過局域網(wǎng)的MAC直接傳輸;如果有顯示IP的話,表示該路由需要經(jīng)過路由器(網(wǎng)關(guān))的幫忙才能夠傳送出去。
? Flags:總共有多個標(biāo)記,代表的意義如下。
Ø U(route is up):該路由是啟動的。
Ø H(target is a host):目標(biāo)是一臺主機(jī)(IP)而非網(wǎng)段。
Ø G(use gateway):需要通過外部的主機(jī)來傳遞數(shù)據(jù)包。
Ø R(reinstate route for dynamic routing):使用動態(tài)路由時,恢復(fù)路由信息的標(biāo)記。
Ø D(dynamically installed by daemon or redirect):已由服務(wù)器或轉(zhuǎn)port功能設(shè)置為動態(tài)路由。
Ø M(modified from routing daemon or redirect):路由已被修改了。
Ø!(reject route):這個路由將不會被接受(用來阻止不安全的網(wǎng)段)。
? Iface:這個路由傳遞數(shù)據(jù)包的接口。
此 外,觀察一下上面的路由排列順序,依序是由小網(wǎng)段(192.168.10.0/24是Class C),逐漸到大網(wǎng)段(169.254.0.0/16 是Class B),最后則是默認(rèn)路由(0.0.0.0/0.0.0.0)。然后當(dāng)我們要判斷某個網(wǎng)絡(luò)數(shù)據(jù)包應(yīng)該怎么傳送的時候,該數(shù)據(jù)包會經(jīng)由這個路由的過程來判斷。 例如,我上頭僅有三個路由,若我有一個傳往192.168.10.20的數(shù)據(jù)包要傳遞,那首先會找192.168.10.0/24這個網(wǎng)段的路由,找到 了,就直接由eth0傳送出去。
如果是傳送到Y(jié)ahoo的主機(jī)呢?Yahoo的主機(jī)IP是202.43.195.52,我通過判斷不是 192.168.10.0/24,也不是169.254.0.0/16,結(jié)果到達(dá)0/0時,傳出去了,通過eth0將數(shù)據(jù)包傳給 192.168.10.30那臺Gateway主機(jī)。所以說,路由是有順序的。
因此當(dāng)你重復(fù)設(shè)置多個同樣的路由時,例如,在你的主機(jī)上的兩張網(wǎng)卡設(shè)置為相同網(wǎng)段的IP時,會出現(xiàn)什么情況?會出現(xiàn)如下的情況:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
也就是說,由于路由是依照順序來排列和傳送的,所以不論數(shù)據(jù)包是由哪個接口(eth0、eth1)所接收,都會由上述的eth0傳送出去,所以,在一臺主機(jī)上面設(shè)置兩個相同網(wǎng)段的IP本身沒有什么意義。多此一舉。除非是類似虛擬主機(jī)(Xen、VMware等軟件)所架設(shè)的多主機(jī),才會有這個必要。
范例二:路由的增加和刪除
[root@linux ~]# route del -net 169.254.0.0 netmask 255.255.0.0 dev eth0
# 上面這個操作能刪除掉 169.254.0.0/16 這個網(wǎng)段
# 請注意,在刪除的時候,需要將路由表上面出現(xiàn)的信息都寫入
# 包括netmask、dev 等參數(shù)
[root@linux ~]# route add -net 192.168.100.0 \
> netmask 255.255.255.0 dev eth0
# 通過 route add 來增加一個路由。請注意,這個路由必須能夠和你互通
# 例如,如果我下達(dá)下面的命令就會顯示錯誤:
# route add -net 192.168.200.0 netmask 255.255.255.0 gw 192.168.200.254
# 因為我的環(huán)境內(nèi)僅有 192.168.10.100 這個 IP ,所以不能和 192.168.200.254
# 這個網(wǎng)段直接使用 MAC 互通
[root@linux ~]# route add default gw 192.168.10.30
# 增加默認(rèn)路由的方法。請注意,只要有一個默認(rèn)路由就夠了
# 在這個地方如果你隨便設(shè)置后,記得使用下面的命令重新設(shè)置你的網(wǎng)絡(luò)
# /etc/init.d/network restart
如 果是要進(jìn)行路由的刪除和增加,那就能參考上面的例子了,其實(shí),使用man route里面的信息就非常豐富了。仔細(xì)查閱一下。你只要記得,當(dāng)出現(xiàn)“SIOCADDRT: Network is unreachable”這個錯誤時,肯定是由于gw后面接的IP無法直接和你的網(wǎng)段溝通(Gateway并不在你的網(wǎng)段內(nèi)),所以,趕緊檢查一下輸入的 信息是否正確。
linux常用網(wǎng)絡(luò)命令3.ip
這里的ip是個命令,不是那個TCP/IP的IP。這個ip命令的功能可多了?;?本上,他就是集合了ifconfig和route這兩個命令了,不過ip能實(shí)現(xiàn)的功能卻又多得多,真是個相當(dāng)厲害的命令。如果你有興趣的話,請自行vi /sbin/ifup,就知道整個ifup就是利用ip這個命令來實(shí)現(xiàn)的。好了,怎么使用呢?讓我們來看看。
[root@linux ~]# ip [option] [操作] [命令]
參數(shù):
Option,設(shè)置的參數(shù),主要有:
-s,顯示出該設(shè)備的統(tǒng)計數(shù)據(jù)(statistics),例如總接受數(shù)據(jù)包數(shù)等;
操作,亦即是能針對哪些網(wǎng)絡(luò)參數(shù)進(jìn)行操作,包括有:
Link,關(guān)于設(shè)備(device) 的相關(guān)設(shè)置,包括MTU、MAC 地址等等
addr/address,關(guān)于額外的 IP 協(xié)議,例如多 IP 的實(shí)現(xiàn)等等;
route,和路由有關(guān)的相關(guān)設(shè)置
由上面的語法我們能知道,ip除了能設(shè)置一些基本的網(wǎng)絡(luò)參數(shù)之外,還能夠進(jìn)行額外的IP協(xié)議,包括多IP的實(shí)現(xiàn),真是太完美了。下面我們就分3個部分(link、addr、route)來介紹這個ip命令吧。
1. 關(guān)于設(shè)備接口(device)的相關(guān)設(shè)置:ip link
ip link能設(shè)置和設(shè)備(device)有關(guān)的相關(guān)設(shè)置,包括MTU及該網(wǎng)絡(luò)接口的MAC等,當(dāng)然也能啟動(up)或關(guān)閉(down)某個網(wǎng)絡(luò)接口了。整個語法是這樣的:
[root@linux ~]# ip [-s] link show mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:50:fc:22:9a:cb brd ff:ff:ff:ff:ff:ff
3: sit0: mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
[root@linux ~]# ip -s link show eth0
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:50:fc:22:9a:cb brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
484011792 2247372 0 0 0 0
TX: bytes packets errors dropped carrier collsns
2914104290 2867753 0 0 0 0
使 用ip link show能顯示出整個設(shè)備接口的硬件相關(guān)信息,如上所示,包括網(wǎng)卡地址(MAC)、MTU等,比較有趣的應(yīng)該是那個sit0的接口了,那個sit0的接口 是用在IPv4及IPv6的數(shù)據(jù)包轉(zhuǎn)換上的,對于我們僅使用IPv4的網(wǎng)絡(luò)是沒有作用的。lo及sit0都是主機(jī)內(nèi)部所自行設(shè)置的。而如果加上 -s的參數(shù)后,則這個網(wǎng)卡的相關(guān)統(tǒng)計信息就會被列出來,包括接收(RX)及傳送(TX)的數(shù)據(jù)包數(shù)量等,周詳?shù)膬?nèi)容和ifconfig輸出的結(jié)果是相同 的。
范例二:啟動、關(guān)閉和設(shè)置設(shè)備的相關(guān)信息
[root@linux ~]# ip link set eth0 up
# 啟動 eth0 這個設(shè)備接口。
[root@linux ~]# ip link set eth0 down
# 就關(guān)閉啊。簡單得要命
[root@linux ~]# ip link set eth0 mtu 1000
# 更改 MTU 的值,實(shí)現(xiàn) 1000 bytes,單位就是 bytes
使用ifconfig也能更新網(wǎng)卡的MTU,沒什么不相同的地方,不過,如果是要更改網(wǎng)卡代號、MAC地址的信息的話,那可就得使用ip了。不過,設(shè)置前得要先關(guān)閉該網(wǎng)卡,否則會不成功。如下所示:
范例三:修改網(wǎng)卡代號、MAC 等參數(shù)
[root@linux ~]# ip link set eth0 name vbird
SIOCSIFNAME: Device or resource busy
# 因為該設(shè)備目前是啟動的,所以不能這樣設(shè)置。你應(yīng)該這樣做:
[root@linux ~]# ip link set eth0 down mtu 900 qdisc pfifo_fast qlen 1000
link/ehter 00:40:d0:13:c3:46 brd ff:ff:ff:ff:ff:ff
# 怕了吧?連網(wǎng)卡代號都能改動。不過,玩玩后記得改回來
# 因為我們的 ifcfg-eth0 還是使用原本的設(shè)備代號。避免有問題,要改回來
[root@linux ~]# ip link set vbird name eth0
在這個設(shè)備的硬件相關(guān)信息設(shè)置上面,包括MTU、MAC及傳輸?shù)哪J降龋寄茉谶@里設(shè)置。有趣的是那個address的項目后面接的可是硬件地址(MAC)而不是IP。非常容易搞錯。切記切記。更多的硬件參數(shù)能使用man ip查閱一下和ip link有關(guān)的設(shè)置。
2. 關(guān)于額外的IP相關(guān)設(shè)置:ip address
如果說ip link是和OSI七層協(xié)議的第二層數(shù)據(jù)鏈路層有關(guān)的話,那么IP address(IP addr)就是和第三層網(wǎng)絡(luò)層有關(guān)的參數(shù)了。主要是在設(shè)置和IP有關(guān)的各項參數(shù),包括netmask、broadcast等。
[root@linux ~]# ip address show mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:50:fc:22:9a:cb brd ff:ff:ff:ff:ff:ff
inet 192.168.1.2/24 brd 192.168.1.255 scope global eth0
inet6 fe80::250:fcff:fe22:9acb/64 scope link
valid_lft forever preferred_lft forever
3: sit0: mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
看到上面那個特別的字體嗎?沒錯,那就是IP參數(shù),也是ip address最主要的功能。下面我們進(jìn)一步來新增虛擬的網(wǎng)絡(luò)接口看看:
范例二:新增一個接口,名稱假設(shè)為 eth0:vbird
[root@linux ~]# ip address add 192.168.50.50/24 broadcast + \
> dev eth0 label eth0:vbird
[root@linux ~]# ip address show eth0
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:40:d0:13:c3:46 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
inet 192.168.50.50/24 brd 192.168.50.255 scope global eth0:vbird
inet6 fe80::240:d0ff:fe13:c346/64 scope link
valid_lft forever preferred_lft forever
# 看到上面的特別字體了吧?多出了一行新的接口,且名稱是 eth0:vbird
# 至于那個 broadcast + 也能寫成 broadcast 192.168.50.255
[root@linux ~]# ifconfig
eth0:vbir Link encap:Ethernet HWaddr 00:40:D0:13:C3:46
inet addr:192.168.50.50 Bcast:192.168.50.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:5 Base address:0x3e00
# 如果使用 ifconfig 就能夠看到這個怪東西
范例三:將剛才的接口刪除
[root@linux ~]# ip address del 192.168.50.50/24 dev eth0
# 刪除就比較簡單
3. 關(guān)于路由的相關(guān)設(shè)置:ip route
這個項目當(dāng)然就是路由的觀察和設(shè)置了。事實(shí)上,ip route的功能幾乎和route命令差不多,不過,他還能進(jìn)行額外的參數(shù)設(shè)計,例如MTU的規(guī)劃等,功能相當(dāng)強(qiáng)大。
[root@linux ~]# ip route show
如上述代碼所示,最簡單的功能就是顯示出目前的路由信息,其實(shí)跟route命令相同,只是需要注意幾個小細(xì)節(jié):
? proto:此路由的路由協(xié)議,主要有Redirect、Kernel、Boot、Static、Ra等,其中Kernel指的是直接由核心判斷自動設(shè)置。
? scope:路由的范圍,主要是link,即是和本設(shè)備有關(guān)的直接聯(lián)機(jī)。
再來看一下怎么進(jìn)行路由的增加和刪除吧。
范例二:增加路由,主要是本機(jī)直接可溝通的網(wǎng)段
[root@linux ~]# ip route add 192.168.5.0/24 dev eth0
# 針對本機(jī)直接溝通的網(wǎng)段設(shè)置好路由,不必通過外部的路由器
[root@linux ~]# ip route show
192.168.5.0/24 dev eth0 scope link
……以下省略……
范例三:增加能通往外部的路由,需通過 router
[root@linux ~]# ip route add 192.168.10.0/24 via 192.168.5.100 dev eth0
[root@linux ~]# ip route show
192.168.5.0/24 dev eth0 scope link
……其他省略……
192.168.10.0/24 via 192.168.5.100 dev eth0
# 仔細(xì)看,因為我有 192.168.5.0/24 的路由存在 (我的網(wǎng)卡直接聯(lián)系),
# 所以才能將 192.168.10.0/24 的路由丟給 192.168.5.100
# 那臺主機(jī)來幫忙傳遞。和之前提到的 route 命令是相同的限制。
范例四:增加默認(rèn)路由
[root@linux ~]# ip route add default via 192.168.1.2 dev eth0
# 那個 192.168.1.2 就是我的默認(rèn)路由器 (gateway) 的意思
# 真的記得,只要一個默認(rèn)路由就 OK 。
范例五:刪除路由
[root@linux ~]# ip route del 192.168.10.0/24
[root@linux ~]# ip route del 192.168.5.0/24
事 實(shí)上,這個ip的命令實(shí)在是太博大精深了。剛接觸Linux網(wǎng)絡(luò)的朋友,可能會有點(diǎn)暈,沒有關(guān)系。你先會使用ifconfig、ifup、ifdown和 route即可,等以后有了經(jīng)驗之后,再繼續(xù)回來用ip吧。有興趣的話,也能自行參考ethtool命令(man ethtool)。
iwlist、iwconfig
這兩個命令需要你有無線網(wǎng)卡才能夠進(jìn)行使用。其用法如下:
? iwlist:利用無線網(wǎng)卡進(jìn)行無線AP的檢測和取得相關(guān)的數(shù)據(jù)。
? iwconfig:設(shè)置無線網(wǎng)卡的相關(guān)參數(shù)。
5.1.5 dhClient
如 果你是使用DHCP協(xié)議在局域網(wǎng)內(nèi)取得IP的話,那么是否一定要去編輯ifcfg-eth0內(nèi)的BOOTPROTO呢?有個更快速的做法,就是利用 dhClient這個命令。因為這個命令才是真正發(fā)送DHCP請求的。如果不考慮其他的參數(shù),他的用法非常簡單,使用下面的方法即可:
[root@linux ~]# dhClient eth0
非常簡單吧。這樣就能即時讓我們的網(wǎng)卡以DHCP協(xié)議去嘗試取得IP。不過在SuSE Distribution里面,他僅有dhcpcd這個程式,他和dhClient是相同的東西。
linux常用網(wǎng)絡(luò)命令4.ping
這 個ping是非常重要的命令,ping主要通過ICMP數(shù)據(jù)包來進(jìn)行整個網(wǎng)絡(luò)的狀況報告,當(dāng)然,最重要的就是ICMP type 0、8這兩個類型,分別是需求回報和主動回報網(wǎng)絡(luò)狀態(tài)是否存在的特性。要特別注意的是,ping需要通過IP數(shù)據(jù)包來傳送ICMP數(shù)據(jù)包,而IP數(shù)據(jù)包里 有個相當(dāng)重要的TTL(Time To Live)屬性,這是個非常重要的路由特性,周詳?shù)腎P和ICMP表頭數(shù)據(jù)請參考網(wǎng)絡(luò)基礎(chǔ)的周詳介紹。
[root@linux ~]# ping [-bcstnM] IP
參數(shù):
-b,后面接的是 broadcast 的 IP,用在你“需要對整個網(wǎng)段的主機(jī)進(jìn)行 ping ”時;
-c,后面接的是執(zhí)行 ping 的次數(shù),例如 -c 5 ;
-n,不進(jìn)行 IP 和主機(jī)名稱的反查,直接使用 IP ;
-s,發(fā)送出去的 ICMP 數(shù)據(jù)包大小,默認(rèn)為 56(bytes),再加 8 bytes 的 ICMP 表頭資料。
-t,TTL 的數(shù)值,默認(rèn)是 255,每經(jīng)過一個節(jié)點(diǎn)就會少
-M [do|dont] :主要在檢測網(wǎng)絡(luò)的 MTU 數(shù)值大小,兩個常見的項目是:
do,代表傳送一個 DF (Don’t Fragment) 旗標(biāo),讓數(shù)據(jù)包不能重新拆包和打包;
dont,代表不要傳送 DF 標(biāo)記,表示數(shù)據(jù)包能在其他主機(jī)上拆包和打包。
范例一:檢測一下 168.95.1.1 這部 DNS 主機(jī)是否存在?
[root@linux ~]# ping -c 3 168.95.1.1
PING 168.95.1.1 (168.95.1.1) 56(84) bytes of data.
64 bytes from 168.95.1.1: icmp_seq=0 ttl=243 time=9.16 ms
64 bytes from 168.95.1.1: icmp_seq=1 ttl=243 time=8.98 ms
64 bytes from 168.95.1.1: icmp_seq=2 ttl=243 time=8.80 ms
--- 168.95.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 8.807/8.986/9.163/0.164 ms, pipe 2
ping最簡單的功能就是傳送ICMP數(shù)據(jù)包去需求對方主機(jī)響應(yīng)是否存在于網(wǎng)絡(luò)環(huán)境中。上面的響應(yīng)信息當(dāng)中,幾個重要的項目如下。
? 64 Bytes:表示這次傳送的ICMP數(shù)據(jù)包大小為64 Bytes,這是默認(rèn)值。在某些特別場合中,例如,要搜索整個網(wǎng)絡(luò)內(nèi)最大的MTU時,能使用-s 2000之類的數(shù)值來取代。
? icmp_seq=0:ICMP所檢測進(jìn)行的次數(shù),第一次編號為0。
? ttl=243:TTL和IP數(shù)據(jù)包內(nèi)的TTL是相同的,每經(jīng)過一個帶有MAC的節(jié)點(diǎn)(node)時,例如router、bridge時,TTL就會減少1,默認(rèn)的TTL為255,你能通過 -t 150之類的方法來重新設(shè)置默認(rèn)TTL數(shù)值。
? time=9.16 ms:響應(yīng)時間,單位有ms(0.001秒)及µs(0.000001秒),一般來說,響應(yīng)時間越小,表示兩臺主機(jī)之間的網(wǎng)絡(luò)聯(lián)機(jī)越良好。
如果你忘記加上 -c 3這樣的規(guī)定檢測次數(shù),那就得要使用 [ctrl]-c將他結(jié)束掉了。
范例二:針對整個網(wǎng)段進(jìn)行 ping 的追查
[root@linux ~]# ping -c 3 -b 192.168.10.255
WARNING: pinging broadcast address
如 果想要了解網(wǎng)內(nèi)有多少臺主機(jī)存活著,那么使用ping -b broadcast就能夠知道了。而不必一臺一臺主機(jī)來檢測。另外要特別注意一下,如果你的主機(jī)和待檢測主機(jī)并不在同一個網(wǎng)段內(nèi),那么TTL默認(rèn)使用 255,如果是同一個網(wǎng)段內(nèi),那么TTL默認(rèn)則使用64。看看上面的輸出即可明白。
我們在前幾章的網(wǎng)絡(luò)基礎(chǔ)里面談到加大幀(frame)時,對于 網(wǎng)絡(luò)性能是有幫助的,因為數(shù)據(jù)包打包的次數(shù)會減少,加上如果整個傳輸?shù)拿浇槎寄軌蚪邮苓@個frame而不必重新進(jìn)行數(shù)據(jù)包的拆解和重組的話,那么性能當(dāng)然 會更好,修改frame大小的參數(shù)就是MTU。好了,目前我們知道網(wǎng)卡的MTU能通過ifconfig或是ip等來實(shí)現(xiàn),那么追蹤整個網(wǎng)絡(luò)傳輸?shù)淖畲?MTU時,又該怎么查詢?最簡單的方法當(dāng)然是通過ping傳送一個大數(shù)據(jù)包,并且不許中繼的路由器或Switch將該數(shù)據(jù)包重組,這就能夠處理了:
范例三:找出最大的 MTU 數(shù)值
[root@linux ~]# ping -c 2 -s 1000 -M do 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 1000(1028) bytes of data.
1008 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.424 ms
# 如果有響應(yīng),那就是能接受這個數(shù)據(jù)包,如果無響應(yīng),那就表示這個 MTU 太大了
[root@linux ~]# ping -c 2 -s 8000 -M do 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 8000(8028) bytes of data.
ping: local error: Message too long, mtu=1500
# 這個錯誤信息是說,本地端的 MTU 才到 1500 而已,你要檢測 8000 的 MTU
# 根本就是無法實(shí)現(xiàn)的。那怎么是好?用前一小節(jié)介紹的 ip link 來進(jìn)行 MTU 設(shè)置吧
不 過,你需要知道的是,由于IP數(shù)據(jù)包表頭(不含options)已占用了20Bytes,再加上ICMP的表頭有8Bytes,所以當(dāng)然你在使用 -s size的時候,那個數(shù)據(jù)包就得要先扣除 (20+8=28)的大小了。因此如果要使用MTU為1500時,就得要下達(dá)“ping -s 1472 -M do xx.yy.zz.ip”才行。另外,由于本地端的網(wǎng)卡MTU也會影響到檢測,所以如果想要檢測整個傳輸媒介的MTU數(shù)值,那么每個能調(diào)整的主機(jī)就得要先 使用ifcofig或ip將MTU調(diào)大,然后再去進(jìn)行檢測,否則就會像上面提供的案例相同,可能會出現(xiàn)“Message too long,mtu=1500”之類的字樣。如果檢測完畢后,想要調(diào)整最佳化的MTU,那么請參考前一章節(jié)的內(nèi)容來調(diào)整。
不過不要隨便調(diào)整MTU,除非真的有問題。通常是在如下情況調(diào)整MTU。
? 因為全部的主機(jī)群都是在內(nèi)部的網(wǎng)段,例如群集架構(gòu)(Cluster)的環(huán)境下,由于內(nèi)部的網(wǎng)絡(luò)節(jié)點(diǎn)都是我們能控制的,因此能通過修改MTU來改進(jìn)網(wǎng)絡(luò)性能。
? 因為操作系統(tǒng)默認(rèn)的MTU和你的網(wǎng)段不符,導(dǎo)致某些網(wǎng)站能順利聯(lián)機(jī),某些網(wǎng)站則無法聯(lián)機(jī)。以視窗系統(tǒng)操作系統(tǒng)作為聯(lián)機(jī)分享的主機(jī)時,在Client端挺容易發(fā)生這個問題。
如果是要連上Internet的主機(jī),注意不要隨便調(diào)整MTU,因為我們無法知道Internet上面的每臺機(jī)器能夠支持的MTU到多大,因為這些也不是我們能夠管得到的。
另外,其實(shí)每種聯(lián)機(jī)方式都有不同的MTU值,常見的各種接口的MTU值如表5-1所示。
表5-1 常見的各種接口的MTU值
網(wǎng)絡(luò)接口
MTU
Ethernet
1500
PPPoE
1492
Dial-up(Modem)
576
網(wǎng)絡(luò)上也有免費(fèi)幫忙查詢MTU和傳輸相關(guān)數(shù)據(jù)的網(wǎng)站,例如下面這個網(wǎng)站:
http://forums.speedguide.net:8117/
連接上這個網(wǎng)站之前,請先取消你瀏覽器上的代理服務(wù)器(Proxy)的設(shè)置,才能顯示出正確的信息。如果在視窗系統(tǒng)的系統(tǒng)上想要修改MTU值的話,那就得要修改視窗系統(tǒng)的日志文件,在視窗系統(tǒng)上面對于MTU的檢測和修改的周詳做法能參考微軟的官方網(wǎng)站:
http://www.microsoft.com/taiwan/msclub/member/TIPS/Spring_2001
/tip1to3/tip1to3_2.htm
linux常用網(wǎng)絡(luò)命令5.traceroute
我 們前面談到的命令大多數(shù)都是針對主機(jī)的網(wǎng)絡(luò)參數(shù)設(shè)置所需要的,而ping是兩臺主機(jī)之間的回應(yīng)和否的判斷,那么有沒有命令能追蹤兩臺主機(jī)之間通過的各個節(jié) 點(diǎn)(Node)通信狀況的好壞呢?如果我們聯(lián)機(jī)到y(tǒng)ahoo的速度比平常慢,你覺得是自己的網(wǎng)絡(luò)環(huán)境有問題,還是外部的Internet有問題?如果是前 者的話,我們當(dāng)然需要檢查自己的網(wǎng)絡(luò)環(huán)境,看看究竟是誰中毒了?但如果是Internet的問題呢?那只有“等等等”了。判斷是這個問題就得要使用 traceroute這個命令。
[root@linux ~]# traceroute [-nwig] IP
參數(shù):
-n,能不必進(jìn)行主機(jī)的名稱解析,只用 IP ,速度較快。
-w,若對方主機(jī)在幾秒鐘內(nèi)沒有回聲就宣告不治...默認(rèn)是 5 秒。
-i,用在比較復(fù)雜的環(huán)境,如果你的網(wǎng)絡(luò)接口非常多非常復(fù)雜時,才會用到這個參數(shù)。
例如,你有兩條 ADSL 能連接到外部,那你的主機(jī)會有兩個 ppp。
你能使用 -i 來選擇是 ppp0 還是 ppp1 啦。
-g,和 -i 的參數(shù)相仿,只是 -g 后面接的是 gateway 的 IP 。
范例一:
[root@linux ~]# traceroute -n tw.yahoo.com
traceroute to tw.yahoo-ap1.akadns.net (203.84.202.164), 30 hops max,
38 byte packets
1 61.59.121.1 42.174 ms 41.690 ms 41.058 ms
2 139.175.172.2 40.962 ms 41.978 ms 40.973 ms
3 192.72.122.130 40.983 ms 41.930 ms 41.003 ms
4 139.175.58.210 42.956 ms 41.997 ms 42.337 ms
5 139.175.58.153 47.591 ms 47.972 ms 48.748 ms
6 139.175.56.30 48.193 ms 47.970 ms 47.986 ms
7 139.175.57.94 47.959 ms 47.951 ms 47.985 ms
8 139.175.56.138 48.363 ms 47.586 ms 47.995 ms
9 139.175.58.42 49.256 ms 50.668 ms 47.490 ms
10 61.58.33.133 201.882 ms 201.565 ms 200.973 ms
11 61.58.33.50 199.910 ms 199.019 ms 198.961 ms
12 203.84.200.226 202.391 ms 202.567 ms 209.283 ms
這 個traceroute挺有意思的,這個命令會針對你想要連接的目的地的所有Router進(jìn)行ICMP的超時等待,例如上面的例子當(dāng)中,由鳥哥的主機(jī)連接 到Y(jié)ahoo時,他會經(jīng)過12個節(jié)點(diǎn),traceroute會主動對這12個節(jié)點(diǎn)做ICMP的回應(yīng)等待,并檢測回復(fù)的時間,每個節(jié)點(diǎn)會檢測三次。所以像上 面顯示的結(jié)果,發(fā)現(xiàn)每個節(jié)點(diǎn)其實(shí)回復(fù)的時間大約在200 ms以內(nèi),算是Internet的環(huán)境還能了。而且由上面的信息來看,在61.58.33.133這個節(jié)點(diǎn)后的傳輸延遲較久,至于之前的9個節(jié)點(diǎn)則有不錯 的表現(xiàn)。通過這種分析,能讓你了解到這條聯(lián)線是哪個環(huán)節(jié)出了問題。
另外,如果在默認(rèn)的5秒鐘之內(nèi)traceroute聽不到節(jié)點(diǎn)的回應(yīng),那么屏幕 上就會出現(xiàn)一個“*”的符號,告知該節(jié)點(diǎn)無法有順利的響應(yīng)。由于我們的traceroute用的是ICMP數(shù)據(jù)包,有些防火墻或主機(jī)可能會將ICMP數(shù)據(jù) 包扔掉,因此就會造成等不到回應(yīng)的狀況。另外,有些Gateway本來就不支持traceroute的功能,因此也會產(chǎn)生“*”的狀況,所以分析時要注意 一下。
linux常用網(wǎng)絡(luò)命令6.nslookup
這條命令的用途和host基本上是相同的,就是用來作為IP和主機(jī)名稱對應(yīng)的檢查,同樣是使用 /etc/resolv.conf這個文件作為DNS服務(wù)器的來源選擇。
[root@linux ~]# nslookup [-query=[type]] [hostname|IP]
參數(shù):
-query=type:查詢的類型,除了傳統(tǒng)的 IP 和主機(jī)名稱對應(yīng)外,DNS 更有非常多信息
所以我們能查詢非常多不同的信息,包括mx、cname 等
例如: -query=mx 的查詢方法。
范例一:找出 www.google.com.tw 的 IP
[root@linux ~]# nslookup www.google.com.tw
Server: 168.95.1.1
Address: 168.95.1.1#53
Non-authoritative answer:
www.google.com.tw canonical name = www.google.com.
www.google.com canonical name = www.l.google.com.
Name: www.l.google.com
Address: 64.233.189.104
范例二:找出 168.95.1.1 的主機(jī)名稱
[root@linux ~]# nslookup 168.95.1.1
Server: 168.95.1.1
Address: 168.95.1.1#53
1.1.95.168.in-addr.arpa name = dns.hinet.net.
怎么,看起來和host差不多吧。不過,這個nslookup還能通過IP找出主機(jī)名稱。例如,那個范例二,他的主機(jī)名稱是:dns.hinet.net。目前大家都建議使用dig這個命令來取代nslookup
linux常用網(wǎng)絡(luò)命令7.Telnet
Telnet 是早期個人計算機(jī)連接到服務(wù)器主機(jī)上工作時最重要的一個軟件了。他不僅能直接連接到服務(wù)器上,還能用來連接BBS呢。非常棒!不過,Telnet本身的數(shù) 據(jù)在傳送的時候是使用明文(原始的數(shù)據(jù),沒有加密),所以數(shù)據(jù)在Internet上面跑的時候,會比較危險一點(diǎn)(就怕被別人監(jiān)聽)。更周詳?shù)膬?nèi)容我們會在 “遠(yuǎn)程聯(lián)機(jī)服務(wù)器”章節(jié)里做介紹的。
[root@linux ~]# Telnet [host|IP] [port]
范例一:連接到成大夢之大地這個 BBS 站
[root@linux ~]# Telnet bbs.dorm.ncku.edu.tw
bbs.ccns.ncku.edu.tw ⊙
⊙ 140.116.250.3 [DreamBBS Ver.040223]
歡迎光臨。系統(tǒng)負(fù)載:0.16 0.16 0.16 [負(fù)載正常]
?─┼────┼─? ?? ┌┤夢之大地├────────────┐
?──┬──┬──??───┴┴───┬? │ │
?──┴──┴──? │ │ 夢之大地由 │
?────────? ?─? │ 【計算機(jī)網(wǎng)絡(luò)愛好社‧CCNS】 │
?───┬───? ?──? │ 維護(hù)管理 │
│ │ ?─? │ │
?───┴───? ?┴───────? └───────────┤By BenHe├┘
┌┤本站站長群├────────┐ ? ? ? ?
│站長: billcho │ ?────┼────??─┼─?┼──┼?
│系統(tǒng): cat │ │ │ │ ││
│站務(wù): muwell ianwolf │ ??? │ │ ││
│ renn999 GG │ ?? ?? │ │ │?
│ │ ?? ?? │? │
└───────────────┘ ?? ?─??─┴? ?───?
參觀用賬號:guest,申請新賬號:new。目前在線人數(shù) [2183/5000] 人。
請輸入代號:
如 上所示,我們能通過Telnet輕易地連接到BBS上面,而如果你的主機(jī)有開啟Telnet服務(wù)的話,同樣地利用Telnet IP并且輸入賬號和密碼 之后,就能夠登錄主機(jī)了。另外,在Linux上的Telnet軟件還提供了Kerberos的認(rèn)證方式,有興趣的話請自行參閱man Telnet的說明。
除了連接到服務(wù)器及連接到BBS站之外,Telnet還能用來連接到某個port(服務(wù))上。例如,我們能用Telnet連接到port 110,看看這個port是否正確啟動了。
范例二:檢測本機(jī)端的port 110 是否正確啟動?
[root@linux ~]# Telnet localhost 110
Trying 127.0.0.1...
Telnet: connect to address 127.0.0.1: Connection refused
# 如果出現(xiàn)這樣的信息,代表這個 port 沒有啟動或是這個聯(lián)機(jī)有問題
# 因為你看到那個 refused
[root@linux ~]# Telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is ’_]’.
220 vbird.vbird.idv.tw ESMTP Postfix
ehlo localhost
250-linux.dm.tsai
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250 8BITMIME
quit
221 Bye
Connection closed by foreign host.
根 據(jù)輸出的結(jié)果,我們就能夠知道這個通信協(xié)議(Port Number提供的通信協(xié)議功能)是否已成功地啟動了。而每個port所監(jiān)聽的服務(wù)都有其特別的命令,例如,上述的port 25就是本機(jī)接口提供的電子郵件服務(wù),那個服務(wù)所支持的命令就如同上面使用的數(shù)據(jù)相同,不過其他的port就不見得支持這個ehlo命令,因為不同的 port有不同的程式嘛,當(dāng)然支持的命令就不同了
linux常用網(wǎng)絡(luò)命令8.FTP
常常會聽到FTP這個服務(wù)。如果你想要下載Linux的光盤燒錄映象文件時,能到FTP網(wǎng)站,他們都是FTP提供者啊。那我們要怎么去下載呢?當(dāng)然就是通過FTP的客戶端軟件了。在Linux下面,我們能通過FTP這個軟件,也能通過下一小節(jié)會提到的LFTP軟件。
[root@linux ~]# FTP [-p] [host|IP] [port]
參數(shù):
-p :啟動被動式模式 (passive、PASV);
范例一:聯(lián)機(jī)看看
[root@linux ~]# FTP FTP.isu.edu.tw
Connected to FTP.isu.edu.tw (140.127.177.17).
220-歡迎光臨義守大學(xué)文件服務(wù)器
220-
220-本站提供以下軟件可供下載:
220-********************************************************************
220-/pub/BeOS/ BeOS 操作系統(tǒng)
220-/pub/Linux/ Linux 操作系統(tǒng)
....(其他省略)....
220-********************************************************************
Name (FTP.isu.edu.tw:dmtsai): anonymous
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
FTP>
FTP> help cd /pub dir get file mget file put file delete file mkdir dir lcd /home passive binary
FTP其實(shí)是個非常麻煩的協(xié)議,因為他使用兩個port分別進(jìn)行命令和數(shù)據(jù)的通信,周詳?shù)膬?nèi)容我們會在后續(xù)的FTP 服務(wù)器內(nèi)詳談,這里我們先簡單介紹一下怎么使用FTP這個軟件。首先當(dāng)然需要登錄了,所以在上面的代碼中填入賬號和密碼。由于提供匿名登錄,而匿名登錄者 的賬號就是anonymous,所以直接填寫那個賬號即可。如果是私人的FTP,可能需要提供一組完整的賬號和密碼。
登錄FTP主機(jī)后,就能夠使 用FTP軟件的功能進(jìn)行上傳和下載的操作,幾個常用的FTP內(nèi)命令如上述代碼所示,不過,鳥哥建議你能連到大學(xué)的FTP網(wǎng)站后,使用help(或問號 ?)來查詢可用的命令,然后嘗試下載以測試使用一下這個命令吧。這樣以后沒有瀏覽器的時候,你也能直接連接下載FTP了。
另外,如果由于某些原因,讓你的FTP主機(jī)的port開在非正規(guī)的端口,那你就能利用下面的方式來連接到該臺主機(jī)。
[root@linux ~]# FTP hostname 318
# 假設(shè)對方主機(jī)的 FTP 服務(wù)開啟在 318 這個 port 。
linux常用網(wǎng)絡(luò)命令9.LFTP
早期當(dāng)我們要登錄提供匿名登錄的主機(jī)時,非常多時候都是使用ncFTP這個軟件,不過,目前有更棒的選擇,那就是LFTP。這個軟件甚至能在FTP里面使用類似Bash的指令功能,實(shí)在是非常的完美。而且整個使用的方法和上面提到的FTP又非常類似。
[root@linux ~]# LFTP [-p port] [-u user[,pass]] [host|IP]
參數(shù):
-p,后面能直接接上遠(yuǎn)程 FTP 主機(jī)提供的 port
-u,后面則是接上 賬號和密碼 ,就能夠連接上遠(yuǎn)程主機(jī)了
如果沒有加賬號密碼, lFTP 默認(rèn)會使用 anonymous 嘗試匿名登錄
范例一:利用 LFTP 登錄義守大學(xué)
[root@linux ~]# LFTP FTP.isu.edu.tw
lFTP FTP.isu.edu.tw:~>
# 瞧。一下子就登錄了
至 于登錄FTP主機(jī)后,相同能使用help來顯示出能執(zhí)行的命令,和FTP非常類似。不過多了書簽的功能,而且也非常的類似于bash,這個功能非常不錯。 除了這個好用的文本界面的FTP軟件之外,事實(shí)上更有非常多圖像界面的好用軟件呢。最常見的就是gFTP了。不僅是圖像界面,而且和cute FTP非常像,非常容易上手。Cent OS本身就有提供gFTP了,你能拿出原版的光盤來安裝,然后進(jìn)入X Window后,啟動一個Shell,輸入gFTP就能夠發(fā)現(xiàn)他的好用了。下面我們再來介紹一下實(shí)時通信吧。
linux常用網(wǎng)絡(luò)命令9.Gaim
我想,目前大家應(yīng)該都知道什么是MSN、雅虎實(shí)時通及其他的通信軟件吧。那么要連上這些服務(wù)器時,該怎么處理哪?非常簡單,在X Window下面使用Gaim就行了,太方便了。請先進(jìn)入X Window系統(tǒng),然后開啟一個終端機(jī)窗口,接著直接輸入Gaim(請注意你必須已安裝了Gaim了),然后就會出現(xiàn)如圖5-1所示的窗口。
圖5-1 Gaim使用范例圖
輸入你的賬號和密碼,并選擇相對應(yīng)的實(shí)時通信服務(wù)器(如MSN或Yahoo實(shí)時通),就能進(jìn)入到如圖5-2所示的界面
圖5-2 Gaim使用范例圖
當(dāng)一切都沒有問題后,按下“登錄”按鈕,這樣就能在Linux上使用實(shí)時通信軟件了,方便得非常。
文本網(wǎng)頁瀏覽
什么?文本界面竟然有瀏覽器!別逗了好不好?呵呵!誰有那個時間在逗你。真的有這個東西,是在文本界面下上網(wǎng)瀏覽的好工具,他們分別是lynx及wget這兩個寶貝,不過,你必須確定你已安裝了這兩個軟件才行。下面就讓我們來聊一聊這兩個好用的家伙吧。
5.4.1 lynx
這 個命令最大的作用就是讓我們在文本模式下使用這個瀏覽器來瀏覽網(wǎng)頁。但鳥哥認(rèn)為,這個文件最大的功能是查閱Linux本機(jī)上面以HTML語法寫成的文件信 息(Document),怎么說呢?如果你原來在Linux本機(jī)下面的 /usr/share/doc這個目錄看過文件信息的話,就會常常發(fā)現(xiàn)一些網(wǎng)頁文件,使用vi去查閱時,總是看到一堆HTML的語法,妨礙閱讀啊。這時候 使用lynx就是個好方法了,內(nèi)容能看得清清晰楚。
[root@linux ~]# lynx [options] [website]
參數(shù):
options 指的是一些慣用的參數(shù),能使用 man lynx 查閱,常見的有:
-anonymous :默認(rèn)使用匿名登錄。
-assume_charset=big5 :設(shè)置默認(rèn)的語系數(shù)據(jù)為 big5 ,用在中文網(wǎng)頁非常方便。
范例一:瀏覽 Linux kernel 網(wǎng)站
[root@linux ~]# LANG=zh_TW.big5
[root@linux ~]# lynx http://www.kernel.org
輸入LANG=zh_TW.big5是當(dāng)你想要瀏覽中文網(wǎng)站時,那么終端機(jī)就得要有相對應(yīng)的顯示編碼才行,否則會有一堆亂碼產(chǎn)生。當(dāng)我直接輸入lynx網(wǎng)站的網(wǎng)址后,就會出現(xiàn)如圖5-3所示界面。
圖5-3 lynx使用范例圖
在圖5-3中,特別字體的部分是我們能使用Tab按鍵來進(jìn)行終極鏈接的轉(zhuǎn)換。而上圖最下面一行則顯示出一些熱鍵,能按上述的熱鍵來參考一些常見的命令功能。不過有些地方你還是要知道一下:
? 進(jìn)入界面之后,由于是文本模式,所以編排可能會有點(diǎn)位移。不過不要緊,不會影響我們查看信息。
? 這個時候能使用“上下鍵”讓光標(biāo)停在上面的選項當(dāng)中(如信箱、書簽等),再按下Enter就進(jìn)入該頁面。
? 能使用左右鍵來移動“上一頁”或“下一頁”。
? 能通過修改 /etc/lynx.cfg來設(shè)置顯示的字符編碼(中國臺灣地區(qū)能選擇Big5編碼)。
? 其他的設(shè)置能使用上面的范例中最下面那一行的說明。
一些常見功能如下:
? h:Help,求助功能,在線說明書。
? g:Goto URL,按g后輸入網(wǎng)頁地址(URL)如
http://www.abc.edu/
等。
? d:download,下載文件。
? q:Quit,退出lynx 。
? Ctrl+C:強(qiáng)迫中止lynx的執(zhí)行。
? 方向鍵如下:
Ø 上:移動光標(biāo)至本頁中“上一個可鏈接點(diǎn)”。
Ø 下:移動光標(biāo)至本頁中“下一個可鏈接點(diǎn)”。
Ø 左:back,跳回上一頁。
Ø 右:進(jìn)入反白光標(biāo)所鏈接的網(wǎng)頁。
Ø Enter:等同“右”鍵。
至于如果是瀏覽Linux本機(jī)上面的網(wǎng)頁文件,那就能使用如下的方式:
[root@linux ~]# cd /usr/share/doc/samba-3.0.10/htmldocs
[root@linux htmldocs]# lynx index.html
在鳥哥的Cent OS 4.3當(dāng)中,有這么一個文件,我就能利用lynx來取得查看。顯示的結(jié)果如圖5-4所示。
圖5-4 lynx使用范例圖
當(dāng)然,因為你的環(huán)境可能是在Linux本機(jī)的tty1~tty6,所以無法顯示出中文,這個時候你就得要進(jìn)行LANG=en_US之類的語言設(shè)置才行。而如果你常常需要瀏覽中文語系的網(wǎng)頁,那就能直接修改設(shè)置文件,例如 /etc/lynx.cfg這個文件內(nèi)容:
[root@linux ~]# vi /etc/lynx.cfg
CHARACTER_SET:utf-8
另外,如果有時候你必須上網(wǎng)點(diǎn)選某個網(wǎng)站來自動取得更新時。例如,早期的自動在線更新主機(jī)名稱系統(tǒng),僅支持網(wǎng)頁更新,那你怎么進(jìn)行更新呢?能使用lynx!利用 -dump這個參數(shù)先處理:
[root@linux ~]# lynx -dump \
> http://some.site.name/web.php?name=user&password=pw > testfile
上 面的網(wǎng)站后面有加個問號(?)對吧?后面接的則是利用網(wǎng)頁的GET功能取得的各項變量數(shù)據(jù),利用這個功能,我們就能直接登錄到該網(wǎng)站上了。非常方便吧。而 且會將執(zhí)行的結(jié)果輸出到testfile文件中,不過如果網(wǎng)站提供的數(shù)據(jù)是以POST為主的話,那鳥哥就不知道怎么搞定了。
linux常用網(wǎng)絡(luò)命令10.tcpdump
說 實(shí)在的,對于tcpdump這個軟件來說,你甚至能說這個軟件其實(shí)就是個黑客軟件,因為他不僅能分析數(shù)據(jù)包的流向,連數(shù)據(jù)包的內(nèi)容也能進(jìn)行監(jiān)聽,如果你使 用的傳輸數(shù)據(jù)是明文的話,在Router上就可能被人家監(jiān)聽走了。非??膳隆K裕覀円惨獊砹私庖幌逻@個軟件(注:這個tcpdump必須使用root 的身份執(zhí)行)。
[root@linux ~]# tcpdump [-nn] [-i 接口] [-w 儲存檔名] [-c 次數(shù)] [-Ae]
[-qX] [-r 文件] [所欲捕捉的數(shù)據(jù)內(nèi)容]
參數(shù):
-nn,直接以 IP 及 Port Number 顯示,而非主機(jī)名和服務(wù)名稱。
-i,后面接要「監(jiān)聽」的網(wǎng)絡(luò)接口,例如 eth0, lo, ppp0 等等的接口。
-w,如果你要將監(jiān)聽所得的數(shù)據(jù)包數(shù)據(jù)儲存下來,用這個參數(shù)就對了。后面接文件名。
-c,監(jiān)聽的數(shù)據(jù)包數(shù),如果沒有這個參數(shù), tcpdump 會持續(xù)不斷的監(jiān)聽,
直到用戶輸入 [ctrl]-c 為止。
-A,數(shù)據(jù)包的內(nèi)容以 ASCII 顯示,通常用來捉取 WWW 的網(wǎng)頁數(shù)據(jù)包資料。
-e,使用資料連接層 (OSI 第二層) 的 MAC 數(shù)據(jù)包數(shù)據(jù)來顯示。
-q,僅列出較為簡短的數(shù)據(jù)包信息,每一行的內(nèi)容比較精簡。
-X,能列出十六進(jìn)制 (hex) 及 ASCII 的數(shù)據(jù)包內(nèi)容,對于監(jiān)聽數(shù)據(jù)包內(nèi)容非常有用。
-r,從后面接的文件將數(shù)據(jù)包數(shù)據(jù)讀出來。那個「文件」是已存在的文件,
并且這個「文件」是由 -w 所制作出來的。
所欲捕捉的數(shù)據(jù)內(nèi)容:我們能專門針對某些通信協(xié)議或是 IP 來源進(jìn)行數(shù)據(jù)包捕捉。
那就能簡化輸出的結(jié)果,并取得最有用的信息。常見的表示方法有。
’host foo’, ’host 127.0.0.1’ :針對單臺主機(jī)來進(jìn)行數(shù)據(jù)包捕捉。
’net 192.168’ :針對某個網(wǎng)段來進(jìn)行數(shù)據(jù)包的捕捉。
’src host 127.0.0.1’ ’dst net 192.168’:同時加上來源(src)或目標(biāo)(dst)限制。
’tcp port 21’:還能針對通信協(xié)議檢測,如tcp、udp、arp、ether 等。
還能利用 and 和 or 來進(jìn)行數(shù)據(jù)包數(shù)據(jù)的整合顯示呢。
范例一:以 IP 和 Port Number 捉下 eth0 這個網(wǎng)卡上的數(shù)據(jù)包,持續(xù) 3 秒
[root@linux ~]# tcpdump -i eth0 -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
01:33:40.41 IP 192.168.1.100.22 > 192.168.1.11.1190: P 116:232(116) ack 1 win
9648
01:33:40.41 IP 192.168.1.100.22 > 192.168.1.11.1190: P 232:364(132) ack 1 win
9648
如 果你是第一次看tcpdump的man page時,肯定會暈菜的,因為tcpdump幾乎都是分析數(shù)據(jù)包的表頭數(shù)據(jù),用戶如果沒有簡單的網(wǎng)絡(luò)數(shù)據(jù)包基礎(chǔ)知識,要看懂非常困難。所以,至少你得要 回到第2章“網(wǎng)絡(luò)基礎(chǔ)”里面去好好理解一下TCP數(shù)據(jù)包的表頭信息才好。至于那個在范例一所產(chǎn)生的輸出中,我們能大概區(qū)分為幾個字段,現(xiàn)以范例一當(dāng)中那行 特別字體行來說明一下:
? 01:33:40.41:這個是此數(shù)據(jù)包被捕捉的時間,“時:分:秒”的單位。
? IP:通過的通信協(xié)議是IP。
? 192.168.1.100.22>:傳送端是192.168.1.100這個IP,而傳送的Port Number為22,那個大于(>)的符號指的是數(shù)據(jù)包的傳輸方向。
? 192.168.1.11.1190:接收端的IP是192.168.1.11,且該主機(jī)開啟port 1190來接收。
? P 116:232(116):這個數(shù)據(jù)包帶有PUSH的數(shù)據(jù)傳輸標(biāo)志,且傳輸?shù)臄?shù)據(jù)為整體數(shù)據(jù)的116~232 Byte,所以這個數(shù)據(jù)包帶有116 Bytes的數(shù)據(jù)量。
? ack 1 win 9648:ACK和Window size的相關(guān)資料。
最 簡單的說法,就是該數(shù)據(jù)包是由192.168.1.100傳到192.168.1.11,通過的port是由22到1190,且?guī)в?16 Bytes的數(shù)據(jù)量,使用的是PUSH的標(biāo)記,而不是SYN之類的主動聯(lián)機(jī)標(biāo)志。不容易看得懂吧。所以,我才會講請務(wù)必到“TCP表頭數(shù)據(jù)”的章節(jié)去看一 看。
接下來,在一個網(wǎng)絡(luò)狀態(tài)非常忙的主機(jī)上面,你想要取得某臺主機(jī)對你聯(lián)機(jī)的數(shù)據(jù)包數(shù)據(jù)時,使用tcpdump配合管線命令和正則表達(dá)式也能,不 過,畢竟不好捕捉。我們能通過tcpdump的表達(dá)式功能,就能夠輕易地將所需要的數(shù)據(jù)獨(dú)立的取出來。在上面的范例一當(dāng)中,我們僅針對eth0做監(jiān)聽,所 以整個eth0接口上面的數(shù)據(jù)都會被顯示到屏幕上,但這樣不好分析,能簡化嗎?例如,只取出port 21的聯(lián)機(jī)數(shù)據(jù)包,能這樣做:
[root@linux ~]# tcpdump -i eth0 -nn port 21
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
01:54:37.96 IP 192.168.1.11.1240 > 192.168.1.100.21:. ack 1 win 65535
01:54:37.96 IP 192.168.1.100.21 > 192.168.1.11.1240:P 1:21(20) ack 1 win 5840
01:54:38.12 IP 192.168.1.11.1240 > 192.168.1.100.21:. ack 21 win 65515
01:54:42.79 IP 192.168.1.11.1240 > 192.168.1.100.21:P 1:17(16) ack 21 win 65515
01:54:42.79 IP 192.168.1.100.21 > 192.168.1.11.1240: . ack 17 win 5840
01:54:42.79 IP 192.168.1.100.21 > 192.168.1.11.1240: P 21:55(34) ack 17 win 5840
看!這樣就僅取出port 21的信息,如果仔細(xì)看的話,你會發(fā)現(xiàn)數(shù)據(jù)包的傳遞都是雙向的,Client端發(fā)出請求而Server端則予以響應(yīng),所以,當(dāng)然是有去有回了。而我們也就能經(jīng)過這個數(shù)據(jù)包的流向來了解到數(shù)據(jù)包運(yùn)動的過程了。例如:
? 我們先在一個終端機(jī)窗口輸入“tcpdump-i lo-nn”的監(jiān)聽。
? 再另開一個終端機(jī)窗口來對本機(jī)(127.0.0.1)登錄“ssh localhost”,那么輸出的結(jié)果會是怎么?
[root@linux ~]# tcpdump -i lo -nn
1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
2 listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes
3 11:02:54.253777 IP 127.0.0.1.32936 >
127.0.0.1.22: S 933696132:933696132(0)
win 32767
4 11:02:54.253831 IP 127.0.0.1.22 > 127.0.0.1.32936:
S 920046702:920046702(0)
ack 933696133 win 32767
5 11:02:54.253871 IP 127.0.0.1.32936 > 127.0.0.1.22: . ack 1 win 8192
6 11:02:54.272124 IP 127.0.0.1.22 > 127.0.0.1.32936:
P 1:23(22) ack 1 win 8192
7 11:02:54.272375 IP 127.0.0.1.32936 > 127.0.0.1.22: . ack 23 win 8192
代碼顯示的頭兩行是tcpdump的基本說明,然后:
第3行顯示的是來自Client端帶有SYN主動聯(lián)機(jī)的數(shù)據(jù)包。
第4行顯示的是來自Server端,除了響應(yīng)Client端之外(ACK),還帶有SYN主動聯(lián)機(jī)的標(biāo)志。
第5行則顯示Client端響應(yīng)Server確定聯(lián)機(jī)建立(ACK)。
第6行以后則開始進(jìn)入數(shù)據(jù)傳輸?shù)牟襟E。
從 第3~5行的流程來看,熟不熟悉啊?沒錯。那就是3次握手的基礎(chǔ)流程,有趣吧。不過tcpdump之所以被稱為黑客軟件之一遠(yuǎn)不止上面介紹的功能。上面介 紹的功能能用來作為我們主機(jī)的數(shù)據(jù)包聯(lián)機(jī)和傳輸?shù)牧鞒谭治?,這將有助于我們了解到數(shù)據(jù)包的運(yùn)作,同時了解到主機(jī)的防火墻設(shè)置規(guī)則是否有需要修訂的地方。
更 有更神奇的用法。當(dāng)我們使用tcpdump在Router上面監(jiān)聽明文的傳輸數(shù)據(jù)時,例如FTP傳輸協(xié)議,你覺得會發(fā)生什么問題呢?我們先在主機(jī)端執(zhí)行 “tcpdump -i lo port 21 -nn ?X”,然后再以FTP登錄本機(jī),并輸入賬號和密碼,結(jié)果你就能發(fā)現(xiàn)如下的狀況:
[root@linux ~]# tcpdump -i lo -nn -X ’port 21’
0x0000: 4500 0048 2a28 4000 4006 1286 7f00 0001 E..H*(@.@.......
0x0010: 7f00 0001 0015 80ab 8355 2149 835c d825 .........U!I.\.%
0x0020: 8018 2000 fe3c 0000 0101 080a 0e2e 0b67 .............2’
0x0030: 0e2e 1b38 5041 5353 206d 7970 6173 7377 ...8PASS.mypassw
0x0040: 6f72 6469 7379 6f75 0d0a ordisyou..
上 面的輸出結(jié)果已被簡化過了,你需要自行在你的輸出結(jié)果中搜索相關(guān)的字符串才行。從上面輸出結(jié)果的特別字體中,我們能發(fā)現(xiàn)該FTP軟件使用的是 vsFTPd,并且用戶輸入dmtsai這個賬號名稱,且密碼是mypasswordisyou。你說可不可怕啊。如果使用的是明文方式來傳輸你的網(wǎng)絡(luò)數(shù) 據(jù)呢?所以我們才常常在講啊,網(wǎng)絡(luò)是非常不安全的。
另外你得了解,為了讓網(wǎng)絡(luò)接口能讓tcpdump監(jiān)聽,所以執(zhí)行tcpdump時網(wǎng)絡(luò)接口會啟 動在“混雜模式(promiscuous)”,所以你會在 /var/log/messages里面看到非常多的警告信息,通知你說你的網(wǎng)卡被設(shè)置成為混雜模式。別擔(dān)心,那是正常的。至于更多的應(yīng)用,請參考man tcpdump了。
例題:怎么使用tcpdump監(jiān)聽來自eth0適配卡且通信協(xié)議為port 22,目標(biāo)來源為192.168.1.100的數(shù)據(jù)包資料?
答:tcpdump -i eth0 -nn ’port 22 and src host 192.168.1.100’。
linux常用網(wǎng)絡(luò)命令11.ethereal
除 了tcpdump這個軟件之外,其實(shí)你還能使用ethereal這個好用的網(wǎng)絡(luò)流量分析軟件。ethereal分為文本界面和圖像界面,文本界面的用法和 tcpdump類似,不過他的命令名稱為tethereal就是了。因為用法差不多,所以建議你直接使用man tethereal查閱。在Cent OS上原本就有ethereal,所以請拿出光盤來安裝即可,需要同時安裝ethereal和ethereal-gnome才行。
啟動的方法非常簡單,你需要在X Window下面,先啟動一個終端機(jī),然后直接輸入ethereal后,就會出現(xiàn)如圖5-5所示的畫面
圖5-5 ethereal使用范例圖
簡單的做法,你能單擊如圖5-5顯示的那個按鈕,會出現(xiàn)挑選監(jiān)聽的接口窗口,如圖5-6所示。
圖5-6 ethereal使用范例圖
你應(yīng)該選擇要監(jiān)聽的接口,在這里因為是測試用的,所以鳥哥使用的是lo這個內(nèi)部接口,你當(dāng)然應(yīng)該要選擇你自己的網(wǎng)絡(luò)接口才是。然后單擊Start后,就會出現(xiàn)開始檢測的界面了,如圖5-7所示。
圖5-7 ethereal使用范例圖
在這個界面當(dāng)中你能看到非常多類型的數(shù)據(jù)包協(xié)議,在等你處理完畢后,就能單擊Stop結(jié)束監(jiān)聽,而開始進(jìn)入如圖5-8所示的數(shù)據(jù)包分析界面。
圖5-8 ethereal使用范例圖
數(shù) 據(jù)包分析界面共分為3大區(qū)塊,如圖5-8所示,第一區(qū)塊主要顯示的是數(shù)據(jù)包的標(biāo)頭資料,內(nèi)容有點(diǎn)類似tcpdump的顯示結(jié)果;第二區(qū)塊則是周詳?shù)谋眍^數(shù) 據(jù),包括通信協(xié)議的內(nèi)容及Socket Pair等信息。第三區(qū)塊則是16進(jìn)制和ASCII碼的顯示結(jié)果。通過這個ethereal,你就能一口氣得到所需要的所有數(shù)據(jù)包內(nèi)容。而且還是圖像界面 的,非常方便吧。通過在第一區(qū)塊選擇不同的數(shù)據(jù)包,就能夠查閱每個數(shù)據(jù)包的數(shù)據(jù)內(nèi)容了。
linux常用網(wǎng)絡(luò)命令12.nc、netcat
這 個nc能用來作為某些服務(wù)的檢測,因為他能連接到某個port來進(jìn)行通信,此外,還能自行啟動一個port來傾聽其他用戶的聯(lián)機(jī),非常好用。如果在編譯的 時候設(shè)置GAPING_SECURITY_HOLE參數(shù)的話,這個軟件還能用來取得客戶端的bash??膳掳?。我們的CentOS比較人性化,并沒有設(shè)置 上面的參數(shù),所以我們不能夠用來作為黑客軟件。不過用來取代Telnet功能已夠用了(有的系統(tǒng)將執(zhí)行文件改名為netcat了)。
[root@linux ~]# nc [IP|host] [port]
[root@linux ~]# nc -l -p [port]
參數(shù):
-l,作為監(jiān)聽之用,亦即開啟一個 port 來監(jiān)聽用戶的聯(lián)機(jī)。
-p,開啟的這個 Port Number。
范例一:連接本地端的 port 25 查閱相關(guān)信息
[root@linux ~]# nc localhost 25
localhost.localdomain [127.0.0.1] 25 (smtp) open
220 pc.dm.tsai ESMTP Postfix
ehlo localhost
250-pc.dm.tsai
250-PIPELINING
250-SIZE 40000000
250-ETRN
quit
221 Bye
這個最簡單的功能和Telnet幾乎相同吧,他能檢查某個服務(wù)。不過,更神奇的在后面,我們能建立兩個聯(lián)機(jī)來通信。舉個例子來說,我們先在Client端的地方啟動一個port來進(jìn)行傾聽:
范例二:激活一個 port 來監(jiān)聽用戶的聯(lián)機(jī)需求
[root@linux ~]# nc -l -p 20000
# 啟動一個 port 20000 在主機(jī)上,如果此時使用 netstat ?tlnp。
# 就能看到系統(tǒng)上多出來一個 port 20000 在傾聽用戶的聯(lián)機(jī)。
然后在主機(jī)端的地方,也利用nc來聯(lián)機(jī)到客戶端,并且輸入一些命令看看。
[root@linux ~]# nc localhost 20000
此 時,在主機(jī)端我們能打入一些字,你會發(fā)目前Client端會同時出現(xiàn)你輸入的文字。如果你同時設(shè)置一些額外的參數(shù),例如利用標(biāo)準(zhǔn)輸入和輸出(stdout 和stdin)的話,那么就能通過這個聯(lián)機(jī)來做非常多事情了。當(dāng)然nc的功能不僅如此,你還能發(fā)現(xiàn)非常多的用途。請自行到你主機(jī)內(nèi)的 /usr/share/doc/nc-1.10/scripts目錄下看看這些script,有幫助的。不過,如果你需要額外地編譯出含有GAPING_ SECURITY_HOLE功能,以使兩端聯(lián)機(jī)能進(jìn)行額外命令的執(zhí)行時,就需要自己下載原始碼來編譯了。
重 點(diǎn) 回 顧
? 修改網(wǎng)絡(luò)接口的硬件相關(guān)參數(shù),能使用ifconfig這個命令,包括MTU等。
? ifup和ifdown其實(shí)只是script,在使用時,會主動去 /etc/sysconfig/network- scripts里找到相對應(yīng)的設(shè)備設(shè)置文件,才能夠正確地啟動和關(guān)閉。
? 路由的修改和查閱能使用route來查詢,此外,route亦可進(jìn)行新增、刪除路由的工作。
? ip命令能用來作為整個網(wǎng)絡(luò)環(huán)境的設(shè)置,利用ip link能修改網(wǎng)絡(luò)設(shè)備的硬件相關(guān)功能,包括MTU和MAC等,能使用ip address修改TCP/IP方面的參數(shù),包括IP及網(wǎng)段參數(shù)等,ip route則能修改路由。
? ping主要是通過ICMP數(shù)據(jù)包來進(jìn)行網(wǎng)絡(luò)環(huán)境的檢測工作,并且能使用ping來查詢整體網(wǎng)段可接受的最大MTU值。
? 監(jiān)測每個節(jié)點(diǎn)的連接狀況,能使用traceroute這個命令來追蹤。
? netstat除了能觀察本機(jī)的啟動接口外,還能觀察Unix socket的傳統(tǒng)接口數(shù)據(jù)。
? host和nslookup默認(rèn)都是通過/etc/resolv.conf內(nèi)設(shè)置的DNS主機(jī)來進(jìn)行主機(jī)名稱和IP的查詢。
? LFTP能用來匿名登錄遠(yuǎn)程的FTP主機(jī)。
? Telnet不僅用來進(jìn)行BBS的登錄,也能用來作為某些端口服務(wù)的測試。
? lynx主要的功能是瀏覽,包括本機(jī)上HTML語法的文件,wget則主要用來下載WWW的資料。
? 捕捉數(shù)據(jù)包以分析數(shù)據(jù)包的流向,可使用tcpdump,至于圖像界面的ethereal則能進(jìn)行更為周詳?shù)慕馕觥?/p>
? 通過tcpdump分析3次握手,及分析明文傳輸?shù)臄?shù)據(jù),可發(fā)現(xiàn)網(wǎng)絡(luò)加密的重要性。
? nc可用來取代Telnet進(jìn)行某些服務(wù)端口的檢測工作,同時若自行編譯nc,可額外地執(zhí)行-e參數(shù)。