自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux基礎命令介紹六:網(wǎng)絡

系統(tǒng) Linux
本文將講述網(wǎng)絡相關命令,作者假定讀者具備TCP/IP協(xié)議棧的基礎知識。對于相關命令及其輸出只介紹它的基本的使用方法和大概的描述,具體協(xié)議將不作詳細解釋。

本文將講述網(wǎng)絡相關命令,作者假定讀者具備TCP/IP協(xié)議棧的基礎知識。對于相關命令及其輸出只介紹它的基本的使用方法和大概的描述,具體協(xié)議將不作詳細解釋。

[[178496]]

如今網(wǎng)絡無疑是很重要的,linux系統(tǒng)中提供了豐富的網(wǎng)絡測試與管理命令。我們來一起看看它們。

1、ping 發(fā)送TCMP回顯請求報文,并等待返回TCMP回顯應答。

  1. ping [OPTIONS]... destination 

這里的目標destination可以是目的IP地址或者域名/主機名

選項-c指定發(fā)送請求報文的次數(shù),當ping沒有任何選項時,在linux中默認將一直發(fā)送請求報文直到手動終止。

  1. [root@centos7 ~]# ping -c 3 www.baidu.com 
  2. PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data. 
  3. 64 bytes from 61.135.169.121: icmp_seq=1 ttl=52 time=1.35 ms 
  4. 64 bytes from 61.135.169.121: icmp_seq=2 ttl=52 time=1.32 ms 
  5. 64 bytes from 61.135.169.121: icmp_seq=3 ttl=52 time=1.22 ms 
  6.  
  7. --- www.a.shifen.com ping statistics --- 
  8. 3 packets transmitted, 3 received, 0% packet loss, time 2003ms 
  9. rtt min/avg/max/mdev = 1.225/1.303/1.359/0.064 ms  

首先,ping程序會向域名服務器(DNS)發(fā)送請求,解析域名www.baidu.com的IP地址。DNS返回域名的一個別名www.a.shifen.com以及對應的IP地址61.135.169.121。之后ping程序開始向這個地址發(fā)送請求報文,每1s發(fā)送一個,ping收到TCMP回顯應答并將結(jié)果顯示在終端上,包括ICMP序列號(icmp_seq),生存時間(ttl)和數(shù)據(jù)包往返時間(time)。最后,給出匯總信息,包括報文總收發(fā)情況,總時間,往返時間最小值、平均值、最大值、平均偏差(越大說明網(wǎng)絡越不穩(wěn)定)。

  1. [root@centos7 ~]# ping www.a.com 
  2. ping: unknown host www.a.com  

當目的域名無法解析出IP地址時,會報未知主機的錯

  1. [root@centos7 ~]# ping 192.168.0.1 
  2. PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 
  3. ^C                           #這里按CTRL+C鍵手動終止了進程 
  4. --- 192.168.0.1 ping statistics --- 
  5. 6 packets transmitted, 0 received, 100% packet loss, time 4999ms  

當目的IP地址沒有路由時不會收到任何ICMP回顯報文

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

當有目的IP的路由但無法達到時顯示目標不可達錯誤(Destination Host Unreachable)。

ICMP回顯應答還包括超時(request time out)等其他類型。

