常用网络管理命令

@

ifconfig

ifconfig命令:接口及地址查看和管理

使用:

	ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]
	[root@node0 ~]# ifconfig		#直接使用显示当前所有以启用接口信息
	[root@node0 ~]# ifconfig -a		#显示所有接口信息,包括down掉的接口
	[root@node0 ~]# ifconfig -s		#显示接口统计信息 
	Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
	docker0          1500        0      0      0 0             0      0      0      0 BMU
	eth0             1500   348847      0      0 0        925801      0      0      0 BMRU
	lo              65536       33      0      0 0            33      0      0      0 LRU
	
	# ifconfig  IFACE  IP/MASK  [up|down]
	# ifconfig  IFACE  IP  netmask  NETMASK  
	[root@node0 ~]# ifconfig eth1 192.168.0.100/24 up
	[root@node0 ~]# ifconfig eth1 192.168.0.100 netmask 255.255.0.0 up		#给eth1配置地址并启用

	options:
		[-]promisc
	[root@node0 ~]# ifconfig eth1 promisc	#启用混杂模式
    [root@node0 ~]# ifconfig eth1 -promisc	#取消混杂模式
	
	注意:命令修改接口配置立即送往内核中的TCP/IP协议栈,并生效;
		
	管理IPv6地址:
		ifconfig IFACE add addr/prefixlen
		ifconfig IFACE del addr/prefixlen

route命令

路由查看及管理

路由条目类型:
主机路由:目标地址为单个IP;
网络路由:目标地址为IP网络;
默认路由:目标为任意网络,0.0.0.0/0.0.0.0
优先级:主机路由>网络路由>默认路由
查看:

		# route  -n		#-n选项不把IP地址反解为主机名,也可不加-n。

添加:

		route  add  [-net|-host]  target  [netmask  Nm]  [gw GW] [metric N] [[dev] If]
			
		示例:
		[root@node0 ~]# route add -host 192.168.20.100 gw 172.16.100.110 dev eth0		#到达目标主机192.168.20.100都指向172.16.100.110,添加路由的主机需要与路由下一条在同一网络内才能添加成功
		[root@node0 ~]# route add -net 192.168.20.0/24 gw 172.16.100.110
		[root@node0 ~]# route add default gw 172.16.100.110	 		

删除:

		route  del  [-net|-host] target  [gw Gw]  [netmask Nm]  [[dev] If]
				
		示例: 
		[root@node0 ~]# route del -net 192.168.20.0/24 gw 172.16.100.110 dev eth0
		[root@node0 ~]# route del default

netstat命令

显示网络连接,路由表,接口状态等信息	

显示路由表:netstat  -rn	#等同于route -n
		-r:显示内核路由表
		-n:数字格式
		
显示网络连接:
	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;
	-c:持续输出网络状态		
示例:
	[root@node0 ~]# netstat -tan
	[root@node0 ~]# netstat -uan
	[root@node0 ~]# netstat -tnl
	[root@node0 ~]# netstat -unl
	[root@node0 ~]# netstat -tunlp
			
显示接口的统计数据:
	netstat    {--interfaces|-I|-i}    [iface]   [--all|-a]   [--extend|-e]   [--verbose|-v]   [--program|-p]  [--numeric|-n]
			
	所有接口:
		netstat  -i		#与ifconfig -s相同
	指定接口:
		netstat  -I<IFace>
		[root@node0 ~]# netstat -Ieth0
		[root@node0 ~]# netstat -I=eth0

ifup/ifdown命令

[root@node0 ~]# ifdown eth1
[root@node0 ~]# ifup eth1
注意:通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置;

配置主机名

hostname命令:
	查看:hostname
	配置:hostname  HOSTNAME
	[root@node0 ~]# hostname test
	[root@node0 ~]# hostname
	test

	当前系统有效,重启后无效;
	
hostnamectl命令(CentOS 7):
	hostnamectl  status:显示当前主机名信息;
	hostnamectl  set-hostname:设定主机名,永久有效;
	[root@node0 ~]# hostnamectl set-hostname test

