Linux中常用的网络命令
1、设置网络参数的命令
命令 | 说明 |
ifconfig | 查询、设置网卡与IP网络等相关参数 |
ifup、ifdown | 这是两个scripts文件,其作用是通过更简单的方式来启动与关闭网络接口 |
route | 查看、配置路由表 |
ip | 整合式的命令,可以直接修改上述提到的功能 |
1.1、手动/自动配置IP参数与启动/关闭网络接口:ifconfig、ifup、ifdown
这三个命令都是启动网络接口,不过,ifup和ifdown仅能就/etc/sysconfig/net-scripts内的ifcfg-ethX进行启动或关闭的操作,并不能直接修改网络参数,除非手动调整ifcfg-ethX文件才行。至于ifconfig则可以直接手动为某个接口配置IP或调整其网络参数。
1.1.1、ifconfig
ifconfig主要是可以手动启动、查看与修改网络接口的相关参数,可以修改的参数很多,包括IP参数以及MTU等。
# ifconfig {interface} {up|down} <==查看与启动接口
# ifconfig interface {options} <==设置与修改接口
选项与参数:
interface:网卡接口名称,包括eth0,eth1,ppp0等等
options:可以使用的参数,包括:
up,down:启动或关闭该网络接口
mtu:可以设置不同的MTU数值
netmask:子网掩码
broadcast:广播地址
一张网卡上面设置多个IP:
# ifconfig eth0(网卡名):0(序号) 192.168.2.125
CetnOS中重启网络命令:
# /etc/init.d/network start|restart|stop|reload
# systemctl restart network
Ubuntu中重启网络命令:
# systemctl restart network-manager
要启动某个网络接口而不要其拥有IP参数:
# ifconfig eth0 up
1.1.2、ifup、ifdown
如果想直接以配置文件,也就是/etc/sysconfig/net-scripts内的ifcfg-ethX等文件的设置参数来启动网络接口的话,那就需要ifup和ifdown了。
# ifup {interface}
# ifdown {interface}
如果以ifconfig eth0 的方式来设置或修改了网络接口后,就无法用ifdown eth0的方式来关闭了,因为ifdown会分析当前的网络参数与ifcfg-eth0是否相符,不相符的话,就放弃次操作。只能用ifconfig eth0 down关闭。
1.2、修改路由:route
# route [-nee]
# route add [-net|-host] [网络或主机] netmask [mask] [gw|dev]
# route del [-net|-host] [网络或主机] netmask [mask] [gw|dev]
查看的参数:
-n:不要使用通信协议或主机名,直接使用IP或port number
-ee:显示更详细的信息
增加与删除路由的相关参数:
-net:表示后面接的的路由为一个网络
-host:表示后面接的为连接到单部主机的路由
netmask:子网掩码
gw:网关,后接IP地址
dev:后接网卡
1.3、网络参数综合命令:ip
# ip [option] [动作] [命令]
选项与参数:
option:设置的参数,主要有:
-s:显示出设备的统计数据,例如接收数据包的总数等;
操作:也就是可以针对哪些网络参数进行操作,包括:
link:与设备相关的设置,包括:MTU、MAC地址
addr/address:关于额外的IP协议,例如多IP的实现
route:与路由有关的相关设置
1.3.1、关于接口设备的相关设置:ip link
主要与网络结构的数据链路层相关
# ip [-s] link show <==单纯地查看该设备的相关信息
# ip link set [device] [动作与参数]
选项与参数:
show:仅显示出这个设备的相关属性,如加上-s会显示出更多统计信息
set:可以开始设置项目,device指的是eth0等设备
动作与参数:
up|down:启动或关闭
address:如果这个设备可以更改MAC的话,用这个参数更改,设定前需要先关闭网卡
name:给予这个设备特殊的名字
mtu:最大数据传输单元
1.3.2、关于额外IP的相关设定:ip address
主要与网络结构的网络层相关
# ip address show
#ip address [add|del] [IP参数] [dev 设备名] [相关参数]
选项与参数:
show:仅显示接口的IP信息
add|del:进行相关参数的增加或删除设置,主要有:
IP参数:主要是网络的设置
dev:这个是IP所要设置的接口
相关参数:
broadcast:广播地址,如果是+则让系统自动计算
label:设备别名
scope:这个选项的参数,通常是这几类:
global:允许来自所有来源的连接
site:仅支持IPv6,仅允许本主机的连接
link:仅允许本设备自我连接
host:仅允许本主机内部的连接
1.3.3、关于路由的相关设定:ip route
# ip route show <==单纯的显示出路由的设置而已
# ip route [add|del] [IP 或网络号] [via gateway] [dev 设备]
选项与参数:
show:单纯地显示出路由表,也可以使用list
add|del:添加或删除路由
IP或网络号:单纯的IP地址
via:网关
mtu:最大传输单元
2、网络排错与查看命令
2.1、两台主机的两点沟通:ping
# ping [选项与参数] IP/HOST
选项与参数:
-c 数值:次数
-n:直接IP输出
-s 数值:发送出去的ICMP数据包大小,默认为56B
-t 数值:TTL的数值,默认是64,没经过一个节点减少1
-W 数值:等待主机响应的秒数
-M [do|dont]:主要在检测网络的MTU数值大小,两个常见的项目是:
do:代表传动一个DF标志,让数据包不能重新拆包和打包
dont:可以拆包可打包
2.2、两台主机各节点分析:traceroute
举例来说:比如连接到Yahoo的速度很慢,觉得是1、自己的网络问题;2、外部的网络有问题。判断是1还是2就需要traceroute这个命令。
# traceroute [选项与参数] IP
选项与参数:
-n:用IP
-U:使用UDP33434来进行检测,默认的
-I:使用ICMP的方式检测
-T:使用TCP方式检测,默认是80
-w:若对方主机在几秒内不响应,就说明不同,默认是5秒
-p 端口号:改变端口号
-i 设备:设备名
-g 路由:网关
2.3、查看本机的网络连接与后门:netstat
如果某个网络服务已经启动了,但是就是无法进行连接,怎么办?首先你应该要查询一下网络接口所监听的端口,来看看是不是真的启动了?
# netstat -[rn] <==与路由有关的参数
# netstat -[antulpc] <==与网络接口有关的参数
选项与参数:
与路由有关的参数:
-r:列出路由表,功能与route一样
-n:不使用主机名与服务名称,使用IP与port number,如route -n
与网络接口有关的参数:
-a:列出所有的连接状态,包括tcp/udp/unix socket等
-t:仅列出tcp数据包连接
-u:仅列出udp数据包连接
-l:仅列出已在listen(监听)的服务的网络状态
-p:列出PID与Program的文件名
-c 数值:自动更新
2.4、检测主机名与IP地址的对应:host、nslookup
关于主机名与IP地址的对应,主要介是DNS客户端的dig命令。不过除此之外,还有两个简单的命令,那就是host和nslookup。
2.4.1、host
这个命令可以用来查看某个主机名的IP。
# host [-a] hostname [server]
选项与参数:
-a:列出该主机详细的各项主机名设置数据,列出来的IP是向/etc/resolv.conf那个文件内的DNS服务器查询的
[server]:可以使用不是由/etc/resolv.conf文件定义的DNS服务器IP来查询
2.4.2、nsllokup
同样使用/etc/resolv.conf
# nslookup [-query=[type]] [hostname|IP]
选项与参数:
-query=type:查询的类型,处理传统的IP与主机名对应外,DNS还有很多信息。
2.5、远程连接命令
# telnet [host|IP [port]]