2、hostname顯示或設置系統(tǒng)主機名

  1. hostname [OPTIONS]... [NAME

直接執(zhí)行命令hostname時將顯示主機名:

  1. [root@centos7 temp]# hostname 
  2. centos7 
  3. [root@centos7 temp]#  

這個主機名是系統(tǒng)的gethostname(2)函數(shù)返回的。

可以通過執(zhí)行命令hostname NAME來臨時改變主機名:

  1. [root@centos7 temp]# hostname NAME 
  2. [root@centos7 temp]# hostname 
  3. NAME  

這個臨時修改實際上是修改了linux kernel中一個同為hostname的內(nèi)核參數(shù),它保存在/proc/sys/kernel/hostname中。如果需要永久修改則需要修改配置文件/etc/sysconfig/network,centos7中需要修改/etc/hostname。需要注意的是,如果配置文件中的主機名是localhost或localhost.localdomain時,系統(tǒng)會取得網(wǎng)絡接口的IP地址,并用這個地址找出/etc/hosts文件中對應的主機名,然后將其設置成最終的hostname。

3、host DNS查詢 

  1. host name 

host命令通過配置文件/etc/resolv.conf中指定的DNS服務器查詢name的IP地址:

  1. [root@centos7 temp]# host www.baidu.com 
  2. www.baidu.com is an alias for www.a.shifen.com. 
  3. www.a.shifen.com has address 61.135.169.121 
  4. www.a.shifen.com has address 61.135.169.125  

4、dig DNS查詢

dig和host命令的語法一致,但提供了更詳細的信息和更多的選項: 

  1. [root@centos7 ~]# dig www.baidu.com 
  2.  
  3. ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.2 <<>> www.baidu.com 
  4. ;; global options: +cmd 
  5. ;; Got answer: 
  6. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22125 
  7. ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 
  8.  
  9. ;; QUESTION SECTION
  10. ;www.baidu.com.                 IN      A 
  11.  
  12. ;; ANSWER SECTION
  13. www.baidu.com.          113     IN      CNAME   www.a.shifen.com. 
  14. www.a.shifen.com.       113     IN      A       61.135.169.125 
  15. www.a.shifen.com.       113     IN      A       61.135.169.121 
  16.  
  17. ;; Query time: 2 msec 
  18. ;; SERVER: 223.5.5.5#53(223.5.5.5) 
  19. ;; WHEN: 四 11月 10 12:31:20 CST 2016 
  20. ;; MSG SIZE  rcvd: 90 
  21.  
  22. [root@centos7 ~]#   

如只查詢域名的A記錄并以短格式顯示:

  1. [root@centos7 ~]# dig www.baidu.com A +short 
  2. www.a.shifen.com. 
  3. 61.135.169.125 
  4. 61.135.169.121 
  5. [root@centos7 ~]#   

或者:

  1. [root@centos7 ~]# dig +nocmd www.baidu.com A +noall +answer      
  2. www.baidu.com.          252     IN      CNAME   www.a.shifen.com. 
  3. www.a.shifen.com.       252     IN      A       61.135.169.125 
  4. www.a.shifen.com.       252     IN      A       61.135.169.121  

還可以用@server的方式指定DNS服務器:

  1. [root@centos7 ~]# dig +noall +answer www.baidu.com A @8.8.8.8 
  2. www.baidu.com.          21      IN      CNAME   www.a.shifen.com. 
  3. www.a.shifen.com.       263     IN      A       61.135.169.125 
  4. www.a.shifen.com.       263     IN      A       61.135.169.121  

更多的命令及選項請自行man

5、traceroute或tracepath 路由跟蹤

  1. [root@centos7 ~]# tracepath www.baidu.com 
  2.  1?: [LOCALHOST]                                         pmtu 1500 
  3.  1:  10.0.1.103                                            0.396ms  
  4.  1:  10.0.1.103                                            0.350ms  
  5.  2:  210.51.161.1                                          1.187ms asymm  3  
  6.  3:  210.51.161.1                                          8.186ms  
  7.  4:  210.51.175.81                                         1.117ms  
  8.  5:  61.148.142.61                                         8.554ms asymm 12  
  9.  6:  61.148.147.13                                         1.694ms asymm 12  
  10.  7:  123.126.8.117                                         3.934ms asymm 10  
  11.  8:  61.148.155.46                                         2.703ms asymm 10 
  12.  ....  

這里只列出部分輸出,表示跟蹤到目的地址的路由,每一跳都返回。

6、ifconfig 配置網(wǎng)絡接口

當命令沒有任何參數(shù)時顯示所有網(wǎng)絡接口的信息:

  1. [root@centos7 ~]# ifconfig 
  2. ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500 
  3.         inet 172.20.71.254  netmask 255.255.255.0  broadcast 172.20.71.255 
  4.         inet6 fe80::250:56ff:fea4:fe34  prefixlen 64  scopeid 0x20<link> 
  5.         ether 00:50:56:a4:fe:34  txqueuelen 1000  (Ethernet) 
  6.         RX packets 11996157  bytes 775368588 (739.4 MiB) 
  7.         RX errors 0  dropped 0  overruns 0  frame 0 
  8.         TX packets 12  bytes 888 (888.0 B) 
  9.         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 
  10.  
  11. ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500 
  12.         inet 10.0.1.254  netmask 255.255.255.0  broadcast 10.0.1.255 
  13.         inet6 fe80::250:56ff:fea4:a09  prefixlen 64  scopeid 0x20<link> 
  14.         ether 00:50:56:a4:0a:09  txqueuelen 1000  (Ethernet) 
  15.         RX packets 20941185  bytes 1307830447 (1.2 GiB) 
  16.         RX errors 0  dropped 0  overruns 0  frame 0 
  17.         TX packets 147552  bytes 11833605 (11.2 MiB) 
  18.         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 
  19.  
  20. lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536 
  21.         inet 127.0.0.1  netmask 255.0.0.0 
  22.         inet6 ::1  prefixlen 128  scopeid 0x10<host> 
  23.         loop  txqueuelen 1  (Local Loopback) 
  24.         RX packets 0  bytes 0 (0.0 B) 
  25.         RX errors 0  dropped 0  overruns 0  frame 0 
  26.         TX packets 0  bytes 0 (0.0 B) 
  27.         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 
  28.  
  29. [root@centos7 ~]#  

本例中顯示了兩個網(wǎng)卡ens32和ens33以及環(huán)回口lo的信息,包括mtu,ip地址,掩碼,mac地址,傳輸和接收數(shù)據(jù)量等等。

選項-s顯示精簡的信息:

  1. [root@idc-v-71253 ~]# ifconfig -s ens32 
  2. Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg 
  3. ens32     1500 11996951      0      0 0            12      0      0      0 BMRU  

如給ens33增加一個新地址10.0.1.4: 

  1. [root@centos7 ~]# ifconfig ens33:0 10.0.1.4/24 up 
  2. [root@centos7 ~]# ifconfig ens33:0    
  3. ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500 
  4.         inet 10.0.1.4  netmask 255.255.255.0  broadcast 10.0.1.255 
  5.         ether 00:50:56:a4:0a:09  txqueuelen 1000  (Ethernet) 

命令中/24表明接口地址的掩碼,up表示啟用此接口。注意如果ip地址已經(jīng)被使用,這里依然會被設置成功,但此地址被訪問時,可能會有沖突。

停用某接口:

  1. [root@centos7 ~]# ifconfig ens33:0 down 

如果需要永久增加或修改當前接口的地址,最好直接編輯網(wǎng)卡配置文件/etc/sysconfig/network-scripts/ifcfg-ens33(其他系統(tǒng)換成相應文件)中IPADDR字段,然后重啟網(wǎng)絡systemctl restart network或service network restart生效。

7、arp和arping

命令arp顯示系統(tǒng)的arp緩存,命令arping給鄰居主機發(fā)送ARP請求。

  1. [root@idc-v-71253 ~]# arp -a 
  2. ? (10.0.1.1) at 68:8f:84:01:f1:ff [ether] on ens33 
  3. ? (10.0.1.102) at 00:50:56:a4:18:9a [ether] on ens33 
  4. ? (10.0.1.254) at 00:50:56:a4:a9:16 [ether] on ens33 
  5. ? (10.0.1.10) at 00:50:56:a4:d2:e4 [ether] on ens33 
  6. ? (10.0.1.104) at 00:50:56:a4:37:a7 [ether] on ens33  

?表示未知域名,最后的網(wǎng)卡名表示arp表項對應的網(wǎng)絡接口

如發(fā)現(xiàn)某地址不穩(wěn)定,可以使用arping測試該地址是否為MAC地址沖突:

  1. [root@centos7 ~]# arping 10.0.1.252 -I ens33 
  2. ARPING 10.0.1.252 from 10.0.1.254 ens33 
  3. Unicast reply from 10.0.1.252 [00:50:56:A4:65:71]  0.843ms 
  4. Unicast reply from 10.0.1.252 [00:50:56:A4:0A:09]  1.034ms  

這里兩條返回信息中的MAC地址不同,說明有兩塊網(wǎng)卡配置了相同的IP地址。選項-I指定發(fā)送arp請求的網(wǎng)絡接口。

如果剛剛更改了網(wǎng)卡的IP地址,但上游設備(如交換機)的arp表項還是老的,可以使用arping來強制刷新:

  1. [root@centos7 ~]# arping -c3 -I ens33 -s 10.0.1.254 10.0.1.1 
  2. ARPING 10.0.1.1 from 10.0.1.254 ens33 
  3. Unicast reply from 10.0.1.1 [68:8F:84:01:F1:FF]  19.466ms 
  4. Unicast reply from 10.0.1.1 [68:8F:84:01:F1:FF]  2.358ms 
  5. Unicast reply from 10.0.1.1 [68:8F:84:01:F1:FF]  24.305ms 
  6. Sent 3 probes (1 broadcast(s)) 
  7. Received 3 response(s)  

-c指定發(fā)送arp請求次數(shù),-s指定源地址,最后的IP表示發(fā)送目標(這里是網(wǎng)關地址)。

8、route 顯示或更改路由表

  1. [root@centos7 ~]# route 
  2. Kernel IP routing table 
  3. Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 
  4. 10.0.1.0        0.0.0.0         255.255.255.0   U     0      0        0 ens33 
  5. link-local      0.0.0.0         255.255.0.0     U     1002   0        0 ens32 
  6. link-local      0.0.0.0         255.255.0.0     U     1003   0        0 ens33 
  7. 172.20.71.0     0.0.0.0         255.255.255.0   U     0      0        0 ens32 
  8. 192.168.78.0    10.0.1.104      255.255.255.0   UG    0      0        0 ens33  

其中Destination表示目的網(wǎng)段或目標主機;Gateway表示網(wǎng)關地址;Genmask表示目的網(wǎng)段的掩碼;Flags表示路由標志:U表示路由是啟用(up)的、G表示網(wǎng)關;Metric表示目標距離,通常用跳數(shù)表示;Ref表示路由的引用數(shù);Use表示路由查找計數(shù);Iface表示此條路由的出口。

選項-n表示用數(shù)字形式顯示目的網(wǎng)段

選項add和del表示添加或刪除一條路由。

選項-net和netmask表示指定目的網(wǎng)段及掩碼。

選項gw表示指定網(wǎng)關。

選項dev IF表示指定出口網(wǎng)卡

如增加一條到192.56.76.x的路由,使它的出口為ens32: 

  1. route add -net 192.56.76.0 netmask 255.255.255.0 dev ens32 

如增加一條默認路由,指明它的網(wǎng)關為10.0.1.1

  1. route add default gw 10.0.1.1 

如增加一條到172.20.70.0的路由,網(wǎng)關為10.0.1.2

  1. route add -net 172.20.70.0/24 gw 10.0.1.2 

如刪除默認路由

  1. route del default 

9、telnet 提供遠程登錄功能

由于telnet協(xié)議使用明文傳輸,在要求安全登錄的環(huán)境中并不適用?,F(xiàn)在通常用它來進行網(wǎng)絡服務的端口測試:

  1. [root@centos7 ~]# telnet 10.0.1.251 80 
  2. Trying 10.0.1.251... 
  3. Connected to 10.0.1.251. 
  4. Escape character is '^]'
  5. ^]            #這里按了CTRL+],也可以按CTRL+C強行退出。 
  6. telnet> quit 
  7. Connection closed.  