配置文件:/etc/sysconfig/network
	HOSTNAME=<HOSTNAME>	
注意:此方法的设置不会立即生效; 但以后会一直有效;

配置DNS服务器指向

配置文件:/etc/resolv.conf
	nameserver   DNS_SERVER_IP

测试(host/nslookup/dig):
	# dig  -t  A  FQDN
		FQDN --> IP
			
	# dig  -x  IP
		IP --> FQDN

ip命令

用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具

使用:
语法:ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route | netns  }
	
注意: OBJECT可简写,各OBJECT的子命令也可简写;
		
ip link: network device configuration
		
	ip link set - change device attributes
		dev NAME (default):指明要管理的设备,dev关键字可省略;
		up和down:
		[root@node0 ~]# ip link set eth1 down
		[root@node0 ~]# ip link set eth1 up
			
		multicast on或multicast off:启用或禁用多播功能;
		[root@node0 ~]# ip link set eth1 multicast off
		[root@node0 ~]# ip link set eth1 multicast on
			
		name NAME:重命名接口,重命名需要先将接口down掉才能修改
		[root@node0 ~]# ip link set eth1 name new-eth1
			
		mtu NUMBER:设置MTU的大小,默认为1500;
		[root@node0 ~]# ip link set eth1 mtu 1400

		netns PID:ns为namespace,用于将接口移动到指定的网络名称空间;
		[root@node0 ~]# ip link set eth1 netns testnet				需要先创建netns:
		[root@node0 ~]# ip netns add testnet
		
	ip  link  show  - display device attributes
			
	ip  link  help -  显示简要使用帮助;
			
	ip netns:  - manage network namespaces.
		
		ip  netns  list:列出所有的netns
			
		ip  netns  add  NAME:创建指定的netns
		[root@node0 ~]# ip netns add testnet

		ip  netns  del  NAME:删除指定的netns
			
		ip  netns   exec  NAME  COMMAND:在指定的netns中运行命令
		将eth1移动到testnet命名空间中
		ip link set eth1 netns testnet
		此时ip link show将看不到eth1
		[root@node0 ~]# ip link show
		1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
		2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:6c:9c:e7 brd ff:ff:ff:ff:ff:ff
		4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default 
link/ether 02:42:5b:93:86:1d brd ff:ff:ff:ff:ff:ff
		
		在testnet中运行ip link show 命令
		[root@node0 ~]# ip netns exec testnet ip link sh
		1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
		3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 00:0c:29:6c:9c:f1 brd ff:ff:ff:ff:ff:ff
	ip address - protocol address management.
			
		ip address add - add new protocol address
			使用:ip  addr  add  IFADDR  dev  IFACE
				[label NAME]:为额外添加的地址指明接口别名;
				[broadcast ADDRESS]:广播地址;会根据IP和NETMASK自动计算得到;
				[scope SCOPE_VALUE]:
					global:全局可用;
					link:接口可用;
					host:仅本机可用;								
                    示例:
			[root@node0 ~]# ip addr add 192.0.0.2/24 dev eth1 label eth1:1
            
            [root@node0 ~]# ip addr add  192.168.1.20/24 dev eth0
			[root@node0 ~]# ip addr ls dev eth0
			2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
				link/ether 00:0c:29:6c:9c:e7 brd ff:ff:ff:ff:ff:ff
				inet 172.16.100.100/24 brd 172.16.100.255 scope global noprefixroute eth0
   					valid_lft forever preferred_lft forever
				inet 192.168.1.20/24 scope global eth0
   					valid_lft forever preferred_lft forever
				inet6 fe80::b36b:e4ec:d650:2528/64 scope link noprefixroute 
   					valid_lft forever preferred_lft forever
		ip address delete - delete protocol address
			使用:ip addr  delete  IFADDR  dev  IFACE 
		[root@node0 ~]# ip addr del 192.168.1.20/24 dev eth0			
		ip address show - look at protocol addresses
			使用:ip  addr   list  [IFACE]:显示接口的地址;
		[root@node0 ~]# ip addr show eth0
		[root@node0 ~]# ip addr list eth0
		
		ip address flush - flush protocol addresses
			使用:ip  addr  flush  dev  IFACE
		[root@node0 ~]# ip addr flush dev 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]
				
		示例:
		[root@node0 ~]# ip route add 192.168.0.0/24  via 10.0.0.1  dev eth1 src  10.0.20.100
		[root@node0 ~]# ip route add  192.168.0.0/24 via 172.16.100.110
		[root@node0 ~]# ip route add default via 172.16.100.2						
				
		ip route delete - delete route		
		示例:
			[root@node0 ~]# ip route del 192.168.0.0/24 via 172.16.100.110 dev eth0
					
		ip route show - list routes
		示例:
        	[root@node0 ~]# ip route ls 172.16.100.0/24
			[root@node0 ~]# ip route sh 172.16.100.0/24

		ip route flush - flush routing tables
		示例:
			[root@node0 ~]# ip route flush 172.16.100.0/24

		ip route get - get a single route
		示例:
		[root@node0 ~]# ip route get 192.179.10.0/24

