【每天一個 Linux 命令】網絡相關命令(ifconfig、route、ping、traceroute、netstat、ss、telnet、rcp、scp)

文章目錄

    • ifconfig命令
    • ifconfig命令使用示例
    • route命令語法
    • route命令使用示例
    • ping命令語法
    • ping命令使用示例
    • traceroute命令語法
    • traceroute命令使用示例
    • netstat命令語法
    • netstat命令使用示例
    • ss命令語法
    • ss命令使用示例
    • telnet命令語法
    • telnet命令使用示例
    • rcp命令語法
    • rcp命令使用示例
    • scp命令語法
    • scp命令使用示例

ifconfig命令

許多windows非常熟悉ipconfig命令行工具,它被用來獲取網絡接口配置信息並對此進行修改。Linux系統擁有一個類似的工具,也就是ifconfig(interfaces config)。通常需要以root身份登錄或使用sudo以便在Linux機器上使用ifconfig工具。依賴於ifconfig命令中使用一些選項屬性,ifconfig工具不僅可以被用來簡單地獲取網絡接口配置信息,還可以修改這些配置。

1.命令格式:

ifconfig [網絡設備] [參數]

2.命令功能:

ifconfig 命令用來查看和配置網絡設備。當網絡環境發生改變時可通過此命令對網絡進行相應的配置。

3.命令參數:

up 啟動指定網絡設備/網卡。down 關閉指定網絡設備/網卡。該參數可以有效地阻止通過指定接口的IP信息流,如果想永久地關閉一個接口,我們還需要從核心路由表中將該接口的路由信息全部刪除。arp 設置指定網卡是否支持ARP協議。-promisc 設置是否支持網卡的promiscuous模式,如果選擇此參數,網卡將接收網絡中發給它所有的數據包-allmulti 設置是否支持多播模式,如果選擇此參數,網卡將接收網絡中所有的多播數據包-a 顯示全部接口信息-s 顯示摘要信息(類似於 netstat -i)add 給指定網卡配置IPv6地址del 刪除指定網卡的IPv6地址 配置網卡最大的傳輸單元mtu 設置網卡的最大傳輸單元 (bytes)netmask 設置網卡的子網掩碼。掩碼可以是有前綴0x的32位十六進制數,也可以是用點分開的4個十進制數。如果不打算將網絡分成子網,可以不管這一選項;如果要使用子網,那麼請記住,網絡中每一個系統必須有相同子網掩碼。tunel 建立隧道dstaddr 設定一個遠端地址,建立點對點通信-broadcast 為指定網卡設置廣播協議-pointtopoint 為網卡設置點對點通訊協議multicast 為網卡設置組播標志address 為網卡設置IPv4地址txqueuelen 為網卡設置傳輸列隊的長度

ifconfig命令使用示例

實例1:顯示網絡設備信息(激活狀態的)

命令:

ifconfig

輸出:

[root@localhost ~]# ifconfigeth0   Link encap:Ethernet HWaddr 00:50:56:BF:26:20      inet addr:192.168.120.204 Bcast:192.168.120.255 Mask:255.255.255.0     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1     RX packets:8700857 errors:0 dropped:0 overruns:0 frame:0     TX packets:31533 errors:0 dropped:0 overruns:0 carrier:0     collisions:0 txqueuelen:1000      RX bytes:596390239 (568.7 MiB) TX bytes:2886956 (2.7 MiB)lo    Link encap:Local Loopback      inet addr:127.0.0.1 Mask:255.0.0.0     UP LOOPBACK RUNNING MTU:16436 Metric:1     RX packets:68 errors:0 dropped:0 overruns:0 frame:0     TX packets:68 errors:0 dropped:0 overruns:0 carrier:0     collisions:0 txqueuelen:0      RX bytes:2856 (2.7 KiB) TX bytes:2856 (2.7 KiB)

說明:

eth0 表示第一塊網卡, 其中 HWaddr 表示網卡的物理地址,可以看到目前這個網卡的物理地址(MAC地址)是 00:50:56:BF:26:20

inet addr 用來表示網卡的IP地址,此網卡的 IP地址是 192.168.120.204,廣播地址, Bcast:192.168.120.255,掩碼地址Mask:255.255.255.0

lo 是表示主機的回壞地址,這個一般是用來測試一個網絡程序,但又不想讓局域網或外網的用戶能夠查看,隻能在此臺主機上運行和查看所用的網絡接口。比如把 HTTPD服務器的指定到回壞地址,在瀏覽器輸入 127.0.0.1 就能看到你所架WEB網站瞭。但隻是您能看得到,局域網的其它主機或用戶無從知道。

第一行:連接類型:Ethernet(以太網)HWaddr(硬件mac地址)

第二行:網卡的IP地址、子網、掩碼

第三行:UP(代表網卡開啟狀態)RUNNING(代表網卡的網線被接上)MULTICAST(支持組播)MTU:1500(最大傳輸單元):1500字節

第四、五行:接收、發送數據包情況統計

第七行:接收、發送數據字節數統計信息。

實例2:啟動關閉指定網卡

命令:

ifconfig eth0 upifconfig eth0 down

輸出:

說明:

ifconfig eth0 up 為啟動網卡eth0 ;ifconfig eth0 down 為關閉網卡eth0。ssh登陸linux服務器操作要小心,關閉瞭就不能開啟瞭,除非你有多網卡。

實例3:為網卡配置和刪除IPv6地址

命令:

ifconfig eth0 add 33ffe:3240:800:1005::2/64ifconfig eth0 del 33ffe:3240:800:1005::2/64

輸出:

說明:

ifconfig eth0 add 33ffe:3240:800:1005::2/64 為網卡eth0配置IPv6地址;

ifconfig eth0 add 33ffe:3240:800:1005::2/64 為網卡eth0刪除IPv6地址;

練習的時候,ssh登陸linux服務器操作要小心,關閉瞭就不能開啟瞭,除非你有多網卡。

實例4:用ifconfig修改MAC地址

命令:

ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE

輸出:

[root@localhost ~]# ifconfig eth0 down //關閉網卡[root@localhost ~]# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址[root@localhost ~]# ifconfig eth0 up //啟動網卡[root@localhost ~]# ifconfigeth0   Link encap:Ethernet HWaddr 00:AA:BB:CC:DD:EE      inet addr:192.168.120.204 Bcast:192.168.120.255 Mask:255.255.255.0     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1     RX packets:8700857 errors:0 dropped:0 overruns:0 frame:0     TX packets:31533 errors:0 dropped:0 overruns:0 carrier:0     collisions:0 txqueuelen:1000      RX bytes:596390239 (568.7 MiB) TX bytes:2886956 (2.7 MiB)lo    Link encap:Local Loopback      inet addr:127.0.0.1 Mask:255.0.0.0     UP LOOPBACK RUNNING MTU:16436 Metric:1     RX packets:68 errors:0 dropped:0 overruns:0 frame:0     TX packets:68 errors:0 dropped:0 overruns:0 carrier:0     collisions:0 txqueuelen:0      RX bytes:2856 (2.7 KiB) TX bytes:2856 (2.7 KiB)[root@localhost ~]# ifconfig eth0 hw ether 00:50:56:BF:26:20 //關閉網卡並修改MAC地址 [root@localhost ~]# ifconfig eth0 up //啟動網卡[root@localhost ~]# ifconfigeth0   Link encap:Ethernet HWaddr 00:50:56:BF:26:20      inet addr:192.168.120.204 Bcast:192.168.120.255 Mask:255.255.255.0     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1     RX packets:8700857 errors:0 dropped:0 overruns:0 frame:0     TX packets:31533 errors:0 dropped:0 overruns:0 carrier:0     collisions:0 txqueuelen:1000      RX bytes:596390239 (568.7 MiB) TX bytes:2886956 (2.7 MiB)lo    Link encap:Local Loopback      inet addr:127.0.0.1 Mask:255.0.0.0     UP LOOPBACK RUNNING MTU:16436 Metric:1     RX packets:68 errors:0 dropped:0 overruns:0 frame:0     TX packets:68 errors:0 dropped:0 overruns:0 carrier:0     collisions:0 txqueuelen:0      RX bytes:2856 (2.7 KiB) TX bytes:2856 (2.7 KiB) 

說明:

實例5:配置IP地址

命令:

輸出:

[root@localhost ~]# ifconfig eth0 192.168.120.56 [root@localhost ~]# ifconfig eth0 192.168.120.56 netmask 255.255.255.0 [root@localhost ~]# ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255**說明:

ifconfig eth0 192.168.120.56

給eth0網卡配置IP地:192.168.120.56

ifconfig eth0 192.168.120.56 netmask 255.255.255.0

給eth0網卡配置IP地址:192.168.120.56 ,並加上子掩碼:255.255.255.0

ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255

/給eth0網卡配置IP地址:192.168.120.56,加上子掩碼:255.255.255.0,加上個廣播地址: 192.168.120.255

實例6:*啟用和關閉ARP協議

命令:

ifconfig eth0 arpifconfig eth0 -arp

輸出:

[root@localhost ~]# ifconfig eth0 arp [root@localhost ~]# ifconfig eth0 -arp

說明:

ifconfig eth0 arp 開啟網卡eth0 的arp協議;

ifconfig eth0 -arp 關閉網卡eth0 的arp協議;

實例7:設置最大傳輸單元

命令:

ifconfig eth0 mtu 1500

輸出:

[root@localhost ~]# ifconfig eth0 mtu 1480[root@localhost ~]# ifconfigeth0   Link encap:Ethernet HWaddr 00:50:56:BF:26:1F      inet addr:192.168.120.203 Bcast:192.168.120.255 Mask:255.255.255.0     UP BROADCAST RUNNING MULTICAST MTU:1480 Metric:1     RX packets:8712395 errors:0 dropped:0 overruns:0 frame:0     TX packets:36631 errors:0 dropped:0 overruns:0 carrier:0     collisions:0 txqueuelen:1000      RX bytes:597062089 (569.4 MiB) TX bytes:2643973 (2.5 MiB)lo    Link encap:Local Loopback      inet addr:127.0.0.1 Mask:255.0.0.0     UP LOOPBACK RUNNING MTU:16436 Metric:1     RX packets:9973 errors:0 dropped:0 overruns:0 frame:0     TX packets:9973 errors:0 dropped:0 overruns:0 carrier:0     collisions:0 txqueuelen:0      RX bytes:518096 (505.9 KiB) TX bytes:518096 (505.9 KiB)[root@localhost ~]# ifconfig eth0 mtu 1500[root@localhost ~]# ifconfigeth0   Link encap:Ethernet HWaddr 00:50:56:BF:26:1F      inet addr:192.168.120.203 Bcast:192.168.120.255 Mask:255.255.255.0     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1     RX packets:8712548 errors:0 dropped:0 overruns:0 frame:0     TX packets:36685 errors:0 dropped:0 overruns:0 carrier:0     collisions:0 txqueuelen:1000      RX bytes:597072333 (569.4 MiB) TX bytes:2650581 (2.5 MiB)lo    Link encap:Local Loopback      inet addr:127.0.0.1 Mask:255.0.0.0     UP LOOPBACK RUNNING MTU:16436 Metric:1     RX packets:9973 errors:0 dropped:0 overruns:0 frame:0     TX packets:9973 errors:0 dropped:0 overruns:0 carrier:0     collisions:0 txqueuelen:0      RX bytes:518096 (505.9 KiB) TX bytes:518096 (505.9 KiB)[root@localhost ~]# 

說明:

設置能通過的最大數據包大小為 1500 bytes

備註:用ifconfig命令配置的網卡信息,在網卡重啟後機器重啟後,配置就不存在。要想將上述的配置信息永遠的存的電腦裡,那就要修改網卡的配置文件瞭。

route命令語法

Linux系統的route命令用於顯示和操作IP路由表(show / manipulate the IP routing table)。要實現兩個不同的子網之間的通信,需要一臺連接兩個網絡的路由器,或者同時位於兩個網絡的網關來實現。在Linux系統中,設置路由通常是為瞭解決以下問題:該Linux系統在一個局域網中,局域網中有一個網關,能夠讓機器訪問Internet,那麼就需要將這臺機器的IP地址設置為Linux機器的默認路由。要註意的是,直接在命令行下執行route命令來添加路由,不會永久保存,當網卡重啟或者機器重啟之後,該路由就失效瞭;可以在/etc/rc.local中添加route命令來保證該路由設置永久有效。

**1.**命令格式:

route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]

**2.**命令功能:

Route命令是用於操作基於內核ip路由表,它的主要作用是創建一個靜態路由讓指定一個主機或者一個網絡通過一個網絡接口,如eth0。當使用”add”或者”del”參數時,路由表被修改,如果沒有參數,則顯示路由表當前的內容。

**3.**命令參數:

