网络相关命令
常用命令
ifcfg家族:
ifconfig:配置IP,NETMASK route :路由 netstat : 状态及统计数据查看iproute2家族
ip 系列 addr:地址和掩码 link :接口 route:路由 ss:状态及统计数据查看centos 7 nm(Network Manager)家族
特点:既能够立即生效,又能修改配置文件 nmcli:命令行工具 bmtul:text windows注意:
(1)DNS服务器指定 一般要编辑配置文件: /etc/resolv.conf (2)主机名:只是用来表示本地主机 centos6 : 临时:hostname 配置文件 :/etc/sysconfig/network CentOS 7 :hostnamectl 这个命令修改的是 /etc/hostname配置文件:
RedHat及相关发行版 /etc/sysconfig/network-scripts/ifcfg-NETCARD_NAME
ifcfg命令家族: ifconfig, route, netstat
ifconfig命令:接口及地址查看和管理
语法:ifconfig [INTERFACE] 显示网络信息
# ifconfig -a:显示所有接口,包括inactive状态的接口;
语法:ifconfig interface [aftype] options | address … 启动或关闭某块网卡
# ifconfig IFACE(接口名) IP/MASK [up|down]
# ifconfig IFACE(接口名) IP netmask NETMASK
options: [-]promisc 注意:立即送往内核中的TCP/IP协议栈,并生效;
管理IPv6地址:
add addr/prefixlen del addr/prefixlen
route命令:路由查看及管理
路由条目类型: 主机路由:目标地址为单个IP; 网络路由:目标地址为IP网络; 默认路由:目标为任意网络,0.0.0.0/0.0.0.0
查看:
# route -n 查看路由表(不会反解地址和端口号)
添加:
语法:route add [-net|-host] target [netmask Nm] ( [gw GW] [[dev] If]) 删除的话括号内可以不写
示例: route add -net 10.0.0.0/8 gw 192.168.10.1 dev eth1 到达10.0.0.0这个地址的下一跳是192.168.10.1 (注意下一跳的地址必须与主机在同一网段中,后边的 dev 。。。可以不写) 两种写法 route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 #增加一条到达244.0.0.0的路由。 route add -net 0.0.0.0/0.0.0.0 gw 192.168.10.1 添加默认网关 route add default gw 192.168.10.1
删除:
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
示例: route del -net 10.0.0.0/8 gw 192.168.10.1 删除 10.0.0.0/8 这一条路由条目 删除目标:192.168.1.3 网关:172.16.0.1 # route del -host 192.168.1.3 删除默认网关 route del default 一个网络的两个网段的主机如果想要ping通,就需要自自己吧自己设置成为路由!即 GETWAY=自己 这时route -n查看后就能知道了! 配置动态路由 通过守护进程获取动态路由 • 安装quagga包,支持多种格式的RIP、OSPF和BGP • 命令vtysh配置(同思科路由器配置)
netstat命令:
gn显示网络连接路由表,路由数据,伪装连接,伪装数据,显示多播成员关系!
显示路由表:
netstat -rn
-r:显示内核路由表
-n:数字格式,不反解IP地址至主机名;
显示网络连接:
netstat
[—tcp|-t] [—udp|-u] [—udplite|-U] [—sctp|-S] [—raw|-w]
[—listening|-l] [—all|-a] [—numeric|-n] [—extend|-e[—extend|-e]]
[—program|-p]
-t:TCP协议的相关连接,连接均有其状态;FSM(Finate State Machine);
-u:UDP相关的连接
-w:raw socket相关的连接
-l:处于监听状态的连接
-a:所有状态
-n:以数字格式显示IP和Port;
-e:扩展格式
-p:显示相关的进程及PID;
常用组合:
netstat -tan(所有状态的连接), -uan, -tnl, -unl, -tunlp
-
传输层协议:
tcp:面向连接的协议;通信开始之前,要建立一个虚链路;通信完成后还要拆除连接;
udp:无连接的协议;直接发送数据报文;
显示接口的统计数据:
netstat {—interfaces|-I|-i} [iface] [—all|-a] [—extend|-e] [—verbose|-v] [—program|-p] [—numeric|-n]
-
所有接口:
netstat -i
-
指定接口:
netstat -I<IFace>
[root@localhost ~/bin ]# netstat -i Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eno16777 1500 647978 0 0 0 62975 0 0 0 BMRU eno16777 1500 - no statistics available - BMRU lo 65536 459 0 0 0 459 0 0 0 LRU virbr0 1500 0 0 0 0 0 0 0 0 BMU [root@localhost ~/bin ]# netstat -Ieno16777736 Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eno16777 1500 648191 0 0 0 62994 0 0 0 BMRU
ifup/ifdown命令:
注意:通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置;
配置主机名:
hostname命令:
查看:hostname 配置:hostname HOSTNAME 当前系统有效,重启后无效;
hostnamectl命令(CentOS 7):
hostnamectl status:显示当前主机名信息;
hostnamectl set-hostname:设定主机名,永久有效;
[root@localhost ~/bin ]# hostnamectl set-hostname QZX [root@localhost ~/bin ]# cat /etc/hostname qzx ------------此命令改动的是/etc/hostname 下次登录就能生效了 配置文件:/etc/sysconfig/network HOSTNAME=<HOSTNAME> 注意:此方法的设置不会立即生效; 但以后会一直有效;
配置DNS服务器指向:
配置文件:/etc/resolv.conf
nameserver 语法:
nameserver DNS_SERVER_IP
配置DNS服务器 为….
如何测试(host/nslookup/dig):
# dig -t A FQDN FQDN --> IP dig -t A www.baidu.com --- ip地址 # dig -x IP IP --> FQDN
iproute家族:
ip命令:
功能:查看、管理路由、策略路由、隧道
语法:ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route | netns }
注意: OBJECT可简写,各OBJECT的子命令也可简写;
ip link: network device configuration
ip link set – 修改设备属性
dev NAME (default):指明要管理的设备,dev关键字可省略; ip link set dev eth1 up up和down: multicast on或multicast off:启用或禁用多播功能; name NAME:重命名接口 mtu NUMBER:设置MTU的大小,默认为1500; netns PID:ns为namespace,用于将接口移动到指定的网络名称空间;
ip link show – 显示网络属性(display device attributes)
ip link help - 显示简要使用帮助;
ip netns: – 改网络manage network namespaces.
ip netns list:列出所有的netns ip netns add NAME:创建指定的netns ip netns del NAME:删除指定的netns ip netns exec NAME COMMAND:在指定的netns中运行命令
ip address – protocol address management.
ip address add – add new protocol address
ip addr add IFADDR dev IFACE [label NAME]:为额外添加的地址指明接口别名(为了让ifconfig能显示); [broadcast ADDRESS]:广播地址;会根据IP和NETMASK自动计算得到; [scope SCOPE_VALUE]: global:全局可用; link:接口可用; host:仅本机可用;
也可以多次执行,给网卡添加多个地址
ip address delete – delete protocol address
ip addr delete IFADDR dev IFACE
ip address show - look at protocol addresses ip addr list [IFACE]:显示接口的地址; ip address flush - flush protocol addresses ip addr flush dev IFACE ip addr flush dev eth0 label eth0:0 清空指定的 eth0
ip route – routing table management
ip route add – add new route
ip route change – change route
ip route replace – change or add new one
ip route add TYPE PREFIX via(下一跳) GW [dev IFACE] [src SOURCE_IP]
示例: # ip route add 192.168.0.0/24 via 10.0.0.1 dev eth1 src 10.0.20.100 # ip route add default via GW
-
ip route delete – delete route
-
ip route del TYPE PRIFIX
示例:
# ip route delete 192.168.1.0/24 -
ip route show – list routes
TYPE PRIFIX
-
ip route flush – 清空路由表 flush routing tables
TYPE PRIFIX 可以指定删除某类地址
-
ip route get – 获取单条路由 get a single route
ip route get TYPE PRIFIX 示例:ip route get 192.168.0.0/24
ss命令:
语法: ss [options] [ FILTER ]
选项:
-
-t:TCP协议的相关连接
-
-u:UDP相关的连接
-
-w:raw socket相关的连接
-
-l:监听状态的连接
-
-a:所有状态的连接
-
-n:数字格式
-
-p:相关的程序及其PID
-
-e:扩展格式信息
-
-m:内存用量
-
-o:计时器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
TCP的常见状态: TCP FSM: LISTEN:监听 ESTABLISEHD:建立的连接 FIN_WAIT_1: FIN_WAIT_2: SYN_SENT: SYN_RECV: CLOSED:
EXPRESSION:过滤!
dport =
sport =
自定义过滤示例:’( dport = :22 or sport = :22)’~]# ss -tan '( dport = :22 or sport = :22 )' 过滤:tcp连接中只要目的端口 或 源端口为22的
ss -tan state ESTABLISHED
只看建立连接的条目
ss -l 显示本地打开的所有端口
ss -pl 显示每个进程具体打开的socket
ss -t -a 显示所有tcp socket
ss -u -a 显示所有的UDP Socekt
ss -o state established ‘( dport = :ssh or sport = :ssh )’ 显示所有已建立的ssh连接
ss -o state established ‘( dport = :http or sport = :http )’ 显示所有已建立的HTTP连接
ss -s 列出当前socket详细信息
配置文件:
IP/NETMASK/GW/DNS等属性的配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE
IFACE:接口名称;
路由的相关配置文件:
/etc/sysconfig/networkj-scripts/route-IFACE
/etc/sysconfig/network-scripts/ifcfg-IFACE
说明参考/usr/share/doc/initscripts-9.49.30sysconfig.txt 、
配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE通过大量参数来定义接口的属性;其可通过vim等文本编辑器直接修改,也可以使用专用的命令的进行修改(CentOS 6:system-config-network (setup),CentOS 7: nmtui)
ifcfg-IFACE配置文件参数:
-
DEVICE:此配置文件对应的设备的名称;
-
ONBOOT:在系统引导过程中,是否激活此接口;
-
UUID:此设备的惟一标识;
-
IPV6INIT:是否初始化IPv6;
-
BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有dhcp、bootp、static、none;
-
TYPE:接口类型,常见的有Ethernet, Bridge;
-
DNS1:第一DNS服务器指向;
-
DNS2:备用DNS服务器指向;
-
DOMAIN:DNS搜索域;
-
IPADDR: IP地址;
-
NETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码;
-
GATEWAY:默认网关;
-
USERCTL:是否允许普通用户控制此设备;
-
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向 覆盖本地手动指定的DNS服务器指向;默认为允许;(覆盖到/etc/resolv.conf文件)
-
HWADDR:设备的MAC地址;
-
NM_CONTROLLED:是否使用NetworkManager服务来控制接口;建议CentOS6为“no” 禁止掉
网络服务:
-
network
-
NetworkManager
CentOS 6 NetworkManager还处于试验中,进行高级功能时尽量不要使用!CentOS 7已经很完善了 -
可以用 chkconfig —list 查看是否启动
管理网络服务:
CentOS 6: service SERVICE {start|stop|restart|status}
CentOS 7:systemctl {start|stop|restart|status} SERVICE[.service]
配置文件修改之后,如果要生效,需要重启网络服务; CentOS 6:# service network restart CentOS 7:# systemctl restart network.service
网关路由用到非默认时:/etc/sysconfig/network-scripts/route-IFACE
支持**两种配置方式**,但不可混用; (1) 每行一个路由条目: TARGET via GW
(2) 每三行一个路由条目: ADDRESS#=TARGET NETMASK#=MASK GATEWAY#=NEXTHOP
给接口配置多个地址:
ip addr之外,ifconfig 或配置文件都可以;这只是当前状态有效;重启就无效了!
(1) ifconfig IFACE_LABEL IPADDR/NETMASK
IFACE_LABEL: eth0:0, eth0:1, ...
(2) 为别名添加配置文件(这样就能永久有效了);
DEVICE=IFACE_LABEL BOOTPROTO:网卡别名不支持动态获取地址; static, none
nmcli命令:
Centos 7专用
nmcli [ OPTIONS ] OBJECT { COMMAND | help } device - 显示及管理网络接口(ip link)show and manage network interfaces COMMAND := { status | show | connect | disconnect | delete | wifi | wimax } connection - start, stop, and manage network connections COMMAND := { show | up | down | add | edit | modify | delete | reload | load } modify [ id | uuid | path ] <ID> [+|-]<setting>.<property> <value> 如何修改IP地址等属性: # nmcli conn modify IFACE [+|-]setting.property value ipv4.address ipv4.gateway ipv4.dns1 ipv4.method manual
不如用 nmtui 命令!
配置好以后用 systemctl restart network.service 重启下网络服务
Centos 6 可以用setup
这两个命令都是直接编辑的配置文件
原创文章,作者:qzx,如若转载,请注明出处:http://www.178linux.com/44422
评论列表(1条)
对网络管理类命令总结的很详细,也有自己的操作,如果能对个命令显示结果进行分析,会让文章更加具有实际意义。