首页 > 代码库 > Linux系统网络配置与管理
Linux系统网络配置与管理
Linux系统网络配置与管理
1、图形化网络配置工具
(1)centos6下图形化网络配置工具
1)system-config-network(或system-config-network-tui)
2)setup
(2)cnetos7下图形化网络配置管理工具
1)nm-connection-editor(需要在图形化界面终端中使用)
2)nmtui
3)nmcli
2、ifconfig命令的使用(centos7上默认没有此命令,需要安装net-tools包)
(1)查看主机ip
1)ifconfig #查看所有接口网络配置信息
2)ifconfig interface#查看指定接口的网络配置信息
(2)启用或者停用网卡
1)关闭网卡:ifconfig eth0down
2)启用网卡:ifconfig eth0up
(3)修改配置IP地址
1)设置修改IP地址:ifconfig eth1 ipaddress/netmask(临时生效)
[root@dayi123-6 ~]$ifconfigeth0 #查看eth0IP地址
eth0 Link encap:Ethernet HWaddr 00:0C:29:D3:7B:9B
inet addr:172.16.254.250 Bcast:172.16.255.255 Mask:255.255.0.0
inet6 addr:fe80::20c:29ff:fed3:7b9b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28487 errors:0 dropped:0overruns:0 frame:0
TX packets:157 errors:0 dropped:0overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2833396 (2.7 MiB) TX bytes:25918 (25.3 KiB)
[root@dayi123-6 ~]$ifconfigeth0 192.168.1.2/24 #修改eth0IP地址
(4)配置网卡别名:ifconfig eth0:0 ipaddress/netmaskup
[root@dayi123 ~]# ifconfigeth0:0 6.6.6.6/24
[root@dayi123 ~]# ifconfigeth0:0
eth0:0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1280
inet 6.6.6.6 netmask 255.255.255.0 broadcast 6.6.6.255
ether 00:0c:29:ed:0f:11 txqueuelen 100 (Ethernet)
3、路由管理命令router
(1)查看路由:route –n
[root@dayi123-6 ~]$route –n #查看路由表
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.80.0 0.0.0.0 255.255.255.0 U 1 0 0 eth1
172.16.0.0 0.0.0.0 255.255.0.0 U 1 0 0 eth0
0.0.0.0 172.16.0.1 0.0.0.0 UG 0 0 0 eth0
(2)添加与删除
添加路由:route add[-net|-host] target [netmask Nm] [gwGw] [[dev] If]
删除路由:route del[-net|-host] target [gwGw] [netmask Nm] [[dev] If]
(3)配置路由案例:
Linux配置路由拓扑图
1)Linux1的配置
[root@linux1 ~]# echo 1> /proc/sys/net/ipv4/ip_forward #开启主机路由转发功能
[root@linux1 ~]# route add -net192.168.2.0/30 gw 192.168.1.2
[root@linux1 ~]# route add -net10.0.0.0/24 gw 192.168.1.2
[root@linux1 ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default server.magelinu 0.0.0.0 UG 100 0 0 eth2
10.0.0.0 192.168.1.2 255.255.255.0 UG 0 0 0 eth0
172.16.0.0 0.0.0.0 255.255.0.0 U 100 0 0 eth2
192.168.1.0 0.0.0.0 255.255.255.252 U 100 0 0 eth0
192.168.2.0 192.168.1.2 255.255.255.252 UG 0 0
2)linux2的配置
[root@linux2 ~]# echo 1> /proc/sys/net/ipv4/ip_forward
[root@linux2 ~]# route add -net172.16.1.0/24 gw 192.168.1.1
[root@linux2 ~]# route add -net10.0.0.0/24 gw 192.168.2.2
[root@linux2 ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 192.168.2.2 255.255.255.0 UG 0 0 0 eth1
172.16.1.0 192.168.1.1 255.255.255.0 UG 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
192.168.2.0 0.0.0.0 255.255.255.252 U 100 0
3)linux3配置
[root@linux3 ~] echo 1> /proc/sys/net/ipv4/ip_forward
[root@linux3 ~]$route add -net192.168.1.0/30 gw 192.168.2.1
[root@linux3 ~]$route add -net172.16.1.0/30 gw 192.168.2.1
[root@linux3 ~]$route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth1
172.16.1.0 192.168.2.1 255.255.255.252 UG 0 0 0 eth0
192.168.1.0 192.168.2.1 255.255.255.252 UG 0 0 0 eth0
192.168.2.0 0.0.0.0 255.255.255.252 U 100 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0
4)linux4的配置(linux4当做客户机时不用配置路由,将网关指向下一跳即可,此处为linux1的eth0接口地址)
[root@linux1 ~]$ echo 1> /proc/sys/net/ipv4/ip_forward
[root@linux1 ~]$route add –net192.168.1.0/30 gw 172.16.1.1
[root@linux1 ~]$ route add –net192.168.2.0/30 gw 172.16.1.1
[root@linux1 ~]$ route add –net10.0.0.0/24 gw 172.16.1.1
[root@linux1 ~]$route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 172.16.1.1 255.255.255.252 UG 0 0 0 eth0
192.168.1.0 172.16.1.1 255.255.255.252 UG 0 0 0 eth0
10.0.0.0 172.16.1.1 255.255.255.0 UG 0 0 0 eth0
172.16.1.0 * 255.255.255.0 U 1 0 0 eth0
default 172.16.1.1 0.0.0.0 UG 0 0 0 eth0
5)linux5的配置(Linux5当做网关使用时不用配置路由,将网关指向下一跳地址即可,此处为linux3的eth1接口地址即可)
[root@linux5 ~]$echo 1> /proc/sys/net/ipv4/ip_forward
[root@linux5 ~]$ route add -net192.168.2.0/30 gw 10.0.0.254
[root@linux5 ~]$ route add -net192.168.1.0/30 gw 10.0.0.254
[root@linux5 ~]$ route add -net172.16.1.0/24 gw 10.0.0.254
[root@linux5 ~]$route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 10.0.0.1 255.255.255.252 UG 0 0 0 eth1
192.168.1.0 10.0.0.1 255.255.255.252 UG 0 0 0 eth1
10.0.0.0 * 255.255.255.0 U 1 0 0 eth1
172.16.1.0 10.0.0.1 255.255.255.0 UG 0 0 0 eth1
172.16.0.0 * 255.255.0.0 U 1 0 0 eth0
default server.magelinu 0.0.0.0 UG 0 0 0 eth0
(4)Linux主机配置动态路由
1)需要安装包quagga
[root@linux5 ~]$yum installquagga
2)配置:
[root@linux5 ~]$cd /etc/quagga/
[root@linux5 quagga]$cpospfd.conf.sample ospfd.conf #修改配置文件,时配置文件生效
[root@linux5quagga]$/etc/init.d/ospfd start #启动ospf路由协议
[root@linux5 ~]$vtysh #进入配置动态路由
Hello, this is Quagga (version0.99.15).
Copyright 1996-2005 KunihiroIshiguro, et al.
linux5#
linux5#
linux5# enable
% Unknown command.
linux5# configure terminal
linux5(config)#
4、网络管理命令ip
(1)使用IP命令管理网卡
1)关闭网卡:ip link setdev eth0 down
2)启用网卡:ip link setdev eth0 up
(2)使用ip命令配置网络
1)用法:ip addr{ add |del } IFADDR dev STRING
2)常用选项:
[label LABEL]:添加地址时指明网卡别名
[scope {global|link|host}]:指明作用域
global: 全局可用
link: 仅链接可用
host: 本机可用
[broadcast ADDRESS]:指明广播地址
[root@dayi123 ~]# ip addr add6.6.6.6/24 dev eth0 label eth0:0 #添加IP地址指定标签
[root@dayi123 ~]# ip addr #查看网卡配置信息
……
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:ed:0f:11 brdff:ff:ff:ff:ff:ff
inet 172.16.250.102/16 brd 172.16.255.255scope global dynamic eth0
valid_lft 85913sec preferred_lft85913sec
inet6.6.6.6/24 scope global eth0:0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:feed:f11/64 scope link
valid_lft forever preferred_lft forever
[root@dayi123 ~]# ip addr del6.6.6.6/24 dev eth0 label eth0:0 #删除地址
3)修改网卡MTU(最大传输单元)
命令:ip link set devIFACE mtu 1500
[root@dayi123 ~]# ip link setdev eth0 mtu 1000 #改变传输单元
[root@dayi123 ~]# ip -s -s linkls eth0 #查看网卡1的详细信息
2: eth0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu1000 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 00:0c:29:ed:0f:11 brdff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
13836570 145845 0 0 0 0
RX errors: length crc frame fifo missed
0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
218116 1694 0 0 0 0
TX errors: aborted fifo window heartbeat
0 0 0 0
3)改变设备队列传输长度:ip link set dev IFACE txqueuelen
[root@dayi123 ~]# ip link setdev eth0 txqueuelen 100 #改变网卡队列传输长度
[root@dayi123 ~]# ip -s -s linkls eth0 #查看修改后网卡最大传输单元
2: eth0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1000 qdisc pfifo_fast state UP modeDEFAULT qlen 100
(3)使用ip命令配置路由
1)添加路由:ip route addTARGET via GW dev IFACE srcSOURCE_IP
2)删除路由:ip routedelete
3)查看路由:ip route(或ip route (show |list))
4)清空路由表:ip routeflush[dev IFACE] [via PREFIX]
[root@dayi123 ~]# ip route add10.0.0.0/24 via 172.16.0.1 #添加路由
[root@dayi123 ~]# ip route #查看路由表
default via 172.16.0.1 deveth0 proto static metric 100
10.0.0.0/24 via 172.16.0.1 deveth0
172.16.0.0/16 dev eth0 proto kernel scope link src172.16.250.102 metric 100
192.168.122.0/24 devvirbr0 proto kernel scope link src 192.168.122.1
[root@dayi123 ~]# ip routeflush dev eth0 #清空路由表
5、网络状态查看命令netstat命令使用
(1)用法:netstat[--tcp|-t] [--udp|-u] [--raw|-w][--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]][--program|-p]
(2)参数:
1)-t: tcp协议相关
2)-u: udp协议相关
3)-w: raw socket相关
4)-l: 处于监听状态
5)-a: 所有状态
6)-n: 以数字显示IP和端口;
7)-e:扩展格式
8)-p: 显示相关进程及PID
(3)组合使用
[root@dayi123 ~]# netstat–tan #以数字形式显示tcp协议相关的状态
Active Internet connections(servers and established)
Proto Recv-Q Send-Q LocalAddress Foreign Address State
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
[root@dayi123 ~]# netstat–tnl #以数字形式显示所有处于监听状态的tcp协议状态
Active Internet connections(only servers)
Proto Recv-Q Send-Q LocalAddress Foreign Address State
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
[root@dayi123 ~]# netstat -lntp
Active Internet connections(only servers)
Proto Recv-Q Send-Q LocalAddress Foreign Address State PID/Program name
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1826/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1143/sshd
(4)显示路由表:netstat{--route|-r} [--numeric|-n]
[root@dayi123 ~]# netstat–rn #以数字的形式显示网卡信息(不加-n会尝试解析成主机名)
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 172.16.0.1 0.0.0.0 UG 0 0 0 eth0
172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
(5)显示接口统计数据:netstat{--interfaces|-I|-i}[iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
[root@dayi123 ~]# netstat–i #查看所有网卡信息
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1000 158203 0 0 0 2050 0 0 0 BMRU
lo 65536 176 0 0 0 176 0 0 0 LRU
virbr0 1500 0 0 0 0 0 0 0 0 BMU
[root@dayi123 ~]# netstat-I=eth0 #查看指定网卡信息
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1000 158301 0 0 0 2055 0 0 0 BMRU
[root@dayi123 ~]# ifconfig -seth0 #使用ifconfig命令查看指定网卡信息
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1000 158505 0 0 0 2100 0 0 0 BMRU
6、网络状态查看命令ss命令使用(用法同netstat基本相同)
(1)作用:netstat通过遍历proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取socket信息。
(2)用法:ss[OPTION]... [FILTER]
(3)常用选项:
(4)选项:
1)-t: tcp协议相关
2)-u: udp协议相关
3)-w: 裸套接字相关
4)-x:unixsock相关
5)-l: listen状态的连接
6)-a: 所有
7)-n: 数字格式
8)-p: 相关的程序及PID
9)-e: 扩展的信息
10)-m:内存用量
11)-o:计时器信息
(5)组合使用
[root@dayi123 ~]# ss -tan
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 5 192.168.122.1:53 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 127.0.0.1:631 *:*
LISTEN 0 10 127.0.0.1:25 *:*
[root@dayi123 ~]# ss -tanl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 5 192.168.122.1:53 *:*
LISTEN 0 128 *:22 *:*
(6)常见用法
1)ss -l 显示本地打开的所有端口
2)ss -pl 显示每个进程具体打开的socket
3)ss -t -a 显示所有tcp socket
4)ss -u -a 显示所有的UDP Socekt
5)ss -o stateestablished(tcp状态) ‘( dport = :ssh or sport = :ssh )‘ 显示所有已建立的ssh连接
7)ss -o state established(tcp状态) ‘( dport = :http or sport = :http )‘ 显示所有已建立的HTTP连接
8)ss -s 列出当前socket详细信息
#查看已经建立的ssh链接
[root@dayi123 ~]# ss -o stateestablished ‘( dport = :ssh or sport = :ssh )‘
Netid Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp 0 52 172.16.250.102:ssh 172.16.252.112:49458 timer:(on,331ms,0)
#查看已经关闭的http链接
[root@dayi123 ~]# ss -o stateclosing ‘( dport = :http or sport = :http )‘
Netid Recv-Q Send-Q LocalAddress:Port PeerAddress:Port
7、网络相关的配置文件
通过命令配置的IP地址及通过命令配置的路由信息都是临时的,在系统重启后都会失效,如果想永久生效,需要将设备信息写入配置文件
(1)网卡配置文件(/etc/sysconfig/network-scripts/ifcfg-IFACE)
[root@linux5 ~]$cat/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 #此配置文件应用到的设备
HWADDR=00:0c:29:d3:7b:9b #mac地址
TYPE=Ethernet #接口类型;常见有的Ethernet, Bridge
UUID=73ee782d-02ed-4a8e-acd2-e4f6aec30c5f #设备的惟一标识
ONBOOT=yes #在系统引导时是否激活此设备
#NM是NetworkManager的简写,此网卡是否接受NM控制;建议CentOS6为“no”
NM_CONTROLLED=yes
BOOTPROTO=dhcp #激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
USERCTL=no #普通用户是否可控制此设备
#如果BOOTPROTO的值为“dhcp”,是否允许dhcpserver分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中
PEERDNS=yes
IPADDR=10.0.0.10 #指明IP地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=10.0.0.254 #默认网关
centos6中网卡配置文件与NetworkManager的关系:
1)当NetworkManager服务关闭PEER1DNS=NO时不会生成dns配置文件(/etc/resolv.conf),需要手工创建配置
2)当NetworkManager服务关闭PEERDNS=yes时dns为手工指定的
3)NwtworkManager开启,PEER1DNS=no时,不会从dhcp获取dns
4)NwtworkManager开启,PEER1DNS=yes时, 会从dhcp服务器自动获取dns
(2)路由相关的配置文件(/etc/sysconfig/network-scripts/route-IFACE)
路由配置文件默认是不存在的,需要时需要自己手动创建并配置,配置完成后需要重启网卡才能生效。
1)配置方法一
TARGET via GW
如:10.0.0.0/8 via172.16.0.1
2)配置方法二:每三行定义一条路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
[root@linux5 ~]$cat/etc/sysconfig/network-scripts/route-eth1 #路由配置文件
192.168.2.0/30 via 10.0.0.254
192.168.1.0/30 via 10.0.0.254
172.16.2.0/24 via 10.0.0.254
[root@linux5 ~]$route del -net192.168.2.0/30 gw 10.0.0.254 #删除之前的配置信息
[root@linux5 ~]$route del -net192.168.1.0/30 gw 10.0.0.254
[root@linux5 ~]$route del -net172.16.1.0/24 gw 10.0.0.254
[root@linux5~]$/etc/init.d/network restart #重启网卡
[root@linux5 ~]$route #查看路由表
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 10.0.0.254 255.255.255.252 UG 0 0 0 eth1
192.168.1.0 10.0.0.254 255.255.255.252 UG 0 0 0 eth1
10.0.0.0 * 255.255.255.0 U 1 0 0 eth1
172.16.1.0 10.0.0.254 255.255.255.0 UG 0 0 0 eth1
172.16.0.0 * 255.255.0.0 U 1 0 0 eth0
default server.magelinu 0.0.0.0 UG 0 0 0 eth0
(3)网卡别名配置文件
通过命令修改设置的网卡别名或增加的网卡IP地址都是临时生效的,想要永久生效,需要生成独立的配置文件,配置完成后重启网卡生效。
[root@linux5 ~]$cat/etc/sysconfig/network-scripts/ifcfg-eth0:0 #给网卡eth0添加ip地址
DEVICE=eth0:0 #应用到的设备
IPADDR=6.6.6.6 #IP地址
NETMASK=255.0.0.0 #子网掩码信息
ONPARENT=yes
本文出自 “dayi123” 博客,请务必保留此出处http://dayi123.blog.51cto.com/12064061/1922757
Linux系统网络配置与管理