0%

[转]如何用Linux命令行管理网络:11个你必须知道的命令

如何用Linux命令行管理网络:11个你必须知道的命令

网络命令

无论你是要下载文件、诊断网络问题、管理网络接口,还是查看网络的统计数据,都有终端命令可以来完成。这篇文章收集了久经考验靠谱的命令,也收集了几个比较新的命令。

多数命令都可以在图形桌面执行,即使是没什么终端使用经验的Linux用户也会常常执行命令来使用ping或是其它的网络诊断工具。

curl & wget

使用curlwget命令,不用离开终端就可以下载文件。如你用curl,键入curl -O后面跟一个文件路径。wget则不需要任何选项。下载的文件在当前目录。

1
2
curl -O website.com/file
wget website.com/file

curl

ping

ping发送ECHO_REQUEST包到你指定的地址。这样你可以很方便确认你的电脑和Internet或是一个指定的IP地址是不是通的。使用-c开关,可以指定发送ECHO_REQUEST包的个数。

1
ping -c 4 google.com

ping

tracepath & traceroute

tracepath命令和traceroute命令功能类似,但不需要root权限。并且Ubuntu预装了这个命令,traceroute命令没有预装的。tracepath追踪出到指定的目的地址的网络路径,并给出在路径上的每一跳(hop)。如果你的网络有问题或是慢了,tracepath可以查出网络在哪里断了或是慢了。

1
tracepath example.com

tracepath

mtr

mtr命令把ping命令和tracepath命令合成了一个。mtr会持续发包,并显示每一跳ping所用的时间。也会显示过程中的任何问题,在下面的示例中,可以看到在第6跳丢了超过20%的包。

1
mtr howtogeek.com

mtr

键入q或是CTRL + C来退出命令。

host

host命令用来做DNS查询。如果命令参数是域名,命令会输出关联的IP;如果命令参数是IP,命令则输出关联的域名。

1
2
host howtogeek.com
host 208.43.115.82

host

whois

whois命令输出指定站点的whois记录,可以查看到更多如谁注册和持有这个站点这样的信息。

1
whois example.com

whois

ifplugstatus

ifplugstatus命令可以告诉你是否有网线插到在网络接口上。这个命令Ubuntu没有预装,通过下面的命令来安装:

1
sudo apt-get install ifplugd

这个命令可以查看所有网络接口的状态,或是指定网络接口的状态:

1
2
ifplugstatus
ifplugstatus eth0

ifplugstatus

命令输出『Link beat detected』(检测到连接心跳)表示有网线插着,如没有则会输出『unplugged』(未插入)。

ifconfig

ifconfig用于输出网络接口配置、调优和Debug的各种选项。可以快捷地查看IP地址和其它网络接口的信息。键入ifconfig查看所有启用的网络接口的状态,包括它们的名字。可以指定网络接口的名字来只显示这一个接口的信息。

1
2
ifconfig
ifconfig eth0

ifconfig

ifdown & ifup

ifdownifup命令和运行ifconfig upifconfig down的功能一样。给定网络接口的名字可以只禁用或启用这一个接口。需要root权限,所以在Ubuntu上需要使用sudo来运行。

1
2
sudo ifdown eth0
sudo ifup eth0

ifdown & ifup

Linux桌面系统上运行这2个命令,很可能会输出出错信息。Linux桌面通过使用网络管理器(NetworkManager)来管理你的网络接口。不过在没有安装网络管理器的服务器版上,这2个命令仍然可用。

如果确实要在命令行上配置网络管理器,用nmcli命令。

dhclient

dhclient命令可以释放你的电脑的IP地址并从DHCP服务器上获得一个新的。需要root权限,所以在Ubuntu上需要sudo。无选项运行命令获取新IP,或指定-r开关来释放当前的IP地址。

1
2
sudo dhclient -r
sudo dhclient

dhclient

netstat

netstat命令可以显示网络接口的很多统计信息,包括打开的socket和路由表。无选项运行命令显示打开的socket

netstat

这条命令还有很多功能。比如,netstat -p命令可以显示打开的socket对应的程序。

netstat -p

netstat -s则显示所有端口的详细统计信息。

netstat -s

原文

https://github.com/oldratlee/translations/blob/master/how-to-work-with-network-from-linux-terminal/README.md