-c 顯示更多信息-n 不解析名字-v 顯示詳細的處理信息-F 顯示發送信息-C 顯示路由緩存-f 清除所有網關入口的路由表。 -p 與 add 命令一起使用時使路由具有永久性。add:添加一條新路由。del:刪除一條路由。-net:目標地址是一個網絡。-host:目標地址是一個主機。netmask:當添加一個網絡路由時,需要使用網絡掩碼。gw:路由數據包通過網關。註意,你指定的網關必須能夠達到。metric:設置路由跳數。Command 指定您想運行的命令 (Add/Change/Delete/Print)。 Destination 指定該路由的網絡目標。 mask Netmask 指定與網絡目標相關的網絡掩碼(也被稱作子網掩碼)。 Gateway 指定網絡目標定義的地址集和子網掩碼可以到達的前進或下一躍點 IP 地址。 metric Metric 為路由指定一個整數成本值標(從 1 至 9999),當在路由表(與轉發的數據包目標地址最匹配)的多個路由中進行選擇時可以使用。 if Interface 為可以訪問目標的接口指定接口索引。若要獲得一個接口列表和它們相應的接口索引,使用 route print 命令的顯示功能。可以使用十進制或十六進制值進行接口索引。

route命令使用示例

**實例1:**顯示當前路由

命令:

routeroute -n

輸出:

[root@localhost ~]# routeKernel IP routing tableDestination   Gateway     Genmask     Flags Metric Ref  Use Iface192.168.120.0  *        255.255.255.0  U   0   0    0 eth0e192.168.0.0   192.168.120.1  255.255.0.0   UG  0   0    0 eth010.0.0.0    192.168.120.1  255.0.0.0    UG  0   0    0 eth0default     192.168.120.240 0.0.0.0     UG  0   0    0 eth0[root@localhost ~]# route -nKernel IP routing tableDestination   Gateway     Genmask     Flags Metric Ref  Use Iface192.168.120.0  0.0.0.0     255.255.255.0  U   0   0    0 eth0192.168.0.0   192.168.120.1  255.255.0.0   UG  0   0    0 eth010.0.0.0    192.168.120.1  255.0.0.0    UG  0   0    0 eth00.0.0.0     192.168.120.240 0.0.0.0     UG  0   0    0 eth0

說明:

第一行表示主機所在網絡的地址為192.168.120.0,若數據傳送目標是在本局域網內通信,則可直接通過eth0轉發數據包;

第四行表示數據傳送目的是訪問Internet,則由接口eth0,將數據包發送到網關192.168.120.240

其中Flags為路由標志,標記當前網絡節點的狀態。

Flags標志說明:

U Up表示此路由當前為啟動狀態

H Host,表示此網關為一主機

G Gateway,表示此網關為一路由器

R Reinstate Route,使用動態路由重新初始化的路由

D Dynamically,此路由是動態性地寫入

M Modified,此路由是由路由守護程序或導向器動態修改

! 表示此路由當前為關閉狀態

備註:

route -n (-n 表示不解析名字,列出速度會比route 快)

**實例2:**添加網關/設置網關

命令:

route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

輸出:

[root@localhost ~]# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0[root@localhost ~]# routeKernel IP routing tableDestination   Gateway     Genmask     Flags Metric Ref  Use Iface192.168.120.0  *        255.255.255.0  U   0   0    0 eth0192.168.0.0   192.168.120.1  255.255.0.0   UG  0   0    0 eth010.0.0.0    192.168.120.1  255.0.0.0    UG  0   0    0 eth0224.0.0.0    *        240.0.0.0    U   0   0    0 eth0default     192.168.120.240 0.0.0.0     UG  0   0    0 eth0[root@localhost ~]# 

說明:

增加一條 到達244.0.0.0的路由

實例3:屏蔽一條路由

命令:

route add -net 224.0.0.0 netmask 240.0.0.0 reject

輸出:

[root@localhost ~]# route add -net 224.0.0.0 netmask 240.0.0.0 reject[root@localhost ~]# routeKernel IP routing tableDestination   Gateway     Genmask     Flags Metric Ref  Use Iface192.168.120.0  *        255.255.255.0  U   0   0    0 eth0192.168.0.0   192.168.120.1  255.255.0.0   UG  0   0    0 eth010.0.0.0    192.168.120.1  255.0.0.0    UG  0   0    0 eth0224.0.0.0    -        240.0.0.0    !   0   -    0 -224.0.0.0    *        240.0.0.0    U   0   0    0 eth0default     192.168.120.240 0.0.0.0     UG  0   0    0 eth0

說明:

增加一條屏蔽的路由,目的地址為 224.x.x.x 將被拒絕

實例4:刪除路由記錄

命令:

route del -net 224.0.0.0 netmask 240.0.0.0route del -net 224.0.0.0 netmask 240.0.0.0 reject

輸出:

[root@localhost ~]# routeKernel IP routing tableDestination   Gateway     Genmask     Flags Metric Ref  Use Iface192.168.120.0  *        255.255.255.0  U   0   0    0 eth0192.168.0.0   192.168.120.1  255.255.0.0   UG  0   0    0 eth010.0.0.0    192.168.120.1  255.0.0.0    UG  0   0    0 eth0224.0.0.0    -        240.0.0.0    !   0   -    0 -224.0.0.0    *        240.0.0.0    U   0   0    0 eth0default     192.168.120.240 0.0.0.0     UG  0   0    0 eth0[root@localhost ~]# route del -net 224.0.0.0 netmask 240.0.0.0[root@localhost ~]# routeKernel IP routing tableDestination   Gateway     Genmask     Flags Metric Ref  Use Iface192.168.120.0  *        255.255.255.0  U   0   0    0 eth0192.168.0.0   192.168.120.1  255.255.0.0   UG  0   0    0 eth010.0.0.0    192.168.120.1  255.0.0.0    UG  0   0    0 eth0224.0.0.0    -        240.0.0.0    !   0   -    0 -default     192.168.120.240 0.0.0.0     UG  0   0    0 eth0[root@localhost ~]# route del -net 224.0.0.0 netmask 240.0.0.0 reject[root@localhost ~]# routeKernel IP routing tableDestination   Gateway     Genmask     Flags Metric Ref  Use Iface192.168.120.0  *        255.255.255.0  U   0   0    0 eth0192.168.0.0   192.168.120.1  255.255.0.0   UG  0   0    0 eth010.0.0.0    192.168.120.1  255.0.0.0    UG  0   0    0 eth0default     192.168.120.240 0.0.0.0     UG  0   0    0 eth0[root@localhost ~]# 

說明:

實例5:刪除和添加設置默認網關

命令:

route del default gw 192.168.120.240route add default gw 192.168.120.240

輸出:

[root@localhost ~]# route del default gw 192.168.120.240[root@localhost ~]# routeKernel IP routing tableDestination   Gateway     Genmask     Flags Metric Ref  Use Iface192.168.120.0  *        255.255.255.0  U   0   0    0 eth0192.168.0.0   192.168.120.1  255.255.0.0   UG  0   0    0 eth010.0.0.0    192.168.120.1  255.0.0.0    UG  0   0    0 eth0[root@localhost ~]# route add default gw 192.168.120.240[root@localhost ~]# routeKernel IP routing tableDestination   Gateway     Genmask     Flags Metric Ref  Use Iface192.168.120.0  *        255.255.255.0  U   0   0    0 eth0192.168.0.0   192.168.120.1  255.255.0.0   UG  0   0    0 eth010.0.0.0    192.168.120.1  255.0.0.0    UG  0   0    0 eth0default     192.168.120.240 0.0.0.0     UG  0   0    0 eth0[root@localhost ~]# 

ping命令語法

Linux系統的ping命令是常用的網絡命令,它通常用來測試與目標主機的連通性,我們經常會說“ping一下某機器,看是不是開著”、不能打開網頁時會說“你先ping網關地址192.168.1.1試試”。它通過發送ICMP ECHO_REQUEST數據包到網絡主機(send ICMP ECHO_REQUEST to network hosts),並顯示響應情況,這樣我們就可以根據它輸出的信息來確定目標主機是否可訪問(但這不是絕對的)。有些服務器為瞭防止通過ping探測到,通過防火墻設置瞭禁止ping或者在內核參數中禁止ping,這樣就不能通過ping確定該主機是否還處於開啟狀態。

linux下的ping和windows下的ping稍有區別,linux下ping不會自動終止,需要按ctrl+c終止或者用參數-c指定要求完成的回應次數。

**1.**命令格式:

ping [參數] [主機名或IP地址]

**2.**命令功能:

ping命令用於:確定網絡和各外部主機的狀態;跟蹤和隔離硬件和軟件問題;測試、評估和管理網絡。如果主機正在運行並連在網上,它就對回送信號進行響應。每個回送信號請求包含一個網際協議(IP)和 ICMP 頭,後面緊跟一個 tim 結構,以及來填寫這個信息包的足夠的字節。缺省情況是連續發送回送信號請求直到接收到中斷信號(Ctrl-C)。

ping 命令每秒發送一個數據報並且為每個接收到的響應打印一行輸出。ping 命令計算信號往返時間和(信息)包丟失情況的統計信息,並且在完成之後顯示一個簡要總結。ping 命令在程序超時或當接收到 SIGINT 信號時結束。Host 參數或者是一個有效的主機名或者是因特網地址。

**3.**命令參數:

-d 使用Socket的SO_DEBUG功能。-f 極限檢測。大量且快速地送網絡封包給一臺機器,看它的回應。-n 隻輸出數值。-q 不顯示任何傳送封包的信息,隻顯示最後的結果。-r 忽略普通的Routing Table,直接將數據包送到遠端主機上。通常是查看本機的網絡接口是否有問題。-R 記錄路由過程。-v 詳細顯示指令的執行過程。

-c 數目:在發送指定數目的包後停止。-i 秒數:設定間隔幾秒送一個網絡封包給一臺機器,預設值是一秒送一次。-I 網絡界面:使用指定的網絡界面送出數據包。-l 前置載入:設置在送出要求信息之前,先行發出的數據包。-p 范本樣式:設置填滿數據包的范本樣式。-s 字節數:指定發送的數據字節數,預設值是56,加上8字節的ICMP頭,一共是64ICMP數據字節。-t 存活數值:設置存活數值TTL的大小。

ping命令使用示例

實例1:ping的通的情況

命令:

ping 192.168.120.205

輸出:

[root@localhost ~]# ping 192.168.120.205PING 192.168.120.205 (192.168.120.205) 56(84) bytes of data.64 bytes from 192.168.120.205: icmp_seq=1 ttl=64 time=0.720 ms64 bytes from 192.168.120.205: icmp_seq=2 ttl=64 time=0.181 ms64 bytes from 192.168.120.205: icmp_seq=3 ttl=64 time=0.191 ms64 bytes from 192.168.120.205: icmp_seq=4 ttl=64 time=0.188 ms64 bytes from 192.168.120.205: icmp_seq=5 ttl=64 time=0.189 ms--- 192.168.120.205 ping statistics ---5 packets transmitted, 5 received, 0% packet loss, time 4000msrtt min/avg/max/mdev = 0.181/0.293/0.720/0.214 ms[root@localhost ~]# 

說明:

實例2:ping不通的情況

命令:

ping 192.168.120.202

輸出:

[root@localhost ~]# ping 192.168.120.202PING 192.168.120.202 (192.168.120.202) 56(84) bytes of data.From 192.168.120.204 icmp_seq=1 Destination Host UnreachableFrom 192.168.120.204 icmp_seq=2 Destination Host UnreachableFrom 192.168.120.204 icmp_seq=3 Destination Host UnreachableFrom 192.168.120.204 icmp_seq=4 Destination Host UnreachableFrom 192.168.120.204 icmp_seq=5 Destination Host UnreachableFrom 192.168.120.204 icmp_seq=6 Destination Host Unreachable--- 192.168.120.202 ping statistics ---8 packets transmitted, 0 received, +6 errors, 100% packet loss, time 7005ms, pipe 4[root@localhost ~]#

說明:

**實例3:**ping網關

命令:

ping -b 192.168.120.1

輸出:

[root@localhost ~]# routeKernel IP routing tableDestination   Gateway     Genmask     Flags Metric Ref  Use Iface192.168.120.0  *        255.255.255.0  U   0   0    0 eth0192.168.0.0   192.168.120.1  255.255.0.0   UG  0   0    0 eth010.0.0.0    192.168.120.1  255.0.0.0    UG  0   0    0 eth0default     192.168.120.240 0.0.0.0     UG  0   0    0 eth0[root@localhost ~]# ping -b 192.168.120.1PING 192.168.120.1 (192.168.120.1) 56(84) bytes of data.64 bytes from 192.168.120.1: icmp_seq=1 ttl=255 time=2.02 ms64 bytes from 192.168.120.1: icmp_seq=2 ttl=255 time=1.83 ms64 bytes from 192.168.120.1: icmp_seq=3 ttl=255 time=1.68 ms64 bytes from 192.168.120.1: icmp_seq=4 ttl=255 time=1.98 ms64 bytes from 192.168.120.1: icmp_seq=5 ttl=255 time=1.88 ms--- 192.168.120.1 ping statistics ---5 packets transmitted, 5 received, 0% packet loss, time 4000msrtt min/avg/max/mdev = 1.682/1.880/2.020/0.129 ms

說明:

**實例4:**ping指定次數

命令:

ping -c 10 192.168.120.206

輸出:

[root@localhost ~]# ping -c 10 192.168.120.206PING 192.168.120.206 (192.168.120.206) 56(84) bytes of data.64 bytes from 192.168.120.206: icmp_seq=1 ttl=64 time=1.25 ms64 bytes from 192.168.120.206: icmp_seq=2 ttl=64 time=0.260 ms64 bytes from 192.168.120.206: icmp_seq=3 ttl=64 time=0.242 ms64 bytes from 192.168.120.206: icmp_seq=4 ttl=64 time=0.271 ms64 bytes from 192.168.120.206: icmp_seq=5 ttl=64 time=0.274 ms64 bytes from 192.168.120.206: icmp_seq=6 ttl=64 time=0.295 ms64 bytes from 192.168.120.206: icmp_seq=7 ttl=64 time=0.269 ms64 bytes from 192.168.120.206: icmp_seq=8 ttl=64 time=0.270 ms64 bytes from 192.168.120.206: icmp_seq=9 ttl=64 time=0.253 ms64 bytes from 192.168.120.206: icmp_seq=10 ttl=64 time=0.289 ms--- 192.168.120.206 ping statistics ---10 packets transmitted, 10 received, 0% packet loss, time 9000msrtt min/avg/max/mdev = 0.242/0.367/1.251/0.295 ms[root@localhost ~]# 

說明:

實例5:時間間隔和次數限制的ping

命令:

ping -c 10 -i 0.5 192.168.120.206

輸出:

[root@localhost ~]# ping -c 10 -i 0.5 192.168.120.206PING 192.168.120.206 (192.168.120.206) 56(84) bytes of data.64 bytes from 192.168.120.206: icmp_seq=1 ttl=64 time=1.24 ms64 bytes from 192.168.120.206: icmp_seq=2 ttl=64 time=0.235 ms64 bytes from 192.168.120.206: icmp_seq=3 ttl=64 time=0.244 ms64 bytes from 192.168.120.206: icmp_seq=4 ttl=64 time=0.300 ms64 bytes from 192.168.120.206: icmp_seq=5 ttl=64 time=0.255 ms64 bytes from 192.168.120.206: icmp_seq=6 ttl=64 time=0.264 ms64 bytes from 192.168.120.206: icmp_seq=7 ttl=64 time=0.263 ms64 bytes from 192.168.120.206: icmp_seq=8 ttl=64 time=0.331 ms64 bytes from 192.168.120.206: icmp_seq=9 ttl=64 time=0.247 ms64 bytes from 192.168.120.206: icmp_seq=10 ttl=64 time=0.244 ms--- 192.168.120.206 ping statistics ---10 packets transmitted, 10 received, 0% packet loss, time 4499msrtt min/avg/max/mdev = 0.235/0.362/1.241/0.294 ms[root@localhost ~]# ping -c 10 -i 0.01 192.168.120.206PING 192.168.120.206 (192.168.120.206) 56(84) bytes of data.64 bytes from 192.168.120.206: icmp_seq=1 ttl=64 time=0.244 ms64 bytes from 192.168.120.206: icmp_seq=2 ttl=64 time=0.195 ms64 bytes from 192.168.120.206: icmp_seq=3 ttl=64 time=0.219 ms64 bytes from 192.168.120.206: icmp_seq=4 ttl=64 time=0.204 ms64 bytes from 192.168.120.206: icmp_seq=5 ttl=64 time=3.56 ms64 bytes from 192.168.120.206: icmp_seq=6 ttl=64 time=1.93 ms64 bytes from 192.168.120.206: icmp_seq=7 ttl=64 time=0.193 ms64 bytes from 192.168.120.206: icmp_seq=8 ttl=64 time=0.193 ms64 bytes from 192.168.120.206: icmp_seq=9 ttl=64 time=0.202 ms64 bytes from 192.168.120.206: icmp_seq=10 ttl=64 time=0.211 ms--- 192.168.120.206 ping statistics ---10 packets transmitted, 10 received, 0% packet loss, time 90msrtt min/avg/max/mdev = 0.193/0.716/3.564/1.080 ms[root@localhost ~]# 

說明:

實例6:通過域名ping公網上的站點

命令:

ping -c 5 www.58.com

輸出:

peida-VirtualBox ~ # ping -c 5 www.58.comPING www.58.com (211.151.111.30) 56(84) bytes of data.64 bytes from 211.151.111.30: icmp_req=1 ttl=49 time=14.7 ms64 bytes from 211.151.111.30: icmp_req=2 ttl=49 time=16.4 ms64 bytes from 211.151.111.30: icmp_req=3 ttl=49 time=15.2 ms64 bytes from 211.151.111.30: icmp_req=4 ttl=49 time=14.6 ms64 bytes from 211.151.111.30: icmp_req=5 ttl=49 time=19.9 ms--- www.58.com ping statistics ---5 packets transmitted, 5 received, 0% packet loss, time 20101msrtt min/avg/max/mdev = 14.618/16.192/19.917/1.965 mspeida-VirtualBox ~ # 

說明:

**實例7:**多參數使用

命令:

ping -i 3 -s 1024 -t 255 192.168.120.206

輸出:

[root@localhost ~]# ping -i 3 -s 1024 -t 255 192.168.120.206PING 192.168.120.206 (192.168.120.206) 1024(1052) bytes of data.1032 bytes from 192.168.120.206: icmp_seq=1 ttl=64 time=1.99 ms1032 bytes from 192.168.120.206: icmp_seq=2 ttl=64 time=0.694 ms1032 bytes from 192.168.120.206: icmp_seq=3 ttl=64 time=0.300 ms1032 bytes from 192.168.120.206: icmp_seq=4 ttl=64 time=0.481 ms1032 bytes from 192.168.120.206: icmp_seq=5 ttl=64 time=0.415 ms1032 bytes from 192.168.120.206: icmp_seq=6 ttl=64 time=0.600 ms1032 bytes from 192.168.120.206: icmp_seq=7 ttl=64 time=0.411 ms1032 bytes from 192.168.120.206: icmp_seq=8 ttl=64 time=0.281 ms1032 bytes from 192.168.120.206: icmp_seq=9 ttl=64 time=0.318 ms1032 bytes from 192.168.120.206: icmp_seq=10 ttl=64 time=0.362 ms1032 bytes from 192.168.120.206: icmp_seq=11 ttl=64 time=0.408 ms1032 bytes from 192.168.120.206: icmp_seq=12 ttl=64 time=0.445 ms1032 bytes from 192.168.120.206: icmp_seq=13 ttl=64 time=0.397 ms1032 bytes from 192.168.120.206: icmp_seq=14 ttl=64 time=0.406 ms1032 bytes from 192.168.120.206: icmp_seq=15 ttl=64 time=0.458 ms--- 192.168.120.206 ping statistics ---15 packets transmitted, 15 received, 0% packet loss, time 41999msrtt min/avg/max/mdev = 0.281/0.531/1.993/0.404 ms[root@localhost ~]# 

說明:

-i 3 發送周期為 3秒 -s 設置發送包的大小為1024 -t 設置TTL值為 255

traceroute命令語法

通過traceroute我們可以知道信息從你的計算機到互聯網另一端的主機是走的什麼路徑。當然每次數據包由某一同樣的出發點(source)到達某一同樣的目的地(destination)走的路徑可能會不一樣,但基本上來說大部分時候所走的路由是相同的。linux系統中,我們稱之為traceroute,在MS Windows中為tracert。 traceroute通過發送小的數據包到目的設備直到其返回,來測量其需要多長時間。一條路徑上的每個設備traceroute要測3次。輸出結果中包括每次測試的時間(ms)和設備的名稱(如有的話)及其IP地址。

在大多數情況下,我們會在linux主機系統下,直接執行命令行:

traceroute hostname

而在Windows系統下是執行tracert的命令:

tracert hostname

**1.**命令格式:

traceroute[參數][主機]

**2.**命令功能:

traceroute指令讓你追蹤網絡數據包的路由途徑,預設數據包大小是40Bytes,用戶可另行設置。

具體參數格式:traceroute [-dFlnrvx][-f][-g…][-i][-m][-p][-s][-t][-w][主機名稱或IP地址][數據包大小]

**3.**命令參數:

-d 使用Socket層級的排錯功能。-f 設置第一個檢測數據包的存活數值TTL的大小。-F 設置勿離斷位。-g 設置來源路由網關,最多可設置8個。-i 使用指定的網絡界面送出數據包。-I 使用ICMP回應取代UDP資料信息。-m 設置檢測數據包的最大存活數值TTL的大小。-n 直接使用IP地址而非主機名稱。-p 設置UDP傳輸協議的通信端口。-r 忽略普通的Routing Table,直接將數據包送到遠端主機上。-s 設置本地主機送出數據包的IP地址。-t 設置檢測數據包的TOS數值。-v 詳細顯示指令的執行過程。-w 設置等待遠端主機回報的時間。-x 開啟或關閉數據包的正確性檢驗。

traceroute命令使用示例

**實例1:**traceroute 用法簡單、最常用的用法

命令:

traceroute www.baidu.com 

輸出:

[root@localhost ~]# traceroute www.baidu.comtraceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets 1 192.168.74.2 (192.168.74.2) 2.606 ms 2.771 ms 2.950 ms 2 211.151.56.57 (211.151.56.57) 0.596 ms 0.598 ms 0.591 ms 3 211.151.227.206 (211.151.227.206) 0.546 ms 0.544 ms 0.538 ms 4 210.77.139.145 (210.77.139.145) 0.710 ms 0.748 ms 0.801 ms 5 202.106.42.101 (202.106.42.101) 6.759 ms 6.945 ms 7.107 ms 6 61.148.154.97 (61.148.154.97) 718.908 ms * bt-228-025.bta.net.cn (202.106.228.25) 5.177 ms 7 124.65.58.213 (124.65.58.213) 4.343 ms 4.336 ms 4.367 ms 8 202.106.35.190 (202.106.35.190) 1.795 ms 61.148.156.138 (61.148.156.138) 1.899 ms 1.951 ms 9 * * *30 * * *[root@localhost ~]# 

說明:

記錄按序列號從1開始,每個紀錄就是一跳 ,每跳表示一個網關,我們看到每行有三個時間,單位是 ms,其實就是-q的默認參數。探測數據包向每個網關發送三個數據包後,網關響應後返回的時間;如果您用 traceroute -q 4 www.58.com ,表示向每個網關發送4個數據包。

有時我們traceroute 一臺主機時,會看到有一些行是以星號表示的。出現這樣的情況,可能是防火墻封掉瞭ICMP的返回信息,所以我們得不到什麼相關的數據包返回數據。

有時我們在某一網關處延時比較長,有可能是某臺網關比較阻塞,也可能是物理設備本身的原因。當然如果某臺DNS出現問題時,不能解析主機名、域名時,也會 有延時長的現象;您可以加-n 參數來避免DNS解析,以IP格式輸出數據。

如果在局域網中的不同網段之間,我們可以通過traceroute 來排查問題所在,是主機的問題還是網關的問題。如果我們通過遠程來訪問某臺服務器遇到問題時,我們用到traceroute 追蹤數據包所經過的網關,提交IDC服務商,也有助於解決問題;但目前看來在國內解決這樣的問題是比較困難的,就是我們發現問題所在,IDC服務商也不可能幫助我們解決。

**實例2:**跳數設置

命令:

traceroute -m 10 www.baidu.com

輸出:

[root@localhost ~]# traceroute -m 10 www.baidu.comtraceroute to www.baidu.com (61.135.169.105), 10 hops max, 40 byte packets 1 192.168.74.2 (192.168.74.2) 1.534 ms 1.775 ms 1.961 ms 2 211.151.56.1 (211.151.56.1) 0.508 ms 0.514 ms 0.507 ms 3 211.151.227.206 (211.151.227.206) 0.571 ms 0.558 ms 0.550 ms 4 210.77.139.145 (210.77.139.145) 0.708 ms 0.729 ms 0.785 ms 5 202.106.42.101 (202.106.42.101) 7.978 ms 8.155 ms 8.311 ms 6 bt-228-037.bta.net.cn (202.106.228.37) 772.460 ms bt-228-025.bta.net.cn (202.106.228.25) 2.152 ms 61.148.154.97 (61.148.154.97) 772.107 ms 7 124.65.58.221 (124.65.58.221) 4.875 ms 61.148.146.29 (61.148.146.29) 2.124 ms 124.65.58.221 (124.65.58.221) 4.854 ms 8 123.126.6.198 (123.126.6.198) 2.944 ms 61.148.156.6 (61.148.156.6) 3.505 ms 123.126.6.198 (123.126.6.198) 2.885 ms 9 * * *10 * * *[root@localhost ~]#

說明:

**實例3:**顯示IP地址,不查主機名

命令:

traceroute -n www.baidu.com

輸出:

