如何用Linux命令行管理网络
无论你是要下载文件、诊断网络问题、管理网络接口,还是查看网络的统计数据,都有终端命令可以来完成。本文中收集了一些你必须知道的命令,帮你搞定网络难题。
网络状态查看命令(以下三个命令需要net-tools工具包)
ifconfig查看网卡基本信息 inet为ip地址 netmask为子网掩码 ether为MAC地址 lo网卡为本地换回地址127.0.0.1
mii-tool查看网卡物理链接情况
route 查看网关 -n 不解析域名(速度会更快)
更改网卡名为eth0(方便服务器端批量处理)
1 修改/etc/default/grub设置GRUB_CMDLINE_LINUX_DEFAULT= "iosdevname=0 net.ifname=0"
2 更新grub grub-mkconfig -o /boot/grub/grub.cfg
3 重启 reboot
修改网络配置
ifconfig
ifconfig <网卡>
ifup <网卡> 启用网卡 ifdown <网卡> 关掉网卡 (一般不需要设置)
route
route add default gw <网关ip> 修改默认网关
route del default gw <网关ip> 删掉默认网关
route add -host
route add -net
linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务。ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了。iproute2套件里提供了许多增强功能的命令,ip命令即是其中之一。所以我们就着重介绍IP这个命令啦~
IP
ip是iproute2软件包里面的一个强大的网络配置工具 ip命令的用法如下: ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]] 其中,OPTIONS是一些修改ip行为或者改变其输出的选项。所有的选项都是以-字符开头,分为长、短两种形式。目前,ip支持如下选项: -V,-Version 打印ip的版本并退出。 -s,-stats,-statistics 输出更为详尽的信息。如果这个选项出现两次或者多次,输出的信息将更为详尽。 -f,-family 这个选项后面接协议种类,包括:inet、inet6或者link,强调使用的协议种类。如果没有足够的信息告诉ip使用的协议种类,ip就会使用默认值inet或者any。link比较特殊,它表示不涉及任何网络协议。 -4 是-family inet的简写。 -6 是-family inet6的简写。 -0 是-family link的简写。 -o,-oneline 对每行记录都使用单行输出,回行用字符代替。如果你需要使用wc、grep等工具处理ip的输出,会用到这个选项。 -r,-resolve 查询域名解析系统,用获得的主机名代替主机IP地址。 OBJECT是你要管理或者获取信息的对象。目前ip认识的对象包括: link 网络设备 address 一个设备的协议(IP或者IPV6)地址 neighbour ARP或者NDISC缓冲区条目 route 路由表条目 rule 路由策略数据库中的规则 maddress 多播地址 mroute 多播路由缓冲区条目 tunnel IP上的通道 另外,所有的对象名都可以简写,例如:address可以简写为addr,甚至是a。 COMMAND设置针对指定对象执行的操作,它和对象的类型有关。一般情况下,ip支持对象的增加(add)、删除(delete)和展示(show或者list)。有些对象不支持所有这些操作,或者有其它的一些命令。对于所有的对象,用户可以使用help命令获得帮助。这个命令会列出这个对象支持的命令和参数的语法。如果没有指定对象的操作命令,ip会使用默认的命令。一般情况下,默认命令是list,如果对象不能列出,就会执行help命令。 ARGUMENTS是命令的一些参数,它们倚赖于对象和命令。ip支持两种类型的参数:flag和parameter。flag由一个关键词组成;parameter由一个关键词加一个数值组成。为了方便,每个命令都有一个可以忽略的默认参数。例如,参数dev是ip link命令的默认参数,因此ip link ls eth0等于ip link ls dev eth0。我们将在后面的章节详细介绍每个命令的使用,命令的默认参数将使用default标出。
实用例子
[root@linux ~]# ip link set dev eth0 up #up/down 起动/关闭设备 [root@linux ~]# ip link set dev eth0 txqueuelen 100 #改变设备传输队列的长度 [root@linux ~]# ip link set dev eth0 mtu 1500 #改变网络设备MTU(最大传输单元)的值 [root@linux ~]# ip link set dev eth0 address 00:01:4f:00:15:f1 #修改网络设备的MAC地址 [root@linux ~]# ip -s -s link ls eth0 #查看eth0网卡信息 等同于ifconfig eth0 [root@linux ~]# ip addr add local 192.168.4.1/28 brd + label eth0:1 dev eth0 #为每个地址设置一个字符串作为标签 [root@linux ~]# ip addr add 192.168.4.2/24 brd + dev eth1 label eth1:1 #在以太网接口eth0上增加一个地址192.168.4.2,掩码长度为24位(155.155.155.0),标准广播地址,标签为eth0:Alias [root@linux ~]# ip addr del 192.168.4.1/24 brd + dev eth0 label eth0:1 #ip address delete--删除一个协议地址. 缩写:delete、del、d [root@linux ~]# ip addr ls eth0 #ip address show--显示协议地址. 缩写:show、list、lst、sh、ls、l [root@linux ~]# ip -s -s a f to 10/8 #删除属于私网10.0.0.0/8的所有地址 [root@linux ~]# ip -4 addr flush label "eth0" #取消所有以太网卡的IP地址 [root@linux ~]# ip neigh add 10.0.0.3 lladdr 0:0:0:0:0:1 dev eth0 nud perm #在设备eth0上,为地址10.0.0.3添加一个permanent ARP条目 [root@linux ~]# ip neigh chg 10.0.0.3 dev eth0 nud reachable #把状态改为reachable [root@linux ~]# ip neigh del 10.0.0.3 dev eth0 #删除设备eth0上的一个ARP条目10.0.0.3
[root@linux ~]# ip route add 192.168.10.0/24 dev eth1 #添加192.168.10.0/24网段转发到eth1
(添加到达目标主机的路由记录: ip route add 目标主机 via 网关
添加到达网络的路由记录:ip route add 目标网络/掩码 via 网关
添加默认路由:ip route add default via 网关
例如增加一条到达主机10.2.111.110的路由,网关是10.1.111.110:ip route add 10.2.111.110 via 10.1.111.110
3、删除路由:ip route del 目标网络/掩码 ip route del default [via 网关]
4、清空路由表: ip route flush
)
[root@linux ~]# ip route #打印路由表
[root@linux ~]# ip route del 192.168.10.0/24 dev eth1 #移除192.168.10.0/24网段转发到eth1
[root@linux ~]# ip route get 10.0.0.3 dev eth0 #假设现在你有一个IP地址,你需要知道路由包从哪里来。可以使用下面的路由选项(译注:列出了路由所使用的接口等
网络故障排除命令
ping
ping 程序使用 ICMP 协议的强制回显请求数据报以使主机或网关发送一份 ICMP 的回显应答。回显请求数据报(" pings ")含有一个 IP 及 ICMP 的报头,后跟一个``时间值关键字然后是一段任意长度的填充字节用于把保持分组长度为16的整数倍。以下是程序的选项:
ping [ -LRUbdfnqrvR ] [ -c count ] [ -i wait ] [ -l preload ] [ -p pattern ] [ -s packetsize ]
参数 -c count 在发送(和接收)了正好数量为 count 的回显应答分组后停止操作。在发送了 count 个分组后没有收到任何分组的特别情况是发送导致了终止(选程主机或网关不可达)。 -d 在所用的套接字上使用SO_DEBUG 选项。 -f 以高速方式来作ping 。以分组返回的速度来输出其它分组或每秒输出百次。当收到每个回显应答并打印一个退格符时,对每个回显请求都打印一个句点``.。这可以快速显示出丢弃了多少个分组,只有超级用户可以用这个选项。这(操作)对网络要求非常苛刻,应该慎重使用。 -i wait 在发送每个分组时等待 wait 个秒数。缺省值为每个分组等待一秒。此选项与-f选项不能同时使用。 -l preload 如果指定 preload ,那么 ping 程序在开始正常运行模式前尽可能快地发送分组。同样只有超级用户可以用这个选项。 -n 只以数字形式输出信息。这样就不尝试去查找主机名了。 -p pattern 可以指定最多16个填充字节用于保持分组长度为16的整数倍。在网络上诊断与数据相关问题时此选项很有用。例如``-p ff将使发出的分组都用全1填充数据区。 -q 静态输出。在程序启动和结束时只显示摘要行。 -R 记录路由。在回显请求分组中包含记录路由选项并在相应的分组返回时显示路由缓冲区。注意IP首部的容量只能存放9条这样的路由。很多主机忽略或禁用此选项。 -r 在所连接的网络上旁路正常的选路表,直接向主机发送分组。如果主机未处于直接相连的网络上,那么返回一个错误。此选项可用来通过无路由接口对一台主机进行检测(例如当接口已被routed 程序丢弃后)。 -s packetsize 指定要发送数据的字节量。缺省值为 56 ,这正好在添加了 8 字节的 ICMP 首部后组装成 64 字节的 ICMP 数据报。 详细模式输出。打印接收到的回显应答以外的ICMP分组。 -t 设置存活数值TTL的大小-v -w waitsecs 在 waitsecs 秒后停止 ping 程序的执行。当试图检测不可达主机时此选项很有用。 当用ping来隔离故障时,应首先在本地主机上运行,以检查本地网络接口有效 运行。然后,应该进一步检查主机和网关。计算出往返时间和分组丢失率。如 果收到重复的分组,虽然这些分组的往返时间要用于计算往返时间的最小/平均 /最大值,但是它们不应该算在刚才计算的丢失的分组中。当指定数量的分组已 经发送(和接收)时或如果程序被SIGINT信号终止,会显示一份简短的摘要。 如果ping程序根本没有收到任何返回分组,那它将以返回码1退出。出错时返回 2。否则返回0。这些值可能用于查看主机存在与否。 此程序专用于网络测试,度量和管理。因为它会使用网络的流量,在正常操作或 自动的脚本中使用它并不明智。
实例
[root@localhost ~]# ping -c 5 -i 0.5 baidu.com # 指定次数和时间,间隔ping baidu
[root@localhost ~]# ping -i 0.2 -c 30 -I 192.168.10.208 180.149.132.47 -q # -i 指定发送数据包时间间隔,-c 指定一共发送多少个数据包,-I 指定源地址,-q指定直接显示程序的启动和最后结果
[root@localhost ~]# ping -i 3 -s 1024 -t 255 192.168.120.206 # -i 3 发送周期为 3秒 -s 设置发送包的大小为1024 -t 设置TTL值为 255
[root@localhost ~]# ping -I 192.168.1.112 192.168.1.121 -w 3 #-I 网络界面:使用指定的网络界面送出数据包,即192.168.1.112是发出ping命令的主机IP地址,192.168.1.121是被ping的主机的IP地址。-w 等待指定时间后停止ping程序的执行。当试图测试不可达主机时此选项很有用,时间单位是秒。
[root@localhost ~]# ping -c 1 -W 2 192.168.0.100 # -c 1发送一个包,-W 2超时2秒不到达主机停止
tracepath & traceroute
pass
mtr
pass
host
pass
whois
pass
ifplugstatus
pass
dhclient
pass
netstat
pass
ss
pass
tcpdump
pass
nslookup
pass
要先跟老妈谈谈人生大事去了,有空的话再补充整理吧!
自动判断 中文 中文(简体) 中文(香港) 中文(繁体) 英语 日语 朝鲜语 德语 法语 俄语 泰语 南非语 阿拉伯语 阿塞拜疆语 比利时语 保加利亚语 加泰隆语 捷克语 威尔士语 丹麦语 第维埃语 希腊语 世界语 西班牙语 爱沙尼亚语 巴士克语 法斯语 芬兰语 法罗语 加里西亚语 古吉拉特语 希伯来语 印地语 克罗地亚语 匈牙利语 亚美尼亚语 印度尼西亚语 冰岛语 意大利语 格鲁吉亚语 哈萨克语 卡纳拉语 孔卡尼语 吉尔吉斯语 立陶宛语 拉脱维亚语 毛利语 马其顿语 蒙古语 马拉地语 马来语 马耳他语 挪威语(伯克梅尔) 荷兰语 北梭托语 旁遮普语 波兰语 葡萄牙语 克丘亚语 罗马尼亚语 梵文 北萨摩斯语 斯洛伐克语 斯洛文尼亚语 阿尔巴尼亚语 瑞典语 斯瓦希里语 叙利亚语 泰米尔语 泰卢固语 塔加路语 茨瓦纳语 土耳其语 宗加语 鞑靼语 乌克兰语 乌都语 乌兹别克语 越南语 班图语 祖鲁语 自动选择 中文 中文(简体) 中文(香港) 中文(繁体) 英语 日语 朝鲜语 德语 法语 俄语 泰语 南非语 阿拉伯语 阿塞拜疆语 比利时语 保加利亚语 加泰隆语 捷克语 威尔士语 丹麦语 第维埃语 希腊语 世界语 西班牙语 爱沙尼亚语 巴士克语 法斯语 芬兰语 法罗语 加里西亚语 古吉拉特语 希伯来语 印地语 克罗地亚语 匈牙利语 亚美尼亚语 印度尼西亚语 冰岛语 意大利语 格鲁吉亚语 哈萨克语 卡纳拉语 孔卡尼语 吉尔吉斯语 立陶宛语 拉脱维亚语 毛利语 马其顿语 蒙古语 马拉地语 马来语 马耳他语 挪威语(伯克梅尔) 荷兰语 北梭托语 旁遮普语 波兰语 葡萄牙语 克丘亚语 罗马尼亚语 梵文 北萨摩斯语 斯洛伐克语 斯洛文尼亚语 阿尔巴尼亚语 瑞典语 斯瓦希里语 叙利亚语 泰米尔语 泰卢固语 塔加路语 茨瓦纳语 土耳其语 宗加语 鞑靼语 乌克兰语 乌都语 乌兹别克语 越南语 班图语 祖鲁语 有道翻译 百度翻译 谷歌翻译 谷歌翻译(国内)
翻译 朗读 复制 正在查询,请稍候…… 重试 朗读 复制 复制 朗读 复制 via 谷歌翻译(国内) 译