如何用Linux命令行管理网络:11个你必须知道的命令
无论你是要下载文件、诊断网络问题、管理网络接口,还是查看网络的统计数据,都有终端命令可以来完成。这篇文章收集了久经考验靠谱的命令,也收集了几个比较新的命令。
多数命令都可以在图形桌面执行,即使是没什么终端使用经验的Linux用户也会常常执行命令来使用ping或是其它的网络诊断工具。
curl & wget
使用 curl或 wget命令,不用离开终端就可以下载文件。如你用curl,键入 curl -O后面跟一个文件路径。 wget则不需要任何选项。下载的文件在当前目录。
curl -O website.com/file wget website.com/file
ping
ping发送ECHO_REQUEST包到你指定的地址。这样你可以很方便确认你的电脑和Internet或是一个指定的IP地址是不是通的。使用 -c 开关,可以指定发送ECHO_REQUEST包的个数。
ping -c 4 google.com
tracepath & traceroute
tracepath命令和 traceroute命令功能类似,但不需要root权限。并且Ubuntu预装了这个命令,traceroute命令没有预装的。tracepath追踪出到指定的目的地址的网络路径,并给出在路径上的每一跳(hop)。如果你的网络有问题或是慢了,tracepath可以查出网络在哪里断了或是慢了。
tracepath example.com
mtr
mtr命令把ping命令和tracepath命令合成了一个。mtr会持续发包,并显示每一跳ping所用的时间。也会显示过程中的任何问题,在下面的示例中,可以看到在第6跳丢了超过20%的包。
mtr howtogeek.com
键入q或是CTRL + C来退出命令。
host
host命令用来做DNS查询。如果命令参数是域名,命令会输出关联的IP;如果命令参数是IP,命令则输出关联的域名。
host howtogeek.com host 208.43.115.82
whois
whois命令输出指定站点的whois记录,可以查看到更多如谁注册和持有这个站点这样的信息。
whois example.com
ifplugstatus
ifplugstatus命令可以告诉你是否有网线插到在网络接口上。这个命令Ubuntu没有预装,通过下面的命令来安装:
sudo apt-get install ifplugd
这个命令可以查看所有网络接口的状态,或是指定网络接口的状态:
ifplugstatus ifplugstatus eth0
命令输出『Link beat detected』(检测到连接心跳)表示有网线插着,如没有则会输出『unplugged』(未插入)。
ifconfig
ifconfig用于输出网络接口配置、调优和debug的各种选项。可以快捷地查看IP地址和其它网络接口的信息。键入 ifconfig查看所有启用的网络接口的状态,包括它们的名字。可以指定网络接口的名字来只显示这一个接口的信息。
ifconfig ifconfig eth0
ifdown & ifup
ifdown和 ifup命令和运行 ifconfig up, ifconfig down的功能一样。给定网络接口的名字可以只禁用或启用这一个接口。需要root权限,所以在Ubuntu上需要使用sudo来运行。
sudo ifdown eth0 sudo ifup eth0
在Linux桌面系统上运行这2个命令,很可能会输出出错信息。Linux桌面通过使用网络管理器(NetworkManager)来管理你的网络接口。不过在没有安装网络管理器的服务器版上,这2个命令仍然可用。
如果确实要在命令行上配置网络管理器,用 nmcli命令。
dhclient
dhclient命令可以释放你的电脑的IP地址并从DHCP服务器上获得一个新的。需要root权限,所以在Ubuntu上需要sudo。无选项运行命令获取新IP,或指定 -r 开关来释放当前的IP地址。
sudo dhclient -r sudo dhclient
netstat
netstat命令可以显示网络接口的很多统计信息,包括打开的socket和路由表。无选项运行命令显示打开的socket。
这条命令还有很多功能。比如, netstat -p命令可以显示打开的socket对应的程序。
netstat -s则显示所有端口的详细统计信息。