如何高效的用 Linux 命令行管理网络?

·  阅读 2243
如何高效的用 Linux 命令行管理网络?

本文已参与好文召集令活动,点击查看:后端、大前端双赛道投稿,2万元奖池等你挑战!

一名致力于在技术道路上的终身学习者、实践者、分享者,一位忙起来又偶尔偷懒的原创博主,一个偶尔无聊又偶尔幽默的少年。

欢迎各位掘友们微信搜索「杰哥的IT之旅」关注!

原文链接:如何高效的用 Linux 命令行管理网络?

前言

在日常工作中,我们所经常使用的 Linux 服务器操作系统,无论是要查看网络设备的信息、管理网络接口、下载文件、调试网络问题还是查看网络的统计数据,都可以在终端下用命令来完成。

一、ifconfig / ip a

命令 ifconfig 与 ip a 是类似的,用于输出网络接口配置、调优等各种选项,可便捷的查看 IP 地址和其它网络接口的信息以及查看所有启用的网络接口的状态、名字或指定网络接口名字来显示一个接口的信息。

# 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 传输协议。

如能 ping 通将进行输出要求响应的信息,ping 不通时,将显示没有路由或拒绝等相关性的响应信息,可根据输出信息来解决具体的网络情况;

# ping -c 4 www.baidu.com
复制代码

四、tracepath / traceroute

tracepath 和 traceroute 命令功能类似,不需要root权限。

Ubuntu 是预装了 tracepath 命令,traceroute 命令没有预装。

tracepath 命令:可以追踪出到指定目的地址的网络路径,并进行输出了每个路径上的每一跳地址信息,当网络出现问题或是慢了,可使用 tracepath 命令可以查出网络在哪里断了或是慢了。

traceroute 命令:用来追踪网络数据包的路由路径,数据包大小预设是 40Bytes。数据包从一个出发点到一个目的地,走的路由路径可能会不太一样,但大致上是相同的。

# tracepath www.baidu.com
# traceroute www.baidu.com
复制代码

五、mtr

mtr 命令:是把 ping 命令和 tracepath 命令合二为一了。

mtr 会持续发包,并显示 Host Address 和每一跳 ping 所用的时间等;

# mtr www.github.com
复制代码

按键qctrl+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 
复制代码

原创不易,如果你觉得这篇文章对你有点用的话,麻烦你为本文点个赞、评论或转发一下,因为这将是我输出更多优质文章的动力,感谢!

对了,掘友们记得给我点个免费的关注哟!防止你迷路下次就找不到我了。

我们下期再见!

分类:
后端
分类:
后端