這里對方的80端口是開啟并允許通信的。當對端端口沒有開啟時:

  1. [root@centos7 ~]# telnet 10.0.1.251 81 
  2. Trying 10.0.1.251... 
  3. telnet: connect to address 10.0.1.251: No route to host  

當對端拒絕連接時:

  1. [root@centos7 ~]# telnet 10.0.1.251 8085 
  2. Trying 10.0.1.251... 
  3. telnet: connect to address 10.0.1.251: Connection refused  

10、ssh 遠程登錄程序

  1. ssh [OPTIONS]... [user@]hostname [command] 

ssh的全稱是Secure Shell,在不安全的網(wǎng)絡主機間提供安全加密的通信,旨在代替其他遠程登錄協(xié)議。

  1. [root@centos7 ~]# ssh 10.0.1.253 
  2. The authenticity of host '10.0.1.253 (10.0.1.253)' can't be established. 
  3. ECDSA key fingerprint is 96:bd:a3:a7:87:09:1b:53:44:4c:9b:b9:5f:b2:97:89. 
  4. Are you sure you want to continue connecting (yes/no)? yes   #這里輸入yes 
  5. Warning: Permanently added '10.0.1.253' (ECDSA) to the list of known hosts. 
  6. root@10.0.1.253's password:           #這里輸入密碼 
  7. Last login: Fri Nov 11 09:04:01 2016 from 192.168.78.137 
  8. [root@idc-v-71253 ~]#                 #已登錄  