[root@localhost ~]# traceroute -n www.baidu.comtraceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets 1 211.151.74.2 5.430 ms 5.636 ms 5.802 ms 2 211.151.56.57 0.627 ms 0.625 ms 0.617 ms 3 211.151.227.206 0.575 ms 0.584 ms 0.576 ms 4 210.77.139.145 0.703 ms 0.754 ms 0.806 ms 5 202.106.42.101 23.683 ms 23.869 ms 23.998 ms 6 202.106.228.37 247.101 ms * * 7 61.148.146.29 5.256 ms 124.65.58.213 4.386 ms 4.373 ms 8 202.106.35.190 1.610 ms 61.148.156.138 1.786 ms 61.148.3.34 2.089 ms 9 * * *30 * * *[root@localhost ~]# traceroute www.baidu.comtraceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets 1 211.151.74.2 (211.151.74.2) 4.671 ms 4.865 ms 5.055 ms 2 211.151.56.57 (211.151.56.57) 0.619 ms 0.618 ms 0.612 ms 3 211.151.227.206 (211.151.227.206) 0.620 ms 0.642 ms 0.636 ms 4 210.77.139.145 (210.77.139.145) 0.720 ms 0.772 ms 0.816 ms 5 202.106.42.101 (202.106.42.101) 7.667 ms 7.910 ms 8.012 ms 6 bt-228-025.bta.net.cn (202.106.228.25) 2.965 ms 2.440 ms 61.148.154.97 (61.148.154.97) 431.337 ms 7 124.65.58.213 (124.65.58.213) 5.134 ms 5.124 ms 5.044 ms 8 202.106.35.190 (202.106.35.190) 1.917 ms 2.052 ms 2.059 ms 9 * * *30 * * *[root@localhost ~]# 

說明:

**實例4:**探測包使用的基本UDP端口設置6888

命令:

traceroute -p 6888 www.baidu.com

輸出:

[root@localhost ~]# traceroute -p 6888 www.baidu.comtraceroute to www.baidu.com (220.181.111.147), 30 hops max, 40 byte packets 1 211.151.74.2 (211.151.74.2) 4.927 ms 5.121 ms 5.298 ms 2 211.151.56.1 (211.151.56.1) 0.500 ms 0.499 ms 0.509 ms 3 211.151.224.90 (211.151.224.90) 0.637 ms 0.631 ms 0.641 ms 4 * * * 5 220.181.70.98 (220.181.70.98) 5.050 ms 5.313 ms 5.596 ms 6 220.181.17.94 (220.181.17.94) 1.665 ms !X * *[root@localhost ~]# 

說明:

**實例5:**把探測包的個數設置為值4

命令:

traceroute -q 4 www.baidu.com

輸出:

[root@localhost ~]# traceroute -q 4 www.baidu.comtraceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets 1 211.151.74.2 (211.151.74.2) 40.633 ms 40.819 ms 41.004 ms 41.188 ms 2 211.151.56.57 (211.151.56.57) 0.637 ms 0.633 ms 0.627 ms 0.619 ms 3 211.151.227.206 (211.151.227.206) 0.505 ms 0.580 ms 0.571 ms 0.569 ms 4 210.77.139.145 (210.77.139.145) 0.753 ms 0.800 ms 0.853 ms 0.904 ms 5 202.106.42.101 (202.106.42.101) 7.449 ms 7.543 ms 7.738 ms 7.893 ms 6 61.148.154.97 (61.148.154.97) 316.817 ms bt-228-025.bta.net.cn (202.106.228.25) 3.695 ms 3.672 ms * 7 124.65.58.213 (124.65.58.213) 3.056 ms 2.993 ms 2.960 ms 61.148.146.29 (61.148.146.29) 2.837 ms 8 61.148.3.34 (61.148.3.34) 2.179 ms 2.295 ms 2.442 ms 202.106.35.190 (202.106.35.190) 7.136 ms 9 * * * *30 * * * *[root@localhost ~]# 

說明:

**實例6:**繞過正常的路由表,直接發送到網絡相連的主機

命令:

 traceroute -r www.baidu.com

輸出:

[root@localhost ~]# traceroute -r www.baidu.comtraceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packetsconnect: 網絡不可達[root@localhost ~]# 

說明:

**實例7:**把對外發探測包的等待響應時間設置為3秒

命令:

traceroute -w 3 www.baidu.com

輸出:

[root@localhost ~]# traceroute -w 3 www.baidu.comtraceroute to www.baidu.com (61.135.169.105), 30 hops max, 40 byte packets 1 211.151.74.2 (211.151.74.2) 2.306 ms 2.469 ms 2.650 ms 2 211.151.56.1 (211.151.56.1) 0.621 ms 0.613 ms 0.603 ms 3 211.151.227.206 (211.151.227.206) 0.557 ms 0.560 ms 0.552 ms 4 210.77.139.145 (210.77.139.145) 0.708 ms 0.761 ms 0.817 ms 5 202.106.42.101 (202.106.42.101) 7.520 ms 7.774 ms 7.902 ms 6 bt-228-025.bta.net.cn (202.106.228.25) 2.890 ms 2.369 ms 61.148.154.97 (61.148.154.97) 471.961 ms 7 124.65.58.221 (124.65.58.221) 4.490 ms 4.483 ms 4.472 ms 8 123.126.6.198 (123.126.6.198) 2.948 ms 61.148.156.6 (61.148.156.6) 7.688 ms 7.756 ms 9 * * *30 * * *[root@localhost ~]# 

說明:

Traceroute的工作原理:

Traceroute最簡單的基本用法是:traceroute hostname

Traceroute程序的設計是利用ICMP及IP header的TTL(Time To Live)欄位(field)。首先,traceroute送出一個TTL是1的IP datagram(其實,每次送出的為3個40字節的包,包括源地址,目的地址和包發出的時間標簽)到目的地,當路徑上的第一個路由器(router)收到這個datagram時,它將TTL減1。此時,TTL變為0瞭,所以該路由器會將此datagram丟掉,並送回一個「ICMP time exceeded」消息(包括發IP包的源地址,IP包的所有內容及路由器的IP地址),traceroute 收到這個消息後,便知道這個路由器存在於這個路徑上,接著traceroute 再送出另一個TTL是2 的datagram,發現第2 個路由器… traceroute 每次將送出的datagram的TTL 加1來發現另一個路由器,這個重復的動作一直持續到某個datagram 抵達目的地。當datagram到達目的地後,該主機並不會送回ICMP time exceeded消息,因為它已是目的地瞭,那麼traceroute如何得知目的地到達瞭呢?

Traceroute在送出UDP datagrams到目的地時,它所選擇送達的port number 是一個一般應用程序都不會用的號碼(30000 以上),所以當此UDP datagram 到達目的地後該主機會送回一個「ICMP port unreachable」的消息,而當traceroute 收到這個消息時,便知道目的地已經到達瞭。所以traceroute 在Server端也是沒有所謂的Daemon 程式。

Traceroute提取發 ICMP TTL到期消息設備的IP地址並作域名解析。每次 ,Traceroute都打印出一系列數據,包括所經過的路由設備的域名及 IP地址,三個包每次來回所花時間。

netstat命令語法

netstat命令用於顯示與IP、TCP、UDP和ICMP協議相關的統計數據,一般用於檢驗本機各端口的網絡連接情況。netstat是在內核中訪問網絡及相關信息的程序,它能提供TCP連接,TCP和UDP監聽,進程內存管理的相關報告。

如果你的計算機有時候接收到的數據報導致出錯數據或故障,你不必感到奇怪,TCP/IP可以容許這些類型的錯誤,並能夠自動重發數據報。但如果累計的出錯情況數目占到所接收的IP數據報相當大的百分比,或者它的數目正迅速增加,那麼你就應該使用netstat查一查為什麼會出現這些情況瞭。

**1.**命令格式:

netstat [-acCeFghilMnNoprstuvVwx][-A][–ip]

**2.*命令功能:

netstat用於顯示與IP、TCP、UDP和ICMP協議相關的統計數據,一般用於檢驗本機各端口的網絡連接情況。

**3.**命令參數:

-a或–all 顯示所有連線中的Socket。-A或– 列出該網絡類型連線中的相關地址。-c或–continuous 持續列出網絡狀態。-C或–cache 顯示路由器配置的快取信息。-e或–extend 顯示網絡其他相關信息。-F或–fib 顯示FIB。-g或–groups 顯示多重廣播功能群組組員名單。-h或–help 在線幫助。-i或–interfaces 顯示網絡界面信息表單。-l或–listening 顯示監控中的服務器的Socket。-M或–masquerade 顯示偽裝的網絡連線。-n或–numeric 直接使用IP地址,而不通過域名服務器。-N或–netlink或–symbolic 顯示網絡硬件外圍設備的符號連接名稱。-o或–timers 顯示計時器。-p或–programs 顯示正在使用Socket的程序識別碼和程序名稱。-r或–route 顯示Routing Table。-s或–statistice 顯示網絡工作信息統計表。-t或–tcp 顯示TCP傳輸協議的連線狀況。-u或–udp 顯示UDP傳輸協議的連線狀況。-v或–verbose 顯示指令執行過程。-V或–version 顯示版本信息。-w或–raw 顯示RAW傳輸協議的連線狀況。-x或–unix 此參數的效果和指定”-A unix”參數相同。–ip或–inet 此參數的效果和指定”-A inet”參數相同。

netstat命令使用示例

實例1:無參數使用

命令:

netstat

輸出:

[root@localhost ~]# netstatActive Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address        Foreign Address       State   tcp    0  268 192.168.120.204:ssh     10.2.0.68:62420       ESTABLISHED udp    0   0 192.168.120.204:4371    10.58.119.119:domain    ESTABLISHED Active UNIX domain sockets (w/o servers)Proto RefCnt Flags    Type    State     I-Node Pathunix 2   [ ]     DGRAM          1491  @/org/kernel/udev/udevdunix 4   [ ]     DGRAM          7337  /dev/logunix 2   [ ]     DGRAM          708823 unix 2   [ ]     DGRAM          7539  unix 3   [ ]     STREAM   CONNECTED   7287  unix 3   [ ]     STREAM   CONNECTED   7286  [root@localhost ~]#

說明:

從整體上看,netstat的輸出結果可以分為兩個部分:

一個是Active Internet connections,稱為有源TCP連接,其中”Recv-Q”和”Send-Q”指的是接收隊列和發送隊列。這些數字一般都應該是0。如果不是則表示軟件包正在隊列中堆積。這種情況隻能在非常少的情況見到。

另一個是Active UNIX domain sockets,稱為有源Unix域套接口(和網絡套接字一樣,但是隻能用於本機通信,性能可以提高一倍)。

Proto顯示連接使用的協議,RefCnt表示連接到本套接口上的進程號,Types顯示套接口的類型,State顯示套接口當前的狀態,Path表示連接到套接口的其它進程使用的路徑名。

套接口類型:

-t :TCP

-u :UDP

-raw :RAW類型

–unix :UNIX域類型

–ax25 :AX25類型

–ipx :ipx類型

–netrom :netrom類型

狀態說明:

LISTEN:偵聽來自遠方的TCP端口的連接請求

SYN-SENT:再發送連接請求後等待匹配的連接請求(如果有大量這樣的狀態包,檢查是否中招瞭)

SYN-RECEIVED:再收到和發送一個連接請求後等待對方對連接請求的確認(如有大量此狀態,估計被flood攻擊瞭)

ESTABLISHED:代表一個打開的連接

FIN-WAIT-1:等待遠程TCP連接中斷請求,或先前的連接中斷請求的確認

FIN-WAIT-2:從遠程TCP等待連接中斷請求

CLOSE-WAIT:等待從本地用戶發來的連接中斷請求

CLOSING:等待遠程TCP對連接中斷的確認

LAST-ACK:等待原來的發向遠程TCP的連接中斷請求的確認(不是什麼好東西,此項出現,檢查是否被攻擊)

TIME-WAIT:等待足夠的時間以確保遠程TCP接收到連接中斷請求的確認

CLOSED:沒有任何連接狀態

實例2:列出所有端口

命令:

netstat -a

輸出:

[root@localhost ~]# netstat -aActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address        Foreign Address       State   tcp    0   0 localhost:smux       *:*             LISTEN   tcp    0   0 *:svn            *:*             LISTEN   tcp    0   0 *:ssh            *:*             LISTEN   tcp    0  284 192.168.120.204:ssh     10.2.0.68:62420       ESTABLISHED udp    0   0 localhost:syslog      *:*                   udp    0   0 *:snmp           *:*                   Active UNIX domain sockets (servers and established)Proto RefCnt Flags    Type    State     I-Node Pathunix 2   [ ACC ]   STREAM   LISTENING   708833 /tmp/ssh-yKnDB15725/agent.15725unix 2   [ ACC ]   STREAM   LISTENING   7296  /var/run/audispd_eventsunix 2   [ ]     DGRAM          1491  @/org/kernel/udev/udevdunix 4   [ ]     DGRAM          7337  /dev/logunix 2   [ ]     DGRAM          708823 unix 2   [ ]     DGRAM          7539  unix 3   [ ]     STREAM   CONNECTED   7287  unix 3   [ ]     STREAM   CONNECTED   7286  [root@localhost ~]# 

說明:

顯示一個所有的有效連接信息列表,包括已建立的連接(ESTABLISHED),也包括監聽連接請(LISTENING)的那些連接。

實例3:顯示當前UDP連接狀況

命令:

netstat -nu

輸出:

