做者 | JackTian
來源 | 公衆號:傑哥的IT之旅(ID:Jake_Internet)git
前言
在平常工做中,咱們所常常使用的 Linux 服務器操做系統,不管是要查看網絡設備的信息、管理網絡接口、下載文件、調試網絡問題仍是查看網絡的統計數據,均可以在終端下用命令來完成。github
ifconfig / ip a
命令 ifconfig 與 ip a 是相似的,用於輸出網絡接口配置、調優等各類選項,可便捷的查看 IP 地址和其它網絡接口的信息以及查看全部啓用的網絡接口的狀態、名字或指定網絡接口名字來顯示一個接口的信息。ubuntu
# ip a # ifconfig # ifconfig ens32
ifdown / ifup
ifdown 和 ifup 跟命令 ifconfig down 和 ifconfig up 功能是一致的,主要用來給指定網絡接口名來操做啓用或禁用的狀態,在 Ubuntu 上須要 root 權限可以使用 sudo 來執行。服務器
# sudo ifdown eth0 # sudo ifup eth0
ping
ping 發送報文到指定的 IP 地址,可測試聯通性,使用 -c 參數,能夠指定發送報文包的個數。網絡
執行 ping 命令將使用 ICMP 傳輸協議。ssh
如能 ping 通將進行輸出要求響應的信息,ping 不通時,將顯示沒有路由或拒絕等相關性的響應信息,可根據輸出信息來解決具體的網絡狀況;curl
# ping -c 4 www.baidu.com
tracepath / traceroute
tracepath 和 traceroute 命令功能相似,不須要root權限。socket
Ubuntu 是預裝了 tracepath 命令,traceroute 命令沒有預裝。tcp
tracepath 命令:能夠追蹤出到指定目的地址的網絡路徑,並進行輸出了每一個路徑上的每一跳地址信息,當網絡出現問題或是慢了,可以使用 tracepath 命令能夠查出網絡在哪裏斷了或是慢了。ide
traceroute 命令:用來追蹤網絡數據包的路由路徑,數據包大小預設是 40Bytes。數據包從一個出發點到一個目的地,走的路由路徑可能會不太同樣,但大體上是相同的。
# tracepath www.baidu.com # traceroute www.baidu.com
mtr
mtr 命令:是把 ping 命令和 tracepath 命令合二爲一了。
mtr 會持續發包,並顯示 Host Address 和每一跳 ping 所用的時間等;
# mtr www.github.com
按鍵q或ctrl+c來進行退出。
ifplugstatus
Ubuntu 操做系統上是沒有安裝這個命令的,可經過下面的命令來安裝:
# sudo apt install ifplugd
ifplugstatus 命令:用來查看全部網絡接口的狀態,也能夠指定網絡接口;
# ifplugstatus lo: link beat detected ens32: link beat detected # ifplugstatus ens32 ens32: link beat detected
curl / wget
使用 curl 或 wget 命令,可直接在終端下載文件。
curl 需在後面加一個參數選項:-O 再跟一個文件路徑便可;
# curl -O http://www.freelogovectors.net/wp-content/uploads/2016/12/ubuntu_logo.png % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 282 100 282 0 0 156 0 0:00:01 0:00:01 --:--:-- 156 # ll | grep ubuntu_logo.png -rw-r--r-- 1 root root 282 10月 29 16:49 ubuntu_logo.png
wget 不須要任何參數選項,所下載的文件將存放置當前目錄下;
# wget http://www.freelogovectors.net/wp-content/uploads/2016/12/ubuntu_logo.png # ll | grep ubuntu_logo.png -rw-r--r-- 1 root root 95737 12月 13 2016 ubuntu_logo.png
host
host 命令:用來作 DNS 查詢。
若是命令參數是域名,命令會輸出關聯的 IP;若是命令參數是 IP,命令則會輸出關聯的域名。
# host www.sina.com # host IP Address
whois
whois 命令:用於輸出指定站點的 whois 記錄等信息。
# whois www.github.com
netstat
netstat 命令:用於顯示網絡接口的統計信息,包括打開的 socket 和 路由表。
-p:能夠顯示打開的 socket 對應的程序。
# netstat -p 激活Internet鏈接 (w/o 服務器) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 jacktian-virtual-ma:ssh 192.168.1.124:44284 ESTABLISHED 4285/sshd: root@pts 活躍的UNIX域套接字 (w/o 服務器) Proto RefCnt Flags Type State I-Node PID/Program name 路徑 unix 2 [ ] 數據報 59572 4296/systemd /run/user/0/systemd/notify unix 2 [ ] 數據報 49351 3344/systemd /run/user/1000/systemd/notify unix 3 [ ] 數據報 19222 1/init /run/systemd/notify
-s:顯示全部端口的詳細統計信息。
# netstat -s Ip: Forwarding: 2 30932 total packets received 2 with invalid headers 11 with invalid addresses 0 forwarded 0 incoming packets discarded 30911 incoming packets delivered 18611 requests sent out 22 outgoing packets dropped Icmp: 5499 ICMP messages received 3 input ICMP message failed ICMP接收歷史 destination unreachable: 141 timeout in transit: 5354 echo requests: 2 echo replies: 2 7523 ICMP messages sent 0 ICMP messages failed ICMP發出歷史 destination unreachable: 145 echo requests: 7376 echo replies: 2
例如:結合各項參數,來進行查看 22 端口的信息。
# netstat -anpt | grep 22 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 979/sshd tcp 0 36 192.168.1.142:22 192.168.1.124:44284 ESTABLISHED 4285/sshd: root@pts tcp6 0 0 :::22 :::* LISTEN 979/sshd