當命令ssh后直接跟主機IP時表示使用默認用戶root登錄,如果是首次登錄,需要確認添加該主機的認證key,當輸入yes后,即會在本機/root/.ssh/known_hosts中增加一條該主機的記錄,下一次登錄時就不用再次確認了。然后需要輸入用戶密碼,通過驗證之后,我們就獲得了目的主機的一個shell,我們就可以在這個shell中執(zhí)行命令了。

在新shell中輸入exit即可退回到原shell。

如果需要頻繁登錄某主機,但不想每次都輸入密碼,可以設置免密碼登錄:

  1. [root@centos7 ~]# ssh-keygen -t rsa        
  2. Generating public/private rsa key pair. 
  3. Enter file in which to save the key (/root/.ssh/id_rsa): #回車 
  4. Enter passphrase (empty for no passphrase): #回車 
  5. Enter same passphrase again: #回車 
  6. Your identification has been saved in /root/.ssh/id_rsa. #私鑰 
  7. Your public key has been saved in /root/.ssh/id_rsa.pub. #公鑰 
  8. The key fingerprint is
  9. be:c3:d0:02:50:35:35:fe:60:d6:2f:26:96:f0:e1:e6 root@centos7 
  10. The key's randomart image is
  11. +--[ RSA 2048]----+ 
  12. |   ...o.o        | 
  13. |  .    o o       | 
  14. |   .  . * .      | 
  15. |    .  * = .     | 
  16. |     . .S + .    | 
  17. |      o=.o .     | 
  18. |       +E        | 
  19. |        o.       | 
  20. |        ..       | 
  21. +-----------------+ 
  22. [root@centos7 ~]#  
  23. [root@centos7 ~]# ssh-copy-id 10.0.1.253 
  24. /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed 
  25. /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys 
  26. root@10.0.1.253's password:  
  27.  
  28. Number of key(s) added: 1 
  29.  
  30. Now try logging into the machine, with:   "ssh '10.0.1.253'" 
  31. and check to make sure that only the key(s) you wanted were added. 
  32.  
  33. [root@centos7 ~]#   