[root@andy ~]# netstat -nuActive Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address        Foreign Address       State   udp    0   0 ::ffff:192.168.12:53392   ::ffff:192.168.9.120:10000 ESTABLISHED udp    0   0 ::ffff:192.168.12:56723   ::ffff:192.168.9.120:10000 ESTABLISHED udp    0   0 ::ffff:192.168.12:56480   ::ffff:192.168.9.120:10000 ESTABLISHED udp    0   0 ::ffff:192.168.12:58154   ::ffff:192.168.9.120:10000 ESTABLISHED udp    0   0 ::ffff:192.168.12:44227   ::ffff:192.168.9.120:10000 ESTABLISHED udp    0   0 ::ffff:192.168.12:36954   ::ffff:192.168.9.120:10000 ESTABLISHED udp    0   0 ::ffff:192.168.12:53984   ::ffff:192.168.9.120:10000 ESTABLISHED udp    0   0 ::ffff:192.168.12:57703   ::ffff:192.168.9.120:10000 ESTABLISHED udp    0   0 ::ffff:192.168.12:53613   ::ffff:192.168.9.120:10000 ESTABLISHED [root@andy ~]# 

說明:

實例4:顯示UDP端口號的使用情況

命令:

netstat -apu

輸出:

[root@andy ~]# netstat -apuActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address        Foreign Address       State    PID/Program name  udp    0   0 *:57604           *:*                   28094/java     udp    0   0 *:40583           *:*                   21220/java     udp    0   0 *:45451           *:*                   14583/java     udp    0   0 ::ffff:192.168.12:53392   ::ffff:192.168.9.120:ndmp  ESTABLISHED 19327/java     udp    0   0 *:52370           *:*                   15841/java     udp    0   0 ::ffff:192.168.12:56723   ::ffff:192.168.9.120:ndmp  ESTABLISHED 15841/java     udp    0   0 *:44182           *:*                   31757/java     udp    0   0 *:48155           *:*                   5476/java      udp    0   0 *:59808           *:*                   17333/java     udp    0   0 ::ffff:192.168.12:56480   ::ffff:192.168.9.120:ndmp  ESTABLISHED 28094/java     udp    0   0 ::ffff:192.168.12:58154   ::ffff:192.168.9.120:ndmp  ESTABLISHED 15429/java     udp    0   0 *:36780           *:*                   10091/java     udp    0   0 *:36795           *:*                   24594/java     udp    0   0 *:41922           *:*                   20506/java     udp    0   0 ::ffff:192.168.12:44227   ::ffff:192.168.9.120:ndmp  ESTABLISHED 17333/java     udp    0   0 *:34258           *:*                   8866/java      udp    0   0 *:55508           *:*                   11667/java     udp    0   0 *:36055           *:*                   12425/java     udp    0   0 ::ffff:192.168.12:36954   ::ffff:192.168.9.120:ndmp  ESTABLISHED 16532/java     udp    0   0 ::ffff:192.168.12:53984   ::ffff:192.168.9.120:ndmp  ESTABLISHED 20506/java     udp    0   0 ::ffff:192.168.12:57703   ::ffff:192.168.9.120:ndmp  ESTABLISHED 31757/java     udp    0   0 ::ffff:192.168.12:53613   ::ffff:192.168.9.120:ndmp  ESTABLISHED 3199/java      udp    0   0 *:56309           *:*                   15429/java     udp    0   0 *:54007           *:*                   16532/java     udp    0   0 *:39544           *:*                   3199/java      udp    0   0 *:43900           *:*                   19327/java     [root@andy ~]# 

說明:

實例5:顯示網卡列表

命令:

netstat -i

輸出:

[root@andy ~]# netstat -iKernel Interface tableIface    MTU Met  RX-OK RX-ERR RX-DRP RX-OVR  TX-OK TX-ERR TX-DRP TX-OVR Flgeth0    1500  0 151818887   0   0   0 198928403   0   0   0 BMRUlo    16436  0  107235   0   0   0  107235   0   0   0 LRU[root@andy ~]# 

說明:

實例6:顯示組播組的關系

命令:

netstat -g

輸出:

[root@andy ~]# netstat -gIPv6/IPv4 Group MembershipsInterface    RefCnt Group--------------- ------ ---------------------lo       1   all-systems.mcast.neteth0      1   all-systems.mcast.netlo       1   ff02::1eth0      1   ff02::1:ffff:9b0ceth0      1   ff02::1[root@andy ~]# 

說明:

實例7:顯示網絡統計信息

命令:

netstat -s

輸出:

[root@localhost ~]# netstat -sIp:  530999 total packets received  0 forwarded  0 incoming packets discarded  530999 incoming packets delivered  8258 requests sent out  1 dropped because of missing routeIcmp:  90 ICMP messages received  0 input ICMP message failed.  ICMP input histogram:    destination unreachable: 17    echo requests: 1    echo replies: 72  106 ICMP messages sent  0 ICMP messages failed  ICMP output histogram:    destination unreachable: 8    echo request: 97    echo replies: 1IcmpMsg:    InType0: 72    InType3: 17    InType8: 1    OutType0: 1    OutType3: 8    OutType8: 97Tcp:  8 active connections openings  15 passive connection openings  8 failed connection attempts  3 connection resets received  1 connections established  3132 segments received  2617 segments send out  53 segments retransmited  0 bad segments received.  252 resets sentUdp:  0 packets received  0 packets to unknown port received.  0 packet receive errors  5482 packets sentTcpExt:  1 invalid SYN cookies received  1 TCP sockets finished time wait in fast timer  57 delayed acks sent  Quick ack mode was activated 50 times  60 packets directly queued to recvmsg prequeue.  68 packets directly received from backlog  4399 packets directly received from prequeue  520 packets header predicted  51 packets header predicted and directly queued to user  1194 acknowledgments not containing data received  21 predicted acknowledgments  0 TCP data loss events  1 timeouts after reno fast retransmit  9 retransmits in slow start  42 other TCP timeouts  3 connections aborted due to timeoutIpExt:  InBcastPkts: 527777

說明:

按照各個協議分別顯示其統計數據。如果我們的應用程序(如Web瀏覽器)運行速度比較慢,或者不能顯示Web頁之類的數據,那麼我們就可以用本選項來查看一下所顯示的信息。我們需要仔細查看統計數據的各行,找到出錯的關鍵字,進而確定問題所在。

實例8:顯示監聽的套接口

命令:

netstat -l

輸出:

[root@localhost ~]# netstat -lActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address        Foreign Address       State   tcp    0   0 localhost:smux       *:*             LISTEN   tcp    0   0 *:svn            *:*             LISTEN   tcp    0   0 *:ssh            *:*             LISTEN   udp    0   0 localhost:syslog      *:*                   udp    0   0 *:snmp           *:*                   Active UNIX domain sockets (only servers)Proto RefCnt Flags    Type    State     I-Node Pathunix 2   [ ACC ]   STREAM   LISTENING   708833 /tmp/ssh-yKnDB15725/agent.15725unix 2   [ ACC ]   STREAM   LISTENING   7296  /var/run/audispd_events[root@localhost ~]# 

說明:

實例9:顯示所有已建立的有效連接

命令:

netstat -n

輸出:

[root@localhost ~]# netstat -nActive Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address        Foreign Address       State   tcp    0  268 192.168.120.204:22     10.2.0.68:62420       ESTABLISHED Active UNIX domain sockets (w/o servers)Proto RefCnt Flags    Type    State     I-Node Pathunix 2   [ ]     DGRAM          1491  @/org/kernel/udev/udevdunix 4   [ ]     DGRAM          7337  /dev/logunix 2   [ ]     DGRAM          708823 unix 2   [ ]     DGRAM          7539  unix 3   [ ]     STREAM   CONNECTED   7287  unix 3   [ ]     STREAM   CONNECTED   7286  [root@localhost ~]# 

說明:

實例10:顯示關於以太網的統計數據

命令:

netstat -e

輸出:

[root@localhost ~]# netstat -eActive Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address        Foreign Address       State    User    Inode   tcp    0  248 192.168.120.204:ssh     10.2.0.68:62420       ESTABLISHED root    708795   Active UNIX domain sockets (w/o servers)Proto RefCnt Flags    Type    State     I-Node Pathunix 2   [ ]     DGRAM          1491  @/org/kernel/udev/udevdunix 4   [ ]     DGRAM          7337  /dev/logunix 2   [ ]     DGRAM          708823 unix 2   [ ]     DGRAM          7539  unix 3   [ ]     STREAM   CONNECTED   7287  unix 3   [ ]     STREAM   CONNECTED   7286  [root@localhost ~]#

說明:

用於顯示關於以太網的統計數據。它列出的項目包括傳送的數據報的總字節數、錯誤數、刪除數、數據報的數量和廣播的數量。這些統計數據既有發送的數據報數量,也有接收的數據報數量。這個選項可以用來統計一些基本的網絡流量)

實例11:顯示關於路由表的信息

命令:

netstat -r

輸出:

[root@localhost ~]# netstat -rKernel IP routing tableDestination   Gateway     Genmask     Flags  MSS Window irtt Iface192.168.120.0  *        255.255.255.0  U     0 0     0 eth0192.168.0.0   192.168.120.1  255.255.0.0   UG    0 0     0 eth010.0.0.0    192.168.120.1  255.0.0.0    UG    0 0     0 eth0default     192.168.120.240 0.0.0.0     UG    0 0     0 eth0[root@localhost ~]# 

說明:

實例12:列出所有 tcp 端口

命令:

netstat -at

輸出:

[root@localhost ~]# netstat -atActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address        Foreign Address       State   tcp    0   0 localhost:smux       *:*             LISTEN   tcp    0   0 *:svn            *:*             LISTEN   tcp    0   0 *:ssh            *:*             LISTEN   tcp    0  284 192.168.120.204:ssh     10.2.0.68:62420       ESTABLISHED [root@localhost ~]#

說明:

實例13:統計機器中網絡連接各個狀態個數

命令:

netstat -a | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

輸出:

[root@localhost ~]# netstat -a | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'ESTABLISHED 1LISTEN 3[root@localhost ~]# 

說明:

實例14:把狀態全都取出來後使用uniq -c統計後再進行排序

命令:

netstat -nat |awk '{print $6}'|sort|uniq -c

輸出:

[root@andy ~]# netstat -nat |awk '{print $6}'|sort|uniq -c   14 CLOSE_WAIT   1 established)  578 ESTABLISHED   1 Foreign   43 LISTEN   5 TIME_WAIT[root@andy ~]# netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn  576 ESTABLISHED   43 LISTEN   14 CLOSE_WAIT   5 TIME_WAIT   1 Foreign   1 established)[root@andy ~]#**說明:

實例15:*查看連接某服務端口最多的的IP地址

命令:

netstat -nat | grep "192.168.120.20:16067" |awk '{print $5}'|awk -F: '{print $4}'|sort|uniq -c|sort -nr|head -20

輸出:

[root@andy ~]# netstat -nat | grep "192.168.120.20:16067" |awk '{print $5}'|awk -F: '{print $4}'|sort|uniq -c|sort -nr|head -20   8 10.2.1.68   7 192.168.119.13   6 192.168.119.201   6 192.168.119.20   6 192.168.119.10   4 10.2.1.199   3 10.2.1.207   2 192.168.120.20   2 192.168.120.15   2 192.168.119.197   2 192.168.119.11   2 10.2.1.206   2 10.2.1.203   2 10.2.1.189   2 10.2.1.173   1 192.168.120.18   1 192.168.119.19   1 10.2.2.227   1 10.2.2.138   1 10.2.1.208[root@andy ~]# 

說明:

實例16:找出程序運行的端口

命令:

netstat -ap | grep ssh

輸出:

[root@andy ~]# netstat -ap | grep sshtcp    0   0 *:ssh            *:*             LISTEN   2570/sshd      tcp    0   0 ::ffff:192.168.120.206:ssh ::ffff:10.2.1.205:54508   ESTABLISHED 13883/14      tcp    0   0 ::ffff:192.168.120.206:ssh ::ffff:10.2.0.68:62886   ESTABLISHED 20900/6       tcp    0   0 ::ffff:192.168.120.206:ssh ::ffff:10.2.2.131:52730   ESTABLISHED 20285/sshd: root@no unix 2   [ ACC ]   STREAM   LISTENING   194494461 20900/6       /tmp/ssh-cXIJj20900/agent.20900unix 3   [ ]     STREAM   CONNECTED   194307443 20285/sshd: root@no unix 3   [ ]     STREAM   CONNECTED   194307441 20285/sshd: root@no [root@andy ~]# 

說明:

**實例17:**在 netstat 輸出中顯示 PID 和進程名稱

命令:

netstat -pt

輸出:

[root@localhost ~]# netstat -ptActive Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address        Foreign Address       State    PID/Program name  tcp    0  248 192.168.120.204:ssh     10.2.0.68:62420       ESTABLISHED 15725/0       [root@localhost ~]# 

說明:

netstat -p 可以與其它開關一起使用,就可以添加 “PID/進程名稱” 到 netstat 輸出中,這樣 debugging 的時候可以很方便的發現特定端口運行的程序。

實例18:找出運行在指定端口的進程

命令:

netstat -anpt | grep ':16064'

輸出:

[root@andy ~]# netstat -anpt | grep ':16064'tcp    0   0 :::16064          :::*            LISTEN   24594/java     tcp    0   0 ::ffff:192.168.120.20:16064 ::ffff:192.168.119.201:6462 ESTABLISHED 24594/java     tcp    0   0 ::ffff:192.168.120.20:16064 ::ffff:192.168.119.20:26341 ESTABLISHED 24594/java     tcp    0   0 ::ffff:192.168.120.20:16064 ::ffff:192.168.119.20:32208 ESTABLISHED 24594/java     tcp    0   0 ::ffff:192.168.120.20:16064 ::ffff:192.168.119.20:32207 ESTABLISHED 24594/java     tcp    0   0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:51303   ESTABLISHED 24594/java     tcp    0   0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:51302   ESTABLISHED 24594/java     tcp    0   0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:50020   ESTABLISHED 24594/java     tcp    0   0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:50019   ESTABLISHED 24594/java     tcp    0   0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:56155   ESTABLISHED 24594/java     tcp    0   0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:50681   ESTABLISHED 24594/java     tcp    0   0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:50680   ESTABLISHED 24594/java     tcp    0   0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:52136   ESTABLISHED 24594/java     tcp    0   0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:56989   ESTABLISHED 24594/java     tcp    0   0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:56988   ESTABLISHED 24594/java     [root@andy ~]# 

說明:

運行在端口16064的進程id為24596,再通過ps命令就可以找到具體的應用程序瞭。

ss命令語法

ss是Socket Statistics的縮寫。顧名思義,ss命令可以用來獲取socket統計信息,它可以顯示和netstat類似的內容。但ss的優勢在於它能夠顯示更多更詳細的有關TCP和連接狀態的信息,而且比netstat更快速更高效。

當服務器的socket連接數量變得非常大時,無論是使用netstat命令還是直接cat /proc/net/tcp,執行速度都會很慢。可能你不會有切身的感受,但請相信我,當服務器維持的連接達到上萬個的時候,使用netstat等於浪費 生命,而用ss才是節省時間。

天下武功唯快不破。ss快的秘訣在於,它利用到瞭TCP協議棧中tcp_diag。tcp_diag是一個用於分析統計的模塊,可以獲得Linux 內核中第一手的信息,這就確保瞭ss的快捷高效。當然,如果你的系統中沒有tcp_diag,ss也可以正常運行,隻是效率會變得稍慢。(但仍然比 netstat要快。)

**1.**命令格式:

ss [參數]

ss [參數] [過濾]

**2.**命令功能:

ss(Socket Statistics的縮寫)命令可以用來獲取 socket統計信息,此命令輸出的結果類似於 netstat輸出的內容,但它能顯示更多更詳細的 TCP連接狀態的信息,且比 netstat 更快速高效。它使用瞭 TCP協議棧中 tcp_diag(是一個用於分析統計的模塊),能直接從獲得第一手內核信息,這就使得 ss命令快捷高效。在沒有 tcp_diag,ss也可以正常運行。

**3.**命令參數:

-h, --help 幫助信息-V, --version 程序版本信息-n, --numeric 不解析服務名稱-r, --resolve    解析主機名-a, --all 顯示所有套接字(sockets)-l, --listening 顯示監聽狀態的套接字(sockets)-o, --options    顯示計時器信息-e, --extended    顯示詳細的套接字(sockets)信息-m, --memory     顯示套接字(socket)的內存使用情況-p, --processes 顯示使用套接字(socket)的進程-i, --info 顯示 TCP內部信息-s, --summary 顯示套接字(socket)使用概況-4, --ipv4      僅顯示IPv4的套接字(sockets)-6, --ipv6      僅顯示IPv6的套接字(sockets)-0, --packet     顯示 PACKET 套接字(socket)-t, --tcp 僅顯示 TCP套接字(sockets)-u, --udp 僅顯示 UCP套接字(sockets)-d, --dccp 僅顯示 DCCP套接字(sockets)-w, --raw 僅顯示 RAW套接字(sockets)-x, --unix 僅顯示 Unix套接字(sockets)-f, --family=FAMILY 顯示 FAMILY類型的套接字(sockets),FAMILY可選,支持 unix, inet, inet6, link, netlink-A, --query=QUERY, --socket=QUERY   QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]-D, --diag=FILE   將原始TCP套接字(sockets)信息轉儲到文件 -F, --filter=FILE  從文件中都去過濾器信息    FILTER := [ state TCP-STATE ] [ EXPRESSION ]

ss命令使用示例

**實例1:**顯示TCP連接

命令:

ss -t -a

輸出:

[root@localhost ~]# ss -t -aState   Recv-Q Send-Q                Local Address:Port                  Peer Address:Port  LISTEN   0   0                     127.0.0.1:smux                        *:*    LISTEN   0   0                         *:3690                        *:*    LISTEN   0   0                         *:ssh                        *:*    ESTAB   0   0                  192.168.120.204:ssh                    10.2.0.68:49368  [root@localhost ~]# 

說明:

**實例2:**顯示 Sockets 摘要

命令:

ss -s

輸出:

[root@localhost ~]# ss -sTotal: 34 (kernel 48)TCP:  4 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 3Transport Total   IP    IPv6\*     48    -     -    RAW    0     0     0    UDP    5     5     0    TCP    4     4     0    INET   9     9     0    FRAG   0     0     0    [root@localhost ~]# 

說明:

列出當前的established, closed, orphaned and waiting TCP sockets

**實例3:**列出所有打開的網絡連接端口

命令:

ss -l

輸出:

[root@localhost ~]# ss -lRecv-Q Send-Q                   Local Address:Port                     Peer Address:Port  0   0                       127.0.0.1:smux                          *:*    0   0                           *:3690                          *:*    0   0                           *:ssh                           *:*    [root@localhost ~]# 

說明:

**實例4:**查看進程使用的socket

命令:

ss -pl

輸出:

[root@localhost ~]# ss -plRecv-Q Send-Q                   Local Address:Port                     Peer Address:Port  0   0                       127.0.0.1:smux                          *:*    users:(("snmpd",2716,8))0   0                           *:3690                          *:*    users:(("svnserve",3590,3))0   0                           *:ssh                           *:*    users:(("sshd",2735,3))[root@localhost ~]#

**實例5:**找出打開套接字/端口應用程序

命令:

ss -lp | grep 3306

輸出:

[root@localhost ~]# ss -lp|grep 19350   0              *:1935             *:*    users:(("fmsedge",2913,18))0   0          127.0.0.1:19350             *:*    users:(("fmsedge",2913,17))[root@localhost ~]# ss -lp|grep 33060   0              *:3306             *:*    users:(("mysqld",2871,10))[root@localhost ~]# 

說明:

**實例6:**顯示所有UDP Sockets

命令:

ss -u -a

輸出:

[root@localhost ~]# ss -u -aState   Recv-Q Send-Q                Local Address:Port                  Peer Address:Port  UNCONN   0   0                     127.0.0.1:syslog                       *:*    UNCONN   0   0                         *:snmp                        *:*    ESTAB   0   0                  192.168.120.203:39641                 10.58.119.119:domain [root@localhost ~]#

說明:

**實例7:**顯示所有狀態為established的SMTP連接

命令:

ss -o state established '( dport = :smtp or sport = :smtp )' 

輸出:

[root@localhost ~]# ss -o state established '( dport = :smtp or sport = :smtp )' Recv-Q Send-Q                   Local Address:Port                     Peer Address:Port  [root@localhost ~]#

說明:

**實例8:**顯示所有狀態為Established的HTTP連接

命令:

ss -o state established '( dport = :http or sport = :http )' 

輸出:

[root@localhost ~]# ss -o state established '( dport = :http or sport = :http )' Recv-Q Send-Q                   Local Address:Port                     Peer Address:Port  0   0                       75.126.153.214:2164                    192.168.10.42:http  [root@localhost ~]# 

說明:

**實例9:**列舉出處於 FIN-WAIT-1狀態的源端口為 80或者 443,目標網絡為 193.233.7/24所有 tcp套接字

命令:

ss -o state fin-wait-1 '( sport = :http or sport = :https )' dst 193.233.7/24

輸出:

說明:

**實例10:**用TCP 狀態過濾Sockets:

命令:

ss -4 state FILTER-NAME-HERE ss -6 state FILTER-NAME-HERE

輸出:

[root@localhost ~]#ss -4 state closing Recv-Q Send-Q                         Local Address:Port                           Peer Address:Port 1   11094                         75.126.153.214:http                           192.168.10.42:4669 

說明:

FILTER-NAME-HERE 可以代表以下任何一個:

established

syn-sent

syn-recv

fin-wait-1

fin-wait-2

time-wait

closed

close-wait

last-ack

listen

closing

all : 所有以上狀態

connected : 除瞭listen and closed的所有狀態

synchronized :所有已連接的狀態除瞭syn-sent

bucket : 顯示狀態為maintained as minisockets,如:time-wait和syn-recv.

big : 和bucket相反.

**實例11:**匹配遠程地址和端口號

命令:

ss dst ADDRESS_PATTERNss dst 192.168.1.5ss dst 192.168.119.113:http ss dst 192.168.119.113:smtp ss dst 192.168.119.113:443

輸出:

[root@localhost ~]# ss dst 192.168.119.113State   Recv-Q Send-Q                Local Address:Port                  Peer Address:Port  ESTAB   0   0                  192.168.119.103:16014                192.168.119.113:20229  ESTAB   0   0                  192.168.119.103:16014                192.168.119.113:61056  ESTAB   0   0                  192.168.119.103:16014                192.168.119.113:61623  ESTAB   0   0                  192.168.119.103:16014                192.168.119.113:60924  ESTAB   0   0                  192.168.119.103:16050                192.168.119.113:43701  ESTAB   0   0                  192.168.119.103:16073                192.168.119.113:32930  ESTAB   0   0                  192.168.119.103:16073                192.168.119.113:49318  ESTAB   0   0                  192.168.119.103:16014                192.168.119.113:3844  [root@localhost ~]# ss dst 192.168.119.113:httpState   Recv-Q Send-Q                Local Address:Port                  Peer Address:Port  [root@localhost ~]# ss dst 192.168.119.113:3844State   Recv-Q Send-Q                Local Address:Port                  Peer Address:Port  ESTAB   0   0                  192.168.119.103:16014                192.168.119.113:3844  [root@localhost ~]# 

說明:

**實例12:**匹配本地地址和端口號

命令:

ss src ADDRESS_PATTERNss src 192.168.119.103ss src 192.168.119.103:httpss src 192.168.119.103:80ss src 192.168.119.103:smtpss src 192.168.119.103:25

輸出:

[root@localhost ~]# ss src 192.168.119.103:16021State   Recv-Q Send-Q                Local Address:Port                  Peer Address:Port  ESTAB   0   0                  192.168.119.103:16021                192.168.119.201:63054  ESTAB   0   0                  192.168.119.103:16021                192.168.119.201:62894  ESTAB   0   0                  192.168.119.103:16021                192.168.119.201:63055  ESTAB   0   0                  192.168.119.103:16021                192.168.119.201:2274  ESTAB   0   0                  192.168.119.103:16021                192.168.119.201:44784  ESTAB   0   0                  192.168.119.103:16021                192.168.119.201:7233  ESTAB   0   0                  192.168.119.103:16021                192.168.119.103:58660  ESTAB   0   0                  192.168.119.103:16021                192.168.119.201:44822  ESTAB   0   0                  192.168.119.103:16021                   10.2.1.206:56737  ESTAB   0   0                  192.168.119.103:16021                   10.2.1.206:57487  ESTAB   0   0                  192.168.119.103:16021                   10.2.1.206:56736  ESTAB   0   0                  192.168.119.103:16021                   10.2.1.206:64652  ESTAB   0   0                  192.168.119.103:16021                   10.2.1.206:56586  ESTAB   0   0                  192.168.119.103:16021                   10.2.1.206:64653  ESTAB   0   0                  192.168.119.103:16021                   10.2.1.206:56587  [root@localhost ~]# 

說明:

**實例13:**將本地或者遠程端口和一個數比較

命令:

ss dport OP PORT ss sport OP PORT

輸出:

[root@localhost ~]# ss sport = :http [root@localhost ~]# ss dport = :http [root@localhost ~]# ss dport \> :1024 [root@localhost ~]# ss sport \> :1024 [root@localhost ~]# ss sport \< :32000 [root@localhost ~]# ss sport eq :22 [root@localhost ~]# ss dport != :22 [root@localhost ~]# ss state connected sport = :http [root@localhost ~]# ss \( sport = :http or sport = :https \) [root@localhost ~]# ss -o state fin-wait-1 \( sport = :http or sport = :https \) dst 192.168.1/24

說明:

ss dport OP PORT 遠程端口和一個數比較;ss sport OP PORT 本地端口和一個數比較。

OP 可以代表以下任意一個:

<= or le : 小於或等於端口號

>= or ge : 大於或等於端口號

== or eq : 等於端口號

!= or ne : 不等於端口號

< or gt : 小於端口號

> or lt : 大於端口號

**實例14:**ss 和 netstat 效率對比

命令:

time netstat -attime ss

輸出:

[root@localhost ~]# time ss  real  0m0.739suser  0m0.019ssys   0m0.013s[root@localhost ~]# [root@localhost ~]# time netstat -atreal  2m45.907suser  0m0.063ssys   0m0.067s[root@localhost ~]#

說明:

用time 命令分別獲取通過netstat和ss命令獲取程序和概要占用資源所使用的時間。在服務器連接數比較多的時候,netstat的效率完全沒法和ss比。

telnet命令語法