ss命令

与netstat命令功能用法极其类似,比netstat强,可以过滤

	ss  [options]  [ FILTER ]
	选项:
		-t:TCP协议的相关连接
		-u:UDP相关的连接
		-w:raw socket相关的连接
		-l:监听状态的连接
		-a:所有状态的连接
		-n:数字格式
		-p:相关的程序及其PID
		-e:扩展格式信息
		-m:内存用量
		-o:计时器信息
			
	FILTER := [ state TCP-STATE ]  [ EXPRESSION ]
	
	TCP的常见状态:
		established
		syn-sent
		syn-recv
		fin-wait-{1,2}
		time-wait
		closed
		close-wait
		last-ack
		listen
		closing
				
	EXPRESSION:
		dport = 
		sport = 
	示例:'( dport = :22 or sport = :22)'
	[root@node0 ~]# ss -tan '( dport = :22 or sport = :22 )'
	[root@node0 ~]# ss -tan state established

使用命令配置IP/ROUTE只能暂时生效,重启之后就会丢失,要永久保存需要将配置写入配置文件中
配置文件:
IP/NETMASK/GW/DNS等属性的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
IFACE:接口名称;
路由的相关配置文件:/etc/sysconfig/networkj-scripts/route-IFACE

配置文件/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服务器指向;默认为允许;
		HWADDR:设备的MAC地址;
		
		NM_CONTROLLED:是否使用NetworkManager服务来控制接口;
		
	网络服务:
		network
		NetworkManager 
		
	管理网络服务:
		CentOS 6:  service  network  {start|stop|restart|status}
		CentOS 7:systemctl  {start|stop|restart|status}  network.service
			
	配置文件修改之后,如果要生效,需要重启网络服务;
		CentOS 6:# service  network  restart
		CentOS 7:# systemctl  restart network.service
			
用到非默认网关路由:/etc/sysconfig/network-scripts/route-IFACE
	支持两种配置方式,但不可混用;
		(1) 每行一个路由条目:
			TARGET  via  GW
			192.168.0.0/24 via 172.16.100.110
			
		(2) 每三行一个路由条目:
			ADDRESS#=TARGET
			NETMASK#=MASK
			GATEWAY#=NEXTHOP

给接口配置多个地址:
ip addr之外,ifconfig或配置文件都可以;

(1) ifconfig  IFACE_LABEL  IPADDR/NETMASK
[root@node0 ~]# ifconfig eth1:2 172.19.0.3/24
	
(2) 为别名添加配置文件;
	DEVICE=IFACE_LABEL
	BOOTPROTO:网络别名不支持动态获取地址;
		static, none

posted on 2019-08-17 19:08  遗忘街角  阅读(785)  评论(0编辑  收藏  举报

导航