其中命令ssh-keygen用來生成公鑰私鑰,選項-t指明密鑰類型。之后使用命令ssh-copy-id將公鑰發(fā)送至目標主機,這里需要輸入目標主機用戶密碼。然后就可以免密碼登錄了:

  1. [root@centos7 ~]# ssh 10.0.1.253 
  2. Last login: Fri Nov 11 11:08:37 2016 from 10.0.1.254 
  3. [root@idc-v-71253 ~]#   

還可以通過ssh遠程執(zhí)行命令:

  1. [root@centos7 ~]# ssh 10.0.1.252 "hostname" 
  2. root@10.0.1.252's password:  #輸入密碼 
  3. idc-v-71252                  #顯示命令結(jié)果 
  4. [root@centos7 ~]#            #并不登錄 

或者手動將公鑰拷貝至目標主機:

  1. [root@centos7 ~]# cat /root/.ssh/id_rsa.pub | ssh 10.0.1.252 "cat - >> /root/.ssh/authorized_keys" 
  2. root@10.0.1.252's password:          #輸入密碼 
  3. [root@centos7 ~]# ssh 10.0.1.252     #免密登錄 
  4. Last login: Thu Nov 10 14:42:11 2016 from 192.168.78.135 
  5. [root@idc-v-71252 ~]#   

選項-p為登錄指定端口:

  1. [root@centos7 temp]# ssh -p22 10.0.1.252 
  2. Last login: Fri Nov 11 11:44:31 2016 from 10.0.1.254 
  3. [root@idc-v-71252 ~]#  

端口設置在服務端配置文件/etc/ssh/sshd_config中,默認端口號為22,如更改需將#Port 22去掉注釋并將22更改為需要的端口,然后重啟sshd服務service sshd restart或systemctl restart sshd。

如果需要使用另外的用戶登錄系統(tǒng)則執(zhí)行ssh user@host

我們可以用tar命令結(jié)合ssh和管道,將本地(遠程)文件備份到遠程(本地):

  1. tar zc /home/temp | ssh user@host "tar xz"  #本地temp目錄備份到遠程 
  2. ssh user@host "tar cz /home/temp" | tar xz  #遠程temp目錄備份到本地  

選項-L [bind_address:]port:host:hostport設置本地端口轉(zhuǎn)發(fā)

  1. [root@centos7 ~]# ssh -L 2222:10.0.1.252:22 10.0.1.253 
  2. Last login: Mon Nov 14 10:34:43 2016 from 10.0.1.254 
  3. [root@idc-v-71253 ~]#    #注意如果這里exit斷開連接,則此轉(zhuǎn)發(fā)也將終止。  

此命令的意思是綁定本地端口2222,并將所有發(fā)送至此端口的數(shù)據(jù)通過中間主機10.0.1.253轉(zhuǎn)發(fā)至目標主機10.0.1.252的22端口,此時如果用ssh登錄本機的2222端口,則實際登錄的是主機10.0.1.252

  1. [root@centos7 ~]# ssh -p 2222 127.0.0.1 
  2. Last login: Mon Nov 14 10:34:56 2016 from 10.0.1.253 
  3. [root@idc-v-71252 ~]#   

這里默認綁定的是本機的環(huán)回口127.0.0.1,如綁定到其他地址,則根據(jù)語法設置bind_address。

選項-N表示不執(zhí)行命令,只設置端口轉(zhuǎn)發(fā)時有用