telnet命令通常用來遠程登錄。telnet程序是基於TELNET協議的遠程登錄客戶端程序。Telnet協議是TCP/IP協議族中的一員,是Internet遠程登陸服務的標準協議和主要方式。它為用戶提供瞭在本地計算機上完成遠程主機工作的 能力。在終端使用者的電腦上使用telnet程序,用它連接到服務器。終端使用者可以在telnet程序中輸入命令,這些命令會在服務器上運行,就像直接在服務器的控制臺上輸入一樣。可以在本地就能控制服務器。要開始一個 telnet會話,必須輸入用戶名和密碼來登錄服務器。Telnet是常用的遠程控制Web服務器的方法。

但是,telnet因為采用明文傳送報文,安全性不好,很多Linux服務器都不開放telnet服務,而改用更安全的ssh方式瞭。但仍然有很多別的系統可能采用瞭telnet方式來提供遠程登錄,因此弄清楚telnet客戶端的使用方式仍是很有必要的。

telnet命令還可做別的用途,比如確定遠程服務的狀態,比如確定遠程服務器的某個端口是否能訪問。

**1.**命令格式:

telnet[參數][主機]

**2.**命令功能:

執行telnet指令開啟終端機階段作業,並登入遠端主機。

**3.**命令參數:

-8 允許使用8位字符資料,包括輸入與輸出。-a 嘗試自動登入遠端系統。-b 使用別名指定遠端主機名稱。-c 不讀取用戶專屬目錄裡的.telnetrc文件。-d 啟動排錯模式。-e 設置脫離字符。-E 濾除脫離字符。-f 此參數的效果和指定"-F"參數相同。-F 使用Kerberos V5認證時,加上此參數可把本地主機的認證數據上傳到遠端主機。-k 使用Kerberos認證時,加上此參數讓遠端主機采用指定的領域名,而非該主機的域名。-K 不自動登入遠端主機。-l 指定要登入遠端主機的用戶名稱。-L 允許輸出8位字符資料。-n 指定文件記錄相關信息。-r 使用類似rlogin指令的用戶界面。-S 設置telnet連線所需的IP TOS信息。-x 假設主機有支持數據加密的功能,就使用它。-X 關閉指定的認證形態。

telnet命令使用示例

實例1:遠程服務器無法訪問

命令:

telnet 192.168.120.206

輸出:

[root@localhost ~]# telnet 192.168.120.209Trying 192.168.120.209...telnet: connect to address 192.168.120.209: No route to hosttelnet: Unable to connect to remote host: No route to host[root@localhost ~]# 

說明:

處理這種情況方法:

(1)確認ip地址是否正確?

(2)確認ip地址對應的主機是否已經開機?

(3)如果主機已經啟動,確認路由設置是否設置正確?(使用route命令查看)

(4)如果主機已經啟動,確認主機上是否開啟瞭telnet服務?(使用netstat命令查看,TCP的23端口是否有LISTEN狀態的行)

(5)如果主機已經啟動telnet服務,確認防火墻是否放開瞭23端口的訪問?(使用iptables-save查看)

實例2:域名無法解析

命令:

telnet www.baidu.com

輸出:

[root@localhost ~]# telnet www.baidu.comwww.baidu.com/telnet: Temporary failure in name resolution[root@localhost ~]# 

說明:

處理這種情況方法:

(1)確認域名是否正確

(2)確認本機的域名解析有關的設置是否正確(/etc/resolv.conf中nameserver的設置是否正確,如果沒有,可以使用nameserver 8.8.8.8)

(3)確認防火墻是否放開瞭UDP53端口的訪問(DNS使用UDP協議,端口53,使用iptables-save查看)

實例3:

命令:

輸出:

[root@localhost ~]# telnet 192.168.120.206Trying 192.168.120.206...telnet: connect to address 192.168.120.206: Connection refusedtelnet: Unable to connect to remote host: Connection refused[root@localhost ~]#

說明:

處理這種情況:

(1)確認ip地址或者主機名是否正確?

(2)確認端口是否正確,是否默認的23端口

實例4:啟動telnet服務

命令:

service xinetd restart

輸出:

[root@localhost ~]# cd /etc/xinetd.d/[root@localhost xinetd.d]# ll總計 124-rw-r--r-- 1 root root 1157 2011-05-31 chargen-dgram-rw-r--r-- 1 root root 1159 2011-05-31 chargen-stream-rw-r--r-- 1 root root 523 2009-09-04 cvs-rw-r--r-- 1 root root 1157 2011-05-31 daytime-dgram-rw-r--r-- 1 root root 1159 2011-05-31 daytime-stream-rw-r--r-- 1 root root 1157 2011-05-31 discard-dgram-rw-r--r-- 1 root root 1159 2011-05-31 discard-stream-rw-r--r-- 1 root root 1148 2011-05-31 echo-dgram-rw-r--r-- 1 root root 1150 2011-05-31 echo-stream-rw-r--r-- 1 root root 323 2004-09-09 eklogin-rw-r--r-- 1 root root 347 2005-09-06 ekrb5-telnet-rw-r--r-- 1 root root 326 2004-09-09 gssftp-rw-r--r-- 1 root root 310 2004-09-09 klogin-rw-r--r-- 1 root root 323 2004-09-09 krb5-telnet-rw-r--r-- 1 root root 308 2004-09-09 kshell-rw-r--r-- 1 root root 317 2004-09-09 rsync-rw-r--r-- 1 root root 1212 2011-05-31 tcpmux-server-rw-r--r-- 1 root root 1149 2011-05-31 time-dgram-rw-r--r-- 1 root root 1150 2011-05-31 time-stream[root@localhost xinetd.d]# cat krb5-telnet \# default: off\# description: The kerberized telnet server accepts normal telnet sessions, \\#       but can also use Kerberos 5 authentication.service telnet{    flags      = REUSE    socket_type   = stream        wait      = no    user      = root    server     = /usr/kerberos/sbin/telnetd    log_on_failure += USERID    disable     = yes}[root@localhost xinetd.d]# 

說明:

配置參數**,通常的配置如下:

service telnet

{

disable = no #啟用

flags = REUSE #socket可重用

socket_type = stream #連接方式為TCP

wait = no #為每個請求啟動一個進程

user = root #啟動服務的用戶為root

server = /usr/sbin/in.telnetd #要激活的進程

log_on_failure += USERID #登錄失敗時記錄登錄用戶名

}

如果要配置允許登錄的客戶端列表,加入

only_from = 192.168.0.2 #隻允許192.168.0.2登錄

如果要配置禁止登錄的客戶端列表,加入

no_access = 192.168.0.{2,3,4} #禁止192.168.0.2、192.168.0.3、192.168.0.4登錄

如果要設置開放時段,加入

access_times = 9:00-12:00 13:00-17:00 # 每天隻有這兩個時段開放服務(我們的上班時間:P)

如果你有兩個IP地址,一個是私網的IP地址如192.168.0.2,一個是公網的IP地址如218.75.74.83,如果你希望用戶隻能從私網來登錄telnet服務,那麼加入

bind = 192.168.0.2

各配置項具體的含義和語法可參考xined配置文件屬性說明(man xinetd.conf)

配置端口,修改services文件:

# vi /etc/services

找到以下兩句

telnet 23/tcp

telnet 23/udp

如果前面有#字符,就去掉它。telnet的默認端口是23,這個端口也是黑客端口掃描的主要對象,因此最好將這個端口修改掉,修改的方法很簡單,就是將23這個數字修改掉,改成大一點的數字,比如61123。註意,1024以下的端口號是internet保留的端口號,因此最好不要用,還應該註意不要與其它服務的端口沖突。

啟動服務:

service xinetd restart 

實例5:正常telnet

命令:

telnet 192.168.120.204

輸出:

[root@andy ~]# telnet 192.168.120.204Trying 192.168.120.204...Connected to 192.168.120.204 (192.168.120.204).Escape character is '^]'.  localhost (Linux release 2.6.18-274.18.1.el5 #1 SMP Thu Feb 9 12:45:44 EST 2012) (1)login: rootPassword: Login incorrect

說明:

一般情況下不允許root從遠程登錄,可以先用普通賬號登錄,然後再用su -切到root用戶。

rcp命令語法

rcp代表“remote file copy”(遠程文件拷貝)。該命令用於在計算機之間拷貝文件。rcp命令有兩種格式。第一種格式用於文件到文件的拷貝;第二種格式用於把文件或目錄拷貝到另一個目錄中。

**1.**命令格式:

rcp [參數] [源文件] [目標文件]

**2.**命令功能:

rcp命令用在遠端復制文件或目錄,如同時指定兩個以上的文件或目錄,且最後的目的地是一個已經存在的目錄,則它會把前面指定的所有文件或目錄復制到該目錄中。

**3.**命令參數:

各選項含義:

-r 遞歸地把源目錄中的所有內容拷貝到目的目錄中。要使用這個選項,目的必須是一個目錄。

-p 試圖保留源文件的修改時間和模式,忽略umask。

-k 請求rcp獲得在指定區域內的遠程主機的Kerberos 許可,而不是獲得由krb_relmofhost⑶確定的遠程主機區域內的遠程主機的Kerberos許可。

-x 為傳送的所有數據打開DES加密。這會影響響應時間和CPU利用率,但是可以提高安全性。如果在文件名中指定的路徑不是完整的路徑名,那麼這個路徑被解釋為相對遠程機上同名用戶的主目錄。如果沒有給出遠程用戶名,就使用當前用戶名。如果遠程機上的路徑包含特殊shell字符,需要用反斜線(\)、雙引號(”)或單引號(’)括起來,使所有的shell元字符都能被遠程地解釋。需要說明的是,rcp不提示輸入口令,它通過rsh命令來執行拷貝。

directory 每個文件或目錄參數既可以是遠程文件名也可以是本地文件名。遠程文件名具有如下形式:rname@rhost:path,其中rname是遠程用戶名,rhost是遠程計算機名,path是這個文件的路徑。

**4.**使用實例:

要使用 rcp,需要具備以下條件:

如果系統中有 /etc/hosts 文件,系統管理員應確保該文件包含要與之進行通信的遠程主機的項。

/etc/hosts 文件中有一行文字,其中包含每個遠程系統的以下信息:

internet_address official_name alias

例如:

9.186.10.*** webserver1.com.58.webserver

.rhosts 文件

.rhosts 文件位於遠程系統的主目錄下,其中包含本地系統的名稱和本地登錄名。

例如,遠程系統的 .rhosts 文件中的項可能是:

webserver1 root

其中,webserver1 是本地系統的名稱,root 是本地登錄名。這樣,webserver1 上的 root 即可在包含 .rhosts 文件的遠程系統中來回復制文件。

配置過程:

隻對root用戶生效

\1. 在雙方root用戶根目錄下建立.rhosts文件,並將雙方的hostname加進去.在此之前應在雙方的 /etc/hosts文件中加入對方的IP和hostname

\2. 把rsh服務啟動起來,redhat默認是不啟動的。

方法:用執行ntsysv命令,在rsh選項前用空格鍵選中,確定退出。然後執行:

service xinetd restart即可。

\3. 到/etc/pam.d/目錄下,把rsh文件中的auth required /lib/security/pam_securetty.so

一行用“#”註釋掉即可。(隻有註釋掉這一行,才能用root用戶登錄)

rcp命令使用示例

將文件復制到遠程系統

要將本地系統中的文件復制到遠程系統,請使用以下命令:

rcplocal_fileremote_hostname:remote_fileEnter

註意,如果當前目錄下沒有 local_file,則除本地文件名外,還需要提供相對路徑(自當前目錄開始)或絕對路徑名(自 / 開始)。

僅當希望將 remote_hostname 上的 remote_file 放到其他目錄(遠程主目錄除外)下時,才需要為其指定完整的(絕對)路徑。

使用實例1:將當前目錄下的 test1 復制到名為 webserver1的遠程系統

命令

rcp test1 webserver1:/home/root/test3

說明:

在這種情況下,test1 被復制到遠程子目錄 test3下,名稱仍為 test1 。如果僅提供瞭遠程主機名,rcp 將把 test1 復制到遠程主目錄下,名稱仍為 test1 。

還可以在目的目錄中包含文件名。例如,將文件復制到名為 webserver1的系統中:

rcp test1 webserver1:/home/root/test3

在這種情況下,將 test1 復制到遠程目錄root 下並將其命名為 test3。

使用實例2:從遠程系統復制文件:要將遠程系統中的文件復制到本地目錄下

命令:

rcp remote_hostname:remote_file local_fileEnter

使用實例:3:將遠程系統 webserver1中的 test2復制到當前目錄:

命令:

rcp webserver1:/home/root/test2 .Enter

說明:

點 (.) 是“當前目錄”的簡寫形式。在這種情況下,遠程目錄中的 test2 被復制到當前目錄下,名稱仍為 test2 。

如果希望用新名稱復制文件,請提供目標文件名。

如果希望將 test2 復制到本地系統中的其他目錄下,請使用以下絕對或相對路徑名:

rcp webserver1:/home/root/test2 otherdir/ Enter

或者,如果希望用其他文件名將文件復制到其他目錄下:

rcp webserver1:/home/root/test2 otherdir/otherfile Enter

使用實例4:將目錄復制到遠程系統:要將本地目錄及其文件和子目錄復制到遠程系統,請同時使用 rcp 和 -r(遞歸)選項。

命令

rcp –r local_dir remote_hostname:remote_dir Enter

