Linux网络常用命令
在Linux系统管理中网络管理肯定是经常打交道的,为了加深印象这里写几个常用的命令和介绍.ifconfig、 route、 ip、 netstat、 ss、 nmcli和编辑网卡配置文件.
ifconfig :
ifconfig 接口 [aftype] options | address ...
常用参数:
up 启动指定网络设备/网卡。
down 关闭指定网络设备/网卡。arp 设置指定网卡是否支持ARP协议。
-a 显示全部接口信息
-s 显示摘要信息
del 删除指定网卡的IPv6地址
mtu<字节数> 设置网卡的最大传输单元
netmask<子网掩码> 。
tunel 建立隧道
-broadcast<地址> 为指定网卡设置广播协议
address 为网卡设置IPv4地址
ifconfig用于配置IP管理网络接口,和显示网络接口的配置参数,如果没有给出任何参数它会显示出当前系统下有效的接口配置.
我主机上只有一块网卡,下面的lo是回环地址.
配置P地址:
ifconfig 网口 IP地址 子网掩码
开启或关闭网口:
ifconfig 接口 down | up 默认显示有效接口所以eth0被关闭后没有被显示出来 启动的方法就是把down换成up即可.
启用和关闭ARP协议
ifconfig eth0 arp //开启
ifconfig eth0 �Carp // 关闭
修改MAC地址
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
[root@localhost ~]# ifconfig eth0 down //关闭网卡 [root@localhost ~]# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址 [root@localhost ~]# ifconfig eth0 up //启动网卡
ifconfig命令所做的配置会立即生效,但是在系统重启后配置就没有了.要想重启后设置不消失需要在网卡的配置文件里做更改.
route命令:
route是一个路由管理命令可用来添加和删除路由条目
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
查看路由: route �Cn
[root@localhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 [root@localhost ~]#添加路由:
route add �Chost|-net IP地址 gw 网关地址 dev 接口. -host是主机-net是网络 添加网络路由时需写明子网掩码
路由的删除:
route del �Chost|-net IP地址
删除路由时指明删除的路由类型,host或net 然后跟地址条目和掩码
定义网关:
route add default gw IP地址
注意:route命令添加的路由条目在系统重启后会失效.
ip命令:
使用格式:
ip [ OPTIONS ] OBJECT { COMMAND | help }
ip命令式一个非常强大的网络管理工具,它集合了ifconfig和route的功能而且扩展功能也有很多.
参数:
-V:显示指令版本信息;
-s:输出更详细的信息;
-f:强制使用指定的协议族;
-4:指定使用的网络层协议是IPv4协议;
-6:指定使用的网络层协议是IPv6协议;
-0:输出信息每条记录输出一行,即使内容较多也不换行显示;
-r:显示主机时,不使用IP地址,而使用主机的域名。
要管理的对象:
link: 网络设备
address: 一个设备的协议(IP或者IPV6)地址
neighbour: ARP或者NDISC缓冲区条目
route: 路由表条目
ule: 路由策略数据库中的规则
maddress: 多播地址
mroute: 多播路由缓冲区条目
tunnel IP:上的通道
显示设备IP: ip address show
显示设备属性和详细信息:
ip link show 详细信息在ip后加-s选项
添加一个ip地址
ip address add IP地址 scope {global|host|link} dev 接口
这个命令式给接口新添加一个IP地址 其中作用域的意思是: global: 全局可用,link: 仅链接可用,host: 本机可用. 添加后立即生效,scope选项可选 如果不指明默认是global.
例如我这里添加一个ip
ip address add 192.168.1.110 dev eth0执行成功后用ip address show查看在我们eth0接口下面多了一个我们新添加的地址而且可用.
删除一个IP地址
ip address delete IP地址 dev 接口
例如: ip address delete 192.168.1.109/24 dev eth0
清除ip地址:
ip address flush [ dev STRING ] [ scope SCOPE-ID ] [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ]
这个命令后面可以跟IP地址 网卡的标签 等 然后清除你指明的地址如果指明网卡他会清除你网卡上所有的IP地址(慎选).
开启关闭接口:
ip link set down dev 接口
启用把down换成up即可
ip route add
添加路由:
ip route add TARGET via GW dev IFACE src SOURCE_IP
例如:
ip route add 172.16.0.0/24 via 192.168.1.1 dev eth0 添加完成后使用 ip route list 或ip route show命令查看路由条目
删除: ip route del
ip route del 172.16.0.0/16 via 192.168.1.1
添加网关:ip route add defalt via GW dev IFACE
ip命令的其他用法这里就不一一介绍了.
netstat:
netstat命令可以查看网络相关的好多信息,如接口状态,连接数,端口状态路由表等等
使用格式:
netstat [option]
常用参数:
-t: tcp协议相关
-u: udp协议相关
-w: raw socket相关
-l: 列出所有处于监听(listen)状态
-a: 所有状态
-n: 以数字显示IP和端口;
-e:显示扩展信息
-p: 显示相关进程及PID
一般实际使用当中经常组合使用,我们这里介绍几个常用的组合选项: -tan, -uan, -tnl, -unl
-tan:通过参数可以知道我们这里需要显示所有和tcp协议相关的连接并以数字形式显示端口号,因为端口号我们更容易识别
其他选项也是如此,比如-uan 就是所有和udp协议相关的连接用数字显示端口号
其余两个组合选项也是如此这里就不一一演示了.
ss:
命令用于显示socket状态.他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计.它比其他工具展示等多tcp和state信息.它是一个非常实用、快速、有效的跟踪IP连接和sockets的新工具
格式:ss [OPTION]... [FILTER]
-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unix sock相关
-l: listen状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量; -o:计时器信息
ss用法与netstat类似实际使用当中多几项参数组合使用,常用组合:
-tan, -tanl, -tanlp, -uan
比netstat多了一个对端IP和端口的信息.其他组合的意思可以看每个选项的代表意义.
nmctl命令:
CentOS 7的一个新特性是默认的网络服务由NetworkManager提供,这是一个动态的网络控制和配置守护进程,它在网络设备和连接可用时保持链接正常,同时也提供了典型的ifcfg类型的配置文件。 nmcli就是NetworkManager的一个命令控制工具,而且方便的是我们在使用nmcli的时候可以用tab补全命令
nmcli通常用法的一些例子:
# nmcli general status
会显示NetworkManager的整体状态。
# nmcli connection show
会显示所有的连接
# nmcli connection show -a
仅显示活跃的连接
# nmcli device status
启动/停止网络设备
停止网络设备使用下面的语法:
# nmcli device disconnect eno16777736
要启动它使用下面的语法:
# nmcli device connect eno16777736
添加一个IP:
# nmcli connection add type ethernet con-name NEW_STATIC ifname eno16777736 ip4 192.168.1.141 gw4 192.168.1.1
在上面一些命令的修改IP在系统重启后会失效,在Linux系统中修改其网卡的配置文件即便系统重启也不会失效的 位置在: /etc/sysconfig/network-scripts/ifcfg-ethX.其中x是你的网卡编号,Linux默认从0开始如果你的系统中有多块网卡就是eth0 eth1 eth2 …
我们看一下文件中的内容:
\DEVICE=eth0 //网卡名称 HWADDR=00:0C:29:A2:8C:B2 //MAC地址 ONBOOT=yes //开机时自动激活 yes或no NETMASK=255.255.255.0 //子网掩码 IPADDR=192.168.1.104 //IP地址 GATEWAY=192.168.1.1 // 网关 DNS1=8.8.8.8 //DNS服务器地址这个文件我们可以直接使用vim来修改其中的内容.每一项按照我们需求修改即可然后保存退出这样系统重启后依然生效.
系统中还有一个位置可以修改DNS设置在/etc/resolv.conf 编辑这个文件也可以直接设置DNS服务器
关于IP管理的相关命令就总结到这里,此文档为知识总结加深印象和便于以后查阅.