由于上述端口轉(zhuǎn)發(fā)命令ssh -L 2222:10.0.1.252:22 10.0.1.253會登錄到中間主機,并且退出后端口轉(zhuǎn)發(fā)也會終止,使用-N選項將不會登錄,再配合shell后臺執(zhí)行,將會是一個不錯的設置端口轉(zhuǎn)發(fā)的選擇(但要注意對中間主機需要免密碼登錄):

  1. [root@centos7 ~]# ssh -N -L 2222:10.0.1.252:22 10.0.1.253 & 
  2. [1] 12432 
  3. [root@centos7 ~]#  

命令最后的符號&表示此命令將在后臺執(zhí)行,返回的信息中[1]表示后臺命令編號,12432表示命令的PID。(關于shell后臺命令,以后的文章中會有敘述)

選項-R [bind_address:]port:host:hostport 設置遠程端口轉(zhuǎn)發(fā)

如我們在10.0.1.253上執(zhí)行:

  1. ssh -R 2222:10.0.1.252:22 10.0.1.254 

然后在10.0.1.254上登錄:

  1. [root@centos7 ~]# ssh -p 2222 localhost 
  2. Last login: Mon Nov 14 10:40:44 2016 from 10.0.1.253 
  3. [root@idc-v-71252 ~]#  

這里的意思是使遠程主機10.0.1.254(相對10.0.1.253來說)監(jiān)聽端口2222,然后將所有發(fā)送至此端口的數(shù)據(jù)轉(zhuǎn)發(fā)至目標主機10.0.1.252的端口22。之后再在10.0.1.254登錄本地(localhost)的2222端口時,實際通過中間主機10.0.1.253登錄目標主機10.0.1.252。

選項-o OPTION指定配置文件(如/etc/ssh/sshd_config)內(nèi)選項

如避免第一次登錄時輸入yes確認,可增加-o StrictHostKeyChecking=no。

11、scp 遠程復制文件

  1. scp [OPTIONS]... [[user@]host1:]file1 ... [[user@]host2:]file2 

scp命令通過ssh協(xié)議將數(shù)據(jù)加密傳輸,和ssh登錄類似,需要輸入遠程主機用戶密碼。

如將遠程主機10.0.1.253中文件/root/tcp.sh復制到本地當前目錄下: 

  1. [root@centos7 ~]# scp root@10.0.1.251:/root/a.txt ./ 
  2. root@10.0.1.251's password:  
  3. a.txt                                       100%  125     0.1KB/s   00:00     
  4. [root@centos7 ~]#   

命令會顯示傳輸狀態(tài)(傳輸百分比,大小,速度,用時)。

將本地文件復制到遠程無非是將源和目的調(diào)換位置。

選項-P指定遠端連接端口(ssh服務端口),-o ssh_option使用ssh選項。

選項-l limit傳輸限速,limit單位為Kbit/s。

和命令cp類似,選項-r表示復制目錄,-p表示保留文件權限時間等

12、netstat 打印網(wǎng)絡信息

選項-a顯示所有端口信息: 

  1. [root@centos7 ~]# netstat -a 
  2. Active Internet connections (servers and established) 
  3. Proto Recv-Q Send-Q Local Address           Foreign Address         State       
  4. tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN      
  5. tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN      
  6. tcp        0     52 10.0.1.254:ssh   192.168.78.143:49583    ESTABLISHED 
  7. tcp6       0      0 [::]:commplex-main      [::]:*                  LISTEN      
  8. tcp6       0      0 [::]:4243               [::]:*                  LISTEN      
  9. tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      
  10. tcp6       0      0 localhost:smtp          [::]:*                  LISTEN      
  11. raw6       0      0 [::]:ipv6-icmp          [::]:*                  7           
  12. raw6       0      0 [::]:ipv6-icmp          [::]:*                  7           
  13. Active UNIX domain sockets (servers and established) 
  14. Proto RefCnt Flags       Type       State         I-Node   Path 
  15. unix  2      [ ACC ]     STREAM     LISTENING     12807    /run/systemd/private 
  16. unix  2      [ ACC ]     STREAM     LISTENING     12815    /run/lvm/lvmpolld.socket 
  17. unix  2      [ ]         DGRAM                    12818    /run/systemd/shutdownd 
  18. unix  2      [ ACC ]     STREAM     LISTENING     16403    /var/run/dbus/system_bus_socket 
  19. ....  

這里只顯示部分信息

選項-t顯示TCP連接信息

選項-n顯示IP地址而不進行域名轉(zhuǎn)換