說明:

如果當前目錄下沒有 local_dir,則除本地目錄名外,還需要提供相對路徑名(自當前目錄開始)或絕對路徑名(自 / 頂級目錄開始)。另外,如果主目錄下沒有 remote_dir,則 remote_dir 將需要一個相對路徑(自主目錄開始)或絕對路徑(自 / 開始)。

使用實例5:

要將名為 work 的子目錄完整地復制到 webserver1遠程計算機中的主目錄下名為 products 的目錄,請鍵入以下內容:

rcp –r work webserver1:/home/root/products Enter

此命令在 webserver1:/home/root/products 下創建名為 work 的目錄及其全部內容(假定 /home/root/products 已存在於 webserver1中)。

本示例假定用戶處於包含 work 的本地目錄下。否則,必須提供該目錄的相對或絕對路徑,如 /home/root/work。

使用實例6:從遠程系統復制目錄:

要將遠程目錄及其所有文件和子目錄復制到本地目錄,請在以下語法中使用 rcp 和 -r(遞歸)選項。

命令:

rcp –r remote_hostname:remote_dir local_dir Enter

要將名為 work 的遠程目錄復制到當前目錄,請鍵入以下內容:

rcp –r webserver1:/home/root/work .Enter

點 (.) 表示當前目錄。將在此目錄下創建 work 目錄。

scp命令語法

scp是secure copy的簡寫,用於在Linux下進行遠程拷貝文件的命令,和它類似的命令有cp,不過cp隻是在本機進行拷貝不能跨服務器,而且scp傳輸是加密的。可能會稍微影響一下速度。當你服務器硬盤變為隻讀 read only system時,用scp可以幫你把文件移出來。另外,scp還非常不占資源,不會提高多少系統負荷,在這一點上,rsync就遠遠不及它瞭。雖然 rsync比scp會快一點,但當小文件眾多的情況下,rsync會導致硬盤I/O非常高,而scp基本不影響系統正常使用。

**1.**命令格式:

scp [參數] [原路徑] [目標路徑]

**2.**命令功能:

scp是 secure copy的縮寫, scp是linux系統下基於ssh登陸進行安全的遠程文件拷貝命令。linux的scp命令可以在linux服務器之間復制文件和目錄。

**3.**命令參數:

-1 強制scp命令使用協議ssh1 -2 強制scp命令使用協議ssh2 -4 強制scp命令隻使用IPv4尋址 -6 強制scp命令隻使用IPv6尋址 -B 使用批處理模式(傳輸過程中不詢問傳輸口令或短語) -C 允許壓縮。(將-C標志傳遞給ssh,從而打開壓縮功能) -p 保留原文件的修改時間,訪問時間和訪問權限。 -q 不顯示傳輸進度條。 -r 遞歸復制整個目錄。 -v 詳細方式顯示輸出。scp和ssh(1)會顯示出整個過程的調試信息。這些信息用於調試連接,驗證和配置問題。  -c cipher 以cipher將數據傳輸進行加密,這個選項將直接傳遞給ssh。  -F ssh_config 指定一個替代的ssh配置文件,此參數直接傳遞給ssh。 -i identity_file 從指定文件中讀取傳輸時使用的密鑰文件,此參數直接傳遞給ssh。  -l limit 限定用戶所能使用的帶寬,以Kbit/s為單位。   -o ssh_option 如果習慣於使用ssh_config(5)中的參數傳遞方式,  -P port 註意是大寫的P, port是指定數據傳輸用到的端口號  -S program 指定加密傳輸時所使用的程序。此程序必須能夠理解ssh(1)的選項。

scp命令使用示例

scp命令的實際應用概述:

從本地服務器復制到遠程服務器

(1) 復制文件:

命令格式:

scp local_file remote_username@remote_ip:remote_folder

或者

scp local_file remote_username@remote_ip:remote_file

或者

scp local_file remote_ip:remote_folder

或者

scp local_file remote_ip:remote_file

第1,2個指定瞭用戶名,命令執行後需要輸入用戶密碼,第1個僅指定瞭遠程的目錄,文件名字不變,第2個指定瞭文件名

第3,4個沒有指定用戶名,命令執行後需要輸入用戶名和密碼,第3個僅指定瞭遠程的目錄,文件名字不變,第4個指定瞭文件名

(2) 復制目錄:

命令格式:

scp -r local_folder remote_username@remote_ip:remote_folder

或者

scp -r local_folder remote_ip:remote_folder

第1個指定瞭用戶名,命令執行後需要輸入用戶密碼;

第2個沒有指定用戶名,命令執行後需要輸入用戶名和密碼;

從遠程服務器復制到本地服務器

從遠程復制到本地的scp命令與上面的命令雷同,隻要將從本地復制到遠程的命令後面2個參數互換順序就行瞭。

**實例1:**從遠處復制文件到本地目錄

命令:

scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/

輸出:

[root@localhost ~]# cd /opt/soft/[root@localhost soft]# ll總計 80072drwxr-xr-x 12 root root   4096 09-21 18:40 fms3.5drwxr-xr-x 3 root root   4096 09-21 17:58 fms4.5drwxr-xr-x 10 root root   4096 10-30 17:15 jdk1.6.0_16drwxr-xr-x 10 root root   4096 09-17 19:27 jdk1.6.0_16.bak-rwxr-xr-x 1 root root 81871260 2009-12-21 jdk-6u16-linux-x64.bindrwxrwxrwx 2 root root   4096 09-21 01:16 mysqldrwxr-xr-x 3 root root   4096 09-21 18:40 setup_filedrwxr-xr-x 9 root root   4096 09-17 19:23 tomcat6.0.32drwxr-xr-x 9 root root   4096 2012-08-14 tomcat_7.0[root@localhost soft]# scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/root@192.168.120.204's password: nginx-0.5.38.tar.gz                                        100% 479KB 478.7KB/s  00:00  [root@localhost soft]# ll總計 80556drwxr-xr-x 12 root root   4096 09-21 18:40 fms3.5drwxr-xr-x 3 root root   4096 09-21 17:58 fms4.5drwxr-xr-x 10 root root   4096 10-30 17:15 jdk1.6.0_16drwxr-xr-x 10 root root   4096 09-17 19:27 jdk1.6.0_16.bak-rwxr-xr-x 1 root root 81871260 2009-12-21 jdk-6u16-linux-x64.bindrwxrwxrwx 2 root root   4096 09-21 01:16 mysql-rw-r--r-- 1 root root  490220 03-15 09:11 nginx-0.5.38.tar.gzdrwxr-xr-x 3 root root   4096 09-21 18:40 setup_filedrwxr-xr-x 9 root root   4096 09-17 19:23 tomcat6.0.32drwxr-xr-x 9 root root   4096 2012-08-14 tomcat_7.0[root@localhost soft]# 

說明:

從192.168.120.204機器上的/opt/soft/的目錄中下載nginx-0.5.38.tar.gz 文件到本地/opt/soft/目錄中

**實例2:**從遠處復制到本地

命令:

scp -r root@192.168.120.204:/opt/soft/mongodb /opt/soft/

輸出:

[root@localhost soft]# ll總計 80556drwxr-xr-x 12 root root   4096 09-21 18:40 fms3.5drwxr-xr-x 3 root root   4096 09-21 17:58 fms4.5drwxr-xr-x 10 root root   4096 10-30 17:15 jdk1.6.0_16drwxr-xr-x 10 root root   4096 09-17 19:27 jdk1.6.0_16.bak-rwxr-xr-x 1 root root 81871260 2009-12-21 jdk-6u16-linux-x64.bindrwxrwxrwx 2 root root   4096 09-21 01:16 mysql-rw-r--r-- 1 root root  490220 03-15 09:11 nginx-0.5.38.tar.gzdrwxr-xr-x 3 root root   4096 09-21 18:40 setup_filedrwxr-xr-x 9 root root   4096 09-17 19:23 tomcat6.0.32drwxr-xr-x 9 root root   4096 2012-08-14 tomcat_7.0[root@localhost soft]# scp -r root@192.168.120.204:/opt/soft/mongodb /opt/soft/root@192.168.120.204's password: mongodb-linux-i686-static-1.8.5.tgz                                100%  28MB 28.3MB/s  00:01  README                                              100% 731   0.7KB/s  00:00  THIRD-PARTY-NOTICES                                        100% 7866   7.7KB/s  00:00  mongorestore                                           100% 7753KB  7.6MB/s  00:00  mongod                                              100% 7760KB  7.6MB/s  00:01  mongoexport                                            100% 7744KB  7.6MB/s  00:00  bsondump                                             100% 7737KB  7.6MB/s  00:00  mongofiles                                            100% 7748KB  7.6MB/s  00:01  mongostat                                             100% 7808KB  7.6MB/s  00:00  mongos                                              100% 5262KB  5.1MB/s  00:01  mongo                                               100% 3707KB  3.6MB/s  00:00  mongoimport                                            100% 7754KB  7.6MB/s  00:00  mongodump                                             100% 7773KB  7.6MB/s  00:00  GNU-AGPL-3.0                                           100%  34KB 33.7KB/s  00:00  [root@localhost soft]# ll總計 80560drwxr-xr-x 12 root root   4096 09-21 18:40 fms3.5drwxr-xr-x 3 root root   4096 09-21 17:58 fms4.5drwxr-xr-x 10 root root   4096 10-30 17:15 jdk1.6.0_16drwxr-xr-x 10 root root   4096 09-17 19:27 jdk1.6.0_16.bak-rwxr-xr-x 1 root root 81871260 2009-12-21 jdk-6u16-linux-x64.bindrwxr-xr-x 3 root root   4096 03-15 09:18 mongodbdrwxrwxrwx 2 root root   4096 09-21 01:16 mysql-rw-r--r-- 1 root root  490220 03-15 09:11 nginx-0.5.38.tar.gzdrwxr-xr-x 3 root root   4096 09-21 18:40 setup_filedrwxr-xr-x 9 root root   4096 09-17 19:23 tomcat6.0.32drwxr-xr-x 9 root root   4096 2012-08-14 tomcat_7.0[root@localhost soft]# 

說明:

從192.168.120.204機器上的/opt/soft/中下載mongodb 目錄到本地的/opt/soft/目錄來。

**實例3:**上傳本地文件到遠程機器指定目錄

命令:

scp /opt/soft/nginx-0.5.38.tar.gz root@192.168.120.204:/opt/soft/scptest

輸出:

上傳前目標機器的目標目錄:[root@localhost soft]# cd scptest/[root@localhost scptest]# ll總計 0[root@localhost scptest]# ll本地機器上傳:[root@localhost soft]# scp /opt/soft/nginx-0.5.38.tar.gz root@192.168.120.204:/opt/soft/scptestroot@192.168.120.204's password: nginx-0.5.38.tar.gz                                        100% 479KB 478.7KB/s  00:00  [root@localhost soft]# 上傳後目標機器的目標目錄:[root@localhost scptest]# ll總計 484-rw-r--r-- 1 root root 490220 03-15 09:25 nginx-0.5.38.tar.gz[root@localhost scptest]#

說明:

復制本地opt/soft/目錄下的文件nginx-0.5.38.tar.gz 到遠程機器192.168.120.204的opt/soft/scptest目錄

**實例4:**上傳本地目錄到遠程機器指定目錄

命令:

scp -r /opt/soft/mongodb root@192.168.120.204:/opt/soft/scptest

輸出:

上傳前目標機器的目標目錄:[root@localhost ~]# cd /opt/soft/scptest/[root@localhost scptest]# ll總計 484-rw-r--r-- 1 root root 490220 03-15 09:25 nginx-0.5.38.tar.gz[root@localhost scptest]# 本地機器上傳:[root@localhost ~]# scp -r /opt/soft/mongodb root@192.168.120.204:/opt/soft/scptestroot@192.168.120.204's password: mongodb-linux-i686-static-1.8.5.tgz                                100%  28MB 28.3MB/s  00:01  README                                              100% 731   0.7KB/s  00:00  THIRD-PARTY-NOTICES                                        100% 7866   7.7KB/s  00:00  mongorestore                                           100% 7753KB  7.6MB/s  00:00  mongod                                              100% 7760KB  7.6MB/s  00:01  mongoexport                                            100% 7744KB  7.6MB/s  00:00  bsondump                                             100% 7737KB  7.6MB/s  00:00  mongofiles                                            100% 7748KB  7.6MB/s  00:00  mongostat                                             100% 7808KB  7.6MB/s  00:01  mongos                                              100% 5262KB  5.1MB/s  00:00  mongo                                               100% 3707KB  3.6MB/s  00:00  mongoimport                                            100% 7754KB  7.6MB/s  00:01  mongodump                                             100% 7773KB  7.6MB/s  00:00  GNU-AGPL-3.0                                           100%  34KB 33.7KB/s  00:00  [root@localhost ~]# 上傳後目標機器的目標目錄:[root@localhost scptest]# ll總計 488drwxr-xr-x 3 root root  4096 03-15 09:33 mongodb-rw-r--r-- 1 root root 490220 03-15 09:25 nginx-0.5.38.tar.gz[root@localhost scptest]# 

說明:

​ 上傳本地目錄 /opt/soft/mongodb到遠程機器192.168.120.204上/opt/soft/scptest的目錄中去