選項-p顯示PID和程序名 

  1. [root@centos7 ~]# netstat -antp 
  2. Active Internet connections (servers and established) 
  3. Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name     
  4. tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1358/sshd            
  5. tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2162/master          
  6. tcp        0     52 10.0.1.254:22           192.168.78.143:49583    ESTABLISHED 12044/sshd: root@pt  
  7. tcp6       0      0 :::5000                 :::*                    LISTEN      17222/docker-proxy   
  8. tcp6       0      0 :::4243                 :::*                    LISTEN      16983/docker         
  9. tcp6       0      0 :::22                   :::*                    LISTEN      1358/sshd            
  10. tcp6       0      0 ::1:25                  :::*                    LISTEN      2162/master          
  11. [root@centos7 ~]#   

其中Proto表示協(xié)議(包括TCP、UDP等);Recv-Q和Send-Q表示接收和發(fā)送隊列,一般都為0,如果非0則表示本地的接收或發(fā)送緩存區(qū)有數(shù)據(jù)等待處理;Local Address和Foreign Address分別表示本地地址和遠端地址;State表示連接狀態(tài),對應于TCP各種連接狀態(tài);PID/Program name表示進程號和程序名。

選項-l表示只顯示狀態(tài)為LISTEN的連接 

  1. [root@centos7 ~]# netstat -ntl 
  2. Active Internet connections (only servers) 
  3. Proto Recv-Q Send-Q Local Address           Foreign Address         State       
  4. tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      
  5. tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      
  6. tcp6       0      0 :::5000                 :::*                    LISTEN      
  7. tcp6       0      0 :::4243                 :::*                    LISTEN      
  8. tcp6       0      0 :::22                   :::*                    LISTEN      
  9. tcp6       0      0 ::1:25                  :::*                    LISTEN      
  10. [root@centos7 ~]#  

選項-u表示顯示UDP連接信息

選項-r表示顯示路由信息 

  1. [root@centos7 ~]# netstat -r 
  2. Kernel IP routing table 
  3. Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface 
  4. default         10.0.1.103      0.0.0.0         UG        0 0          0 ens33 
  5. 10.0.1.0        0.0.0.0         255.255.255.0   U         0 0          0 ens33 
  6. 172.20.71.0     0.0.0.0         255.255.255.0   U         0 0          0 ens32 
  7. 192.168.78.0    10.0.1.104      255.255.255.0   UG        0 0          0 ens33  

選項-i顯示接口信息 

  1. [root@centos7 ~]# netstat -i 
  2. Kernel Interface table 
  3. Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg 
  4. ens32     1500 13196107      0     77 0          3246      0      0      0 BMRU 
  5. ens33     1500 25312388      0     88 0       2516050      0      0      0 BMRU 
  6. lo       65536  2503589      0      0 0       2503589      0      0      0 LRU  

13、tcpdump 網(wǎng)絡抓包工具

命令tcpdump捕獲某網(wǎng)絡接口符合表達式expression的數(shù)據(jù)包,并打印出數(shù)據(jù)包內(nèi)容的描述信息。

選項-i指定網(wǎng)卡: 

  1. [root@idc-v-71253 ~]# tcpdump -i ens33 
  2. tcpdump: verbose output suppressed, use -v or -vv for full protocol decode 
  3. listening on ens33, link-type EN10MB (Ethernet), capture size 65535 bytes 
  4. 15:41:59.121948 IP 10.0.1.108.3693 > 239.100.1.1.websm: UDP, length 58 
  5. 15:41:59.122191 IP 10.0.1.109.35673 > 239.100.1.1.websm: UDP, length 57 
  6. 15:41:59.128282 IP 10.0.1.253.ssh > 192.168.78.143.51694: Flags [P.], seq 749565300:749565496, ack 3522345564, win 255, length 196 
  7. 15:41:59.134127 IP 192.168.78.143.51694 > 10.0.1.253.ssh: Flags [.], ack 196, win 3977, length 0 
  8. 15:41:59.140319 ARP, Request who-has 10.0.1.31 tell 10.0.1.102, length 46 
  9. 15:41:59.168328 ARP, Request who-has 10.0.1.37 tell 10.0.1.102, length 46 
  10. 15:41:59.262235 ARP, Request who-has 192.168.10.150 tell 192.168.10.151, length 46 
  11. 15:41:59.622090 IP 10.0.1.108.3693 > 239.100.1.1.websm: UDP, length 58 
  12. 15:41:59.622178 IP 10.0.1.109.35673 > 239.100.1.1.websm: UDP, length 57 
  13. ....  

啟動命令之后顯示出可以使用-v或-vv顯示更詳細的信息,開始從ens33捕獲數(shù)據(jù)包。輸出顯示出各個發(fā)送或接收數(shù)據(jù)包包頭信息(包括ARP、IP、TCP、UDP等等協(xié)議)。此命令并未指定expression,所以默認將捕獲所有數(shù)據(jù)包。

如果需要將數(shù)據(jù)包捕獲然后通過其他程序(如wireshark)分析,可以使用選項-w file將數(shù)據(jù)寫入文件,同時還需要使用選項-s 0指定能夠捕獲的數(shù)據(jù)包大小為65535字節(jié),以避免數(shù)據(jù)包被截斷而無法被分析。

真實環(huán)境中,流經(jīng)網(wǎng)卡的數(shù)據(jù)包量是巨大的??梢允褂帽磉_式來對數(shù)據(jù)包進行過濾,對于每個數(shù)據(jù)包,都要經(jīng)過表達式的過濾,只有表達式的值為true時,才會輸出。

expression中可以包含一到多個關鍵字指定的條件,可以使用and(或&&)、or(或||)、not(或!)和括號()表示各個關鍵字間的邏輯關系,可以用>、<表示比較,還可以進行計算。其中關鍵字包括:

type類型關鍵字,如host、net、port和portrange,分別表示主機、網(wǎng)段、端口號、端口段。

direction方向關鍵字,如src、dst分別表示源和目的。

proto協(xié)議關鍵字,如fddi、arp、ip、tcp、udp等分別表示各種網(wǎng)絡協(xié)議。

由于篇幅所限,下面的例子中將只描述選項和表達式所起到的作用,不再解釋輸出內(nèi)容: 

  1. tcpdump -i ens33 dst host 10.0.1.251  
  2. #監(jiān)視所有從端口ens33發(fā)送到主機10.0.1.251的數(shù)據(jù)包,主機也可以是主機名 
  3. tcpdump -i eth0 host ! 211.161.223.70 and ! 211.161.223.71 and dst port 80  
  4. #監(jiān)聽端口eth0,抓取不是來自或去到主機211.161.223.70和211.161.223.71并且目標端口為80的包 
  5. tcpdump tcp port 23 host 210.27.48.1  
  6. #獲取主機210.27.48.1接收或發(fā)出的telnet包 
  7. tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0) and src net (183.60.190 or 122.13.220)' -s0 -i eth0 -w ipdump 
  8. #抓取源或目的端口是80,且源網(wǎng)絡是(183.60.190.0/24 或者 122.13.220.0/24),并且含有數(shù)據(jù),而不是SYN,FIN以及ACK-only等不含數(shù)據(jù)的TCP數(shù)據(jù)包寫入文件ipdump 
  9. #注意這里表達式使用單引號引起來以避免其中的特殊字符被shell解析而造成語法錯誤 
  10. tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and ! src and dst net 10.0.0' 
  11. #只打印TCP的開始和結(jié)束包(SYN和FIN標記),并且源和目標網(wǎng)段均不是10.0.0.0/24 
  12. tcpdump 'gateway 10.0.1.1 and ip[2:2] > 576'  
  13. #表示抓取發(fā)送至網(wǎng)關10.0.1.1并且大于576字節(jié)的IP數(shù)據(jù)包  

網(wǎng)絡相關命令內(nèi)容較多,下一篇將繼續(xù)介紹。

責任編輯:龐桂玉 來源: segmentfault
相關推薦

2016-12-14 19:24:41

2010-03-05 13:00:46

2016-12-27 19:10:38

Linux命令啟動流程

2016-12-29 11:13:30

shellbashlinux

2016-12-27 19:29:14

Linux命令定時任務

2016-12-07 18:22:23

shelllinuxgrep

2016-12-23 12:46:41

Linux命令進程與內(nèi)存

2016-12-27 10:34:57

Linux命令軟件包管理

2016-12-23 13:07:11

shelllinuxsed

2016-12-23 10:56:34

linuxshellawk

2010-03-18 17:25:37

Linux命令

2016-11-15 15:50:22

linux基礎命令vim

2016-12-27 10:48:59

Linux命令磁盤與文件系統(tǒng)

2020-01-07 09:20:58

Linuxuseradd 命令

2011-06-02 10:28:11

網(wǎng)絡命令

2016-09-27 13:47:15

Linux網(wǎng)絡命令

2017-01-13 15:39:29

Linux進程基礎介紹

2010-06-22 17:45:34

Linux Autom

2010-06-22 09:28:31

Linux at命令

2010-03-18 16:34:33

Linux命令
點贊
收藏

51CTO技術棧公眾號