您的位置:首页 > 理论基础 > 计算机网络

Linux网络属性配置

2015-12-27 18:34 851 查看
一、配置方式概述

(1)使用命令配置(临时有效)
1、ifcfg系列命令
1)ifconfig:配置ip,NETMASK2)route:路由3)netstat:网络状态及统计数据查看 2、iproute系列:
1)ip OBJECT:
此处的OBJECT可为:
addr:地址和掩码
link:接口
route:路由
2)ss:网络状态及统计数据查看
(2)配置文件配置(永久生效)
1、配置网络地址等编辑文件/etc/sysconfig/network-scripts/ifcfg-DEVICE_NAME(大写处替换为具体的网卡名)
2、要指定DNS服务器一般编辑配置文件/etc/resolv.conf
3、主机名配置(本地主机名):编辑配置文件/etc/sysconfig/network
注:在CentOS 7中可使用homenamectl命令,此命令是直接写入配置文件,所以是永久生效。

二、ifcfg系列命令
1、ifconfig命令:接口及地址查看和管理显示:ifconfig [interface]
# ifconfig eth0
配置IP地址:ifconfig interface [aftype] options | address …注:此处的interface是指网卡设备名,如eth0;ip即点分十进制的表示;而子网掩码可以给出255.255.0.0或者是16(长度)的格式;up和down分别表示启用或者禁用此网卡。# ifconfig interface ip/netmask [up|down]#ifconfig interface ip netmask [up]
# ifconfig eth0 192.168.1.100/24 up
# ifconfig eth0 192.168.1.100 255.255.255.0 up
注意:此处亦可使用单独的ifup DEVICE_NAME 和 ifdown DEVICE_NAME来启用和禁用网卡。 选项:[-]promisc:混杂模式生效与否;有-表示不生效(以下类同) 注:混杂模式即值接收来自互联网的任何类型的报文。[-]arp:是否允许地址解析[-]allmutilcast:是否允许组播或多播注意:立即送往内核,并生效;但是下次重启失效。管理IPv6地址options:addaddr/prefixlendeladdr/prefixlen注:此处的prefixlen即指子网掩码长度。
# ifconfig eth0 inet6 add2001:da8:207::9402
2、route命令:路由查看及管理1)路由条目类型:主机路由:目标地址为单个IP网络路由:目标地址为IP网络默认路由:目标为任意主机,0.0.0.0/0.0.0.02)查看当前路由信息:-n:表示不解析端口和主机为名称,直接显示为IP地址
# route -n

3)添加路由条目:

add [-net|-host] target [netmask Nm] [gwGw] [[dev] IfACE]例如:
要到10.0.0.0地址要经过192.168.10.1通过自己的eth1接口
# routeadd -net 10.0.0.0/8 gw 192.168.10.1 dev eth1
添加默认路由
# routeadd -net 0.0.0.0/0.0.0.0 gw 172.16.0.1
# routeadd default gw 172.16.0.1
4)删除路由条目:del[-net|-host] target [gw Gw] [netmask Nm] [[dev] If]示例:
#  routedel -net 10.0.0.8 gw 192.168.10.1 #删除一条路由
#  routedel default #删除默认路由
3、netstat命令1)显示路由表信息:netstat -rn-r: 显示内核路由表-n:数字格式
#  netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
172.16.0.0      0.0.0.0         255.255.0.0     U     1      0        0 eth0
192.168.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
0.0.0.0         172.16.0.1      0.0.0.0         UG    0      0        0 eth0
2)显示网络连接:netstat[OPTION]1)选项 -t:TCP协议相关连接,连接均有其状态。 -u:UDP相关的连接 -w:裸套接字 raw socket相关的连接 -l: 显示处于监听状态的连接 -n:以数字方式显示地址和端口,不需要解析为名称 -e:扩展格式,多余显示用户ID和相关套接字文件的inode -p:显示相关进程及PID 2)常用组合: -tan(显示所有tcp连接)
# netstat -tan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN
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
tcp        0      0 0.0.0.0:34296               0.0.0.0:*                   LISTEN
tcp        0      0 127.0.0.1:6010              0.0.0.0:*                   LISTEN
tcp        0      0 192.168.1.6:22              192.168.1.106:52900         ESTABLISHED
tcp        0      0 :::111                      :::*                        LISTEN
tcp        0      0 :::22                       :::*                        LISTEN
tcp        0      0 :::56182                    :::*                        LISTEN
tcp        0      0 ::1:631                     :::*                        LISTEN
tcp        0      0 ::1:6010                    :::*                        LISTEN
-tn(仅显示处于连接状态的tcp连接)
# netstat -tn
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0     52 192.168.1.6:22              192.168.1.106:52900         ESTABLISHED
-tnl(显示处于监听状态的tcp连接)
# netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN
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
tcp        0      0 0.0.0.0:34296               0.0.0.0:*                   LISTEN
tcp        0      0 127.0.0.1:6010              0.0.0.0:*                   LISTEN
tcp        0      0 :::111                      :::*                        LISTEN
tcp        0      0 :::22                       :::*                        LISTEN
tcp        0      0 :::56182                    :::*                        LISTEN
tcp        0      0 ::1:631                     :::*                        LISTEN
tcp        0      0 ::1:6010                    :::*                        LISTEN
-tunlp(处于监听状态的TCP和UDP连接并显示调用它们的进程和PID)
# netstat -tunlp





4、hostnamehostnamectl(CentOS 7))配置主机名
1)查看:hostname
2)配置:hostname HOSTNAME
注:当前系统有效,重启后无效;
3)hostnamectl命令:
hostnamectl status:显示当前主机名信息;
hostnamectl set-hostname:设定主机名,永久有效
4)编辑配置文件:/etc/sysconfig/network
HOSTNAME=<hostname>永久有效 5、配置DNS服务器指向:
配置文件:/etc/resolv.conf
nameserver DNS_SERVER_IP ---->(DNS服务器的地址)
注意:ping 地址解析是先找/etc/hosts,然后再找/etc/resolv.conf上的dns服务器查询。
二、iproute2系列命令
1、ip命令

用途:查看或管理路由、网卡设备、策略路由和隧道

使用格式:ip
[ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | address | route | netns}
注意:OBJECT和COMMAND都能简写,可被唯一识别即可。
例如:ip addr li等同于ip address list。
(1)ip link:网络设备配置
子命令:
set:修改设备属性
dev NAME(default)即dev也可不写
up and down:启用或者禁用设备
multicast on or multicast off:启用或禁用多播(组播)功能
name:重命名接口名称;注意:一般重命名需先禁用设备再改
mtu NUMBER:设置MTU的大小,以太网是1500
netns PID: ns是namespace,用于将接口移动到指定的名称空间;基于此机制可以构建一个大
的内部网络(虚拟网络)
show|list:显示设备属性。

(2)ip netns:管理网络名称空间
ip netns list
ip netns add NAME:创建指定的netns
ip netns del NAME:删除指定的netns
ip netns exec NAME COMMAND:在指定的netns中运行命令
(3)ip address:协议地址管理
子命令:

1)ip addr add [ local ] IFADDR dev IFACE
[label NAME]:为接口额外的地址指明标签
[broadcast ADDRESS]:广播地址;会根据IP和NETMASK计算得到,所以一般不用指出。
[scope SCOPE_VALUE]:
global:全局可用
link:接口可用
host:仅本机可用
注:可添加多个地址。
2) ip addr show IFACE
ifconfig显示不了多余的地址,指明标签label后才可以。而此命令可以显示出来

name一般是(设备名:编号)
# ip addr add 192.168.1.7/24 dev eth0 label eth0:0 scope global
# ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qle                 n 1000
link/ether 00:0c:29:c4:a4:84 brd ff:ff:ff:ff:ff:ff
inet 172.16.25.71/16 brd 172.16.255.255 scope global eth0
valid_lft forever preferred_lft forever
inet 192.168.1.7/24 brd 192.168.1.255 scope global eth0:0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fec4:a484/64 scope link
valid_lft forever preferred_lft forever
3)ip address delete - 删除地址
ip addr del IPADDR dev IFACE
用法与add相似

4)ip
address flush - 清除某接口的所有地址
ip addr flush dev IFACE
(4)ip route 路由管理
1)ip
route add - 添加路由条目
ip
route change - 改变路由条目
ip
route replace - 改变路由条目或者添加一个新的条目
以上三个命令的用法相同,故以add为例进行说明
ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]
说明:TYPE PREFIX 即指明IP和子网掩码,via GW 指明下一跳,dev IFACE指明网卡接口, src SOURCE_IP 即指明发送数据包出去的源地址,但是仅当一个网卡接口上有多个地址时指出
时才有意义。
# 从网卡eth1的10.0.20.200这个地址发往192.168.0.0网络的数据报文的下一跳是10.0.0.1
# ip route add 192.168.0.0/24 via 10.0.0.1 dev eth1  src 10.0.20.200
2)ip
route delete - 删除路由条目
ip route del TYPE PRIFIX
# ip route delete 192.168.1.0/24
注意:如果有多个指向192.168.1.0的路由条目要指明此条目关联的网卡接口,必要时还应指
出源地址。

3)ip
route show - 列出所有路由条目
# ip route show
192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1
172.16.0.0/16 dev eth0  proto kernel  scope link  src 172.16.25.67  metric 1
192.168.0.0/16 dev eth0  proto kernel  scope link  src 192.168.1.6
default via 172.16.0.1 dev eth0  proto static
4)ip
route flush - 清空路由表
5)ip
route get - 获取单个路由条目信息
ip
route get TYPE PREFIX
# ip route get 192.168.1.0/24
192.168.1.0 dev eth0  src 192.168.1.6
cache  mtu 1500 advmss 1460 hoplimit 64

2、ss命令ss
[options] [ FILTER ] 选项:-t:tcp协议相关的连接-u:udp协议相关的连接-w:裸套接字相关的连接-l:监听状态的连接-a:所有状态的连接-n:数字格式-p:相关程序和PID-e:扩展格式信息-m:内存用量(某个连接的内存使用相关信息)-o:显示计时器相关信息 注:此处ss命令与netstat显示内容相似,故不做举例。但值得一提的是ss作为netstat的替代工具

它的优势在于比netstat在大范围主机下性能要好。
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
EXPRSSION:dport=sport=
# ss -o state established '( dport = :22 or sport = :22 )'
Recv-Q Send-Q  Local Address:Port   Peer Address:Port
0      0       192.168.1.6:ssh      192.168.1.106:54918
timer:(keepalive,81min,0)
# ss -o state established '( dport = :ssh or sport = :ssh )'
Recv-Q Send-Q  Local Address:Port   Peer Address:Port
0      52      192.168.1.6:ssh      192.168.1.106:54918
timer:(on,239ms,0)
三、编辑配置文件来进行网络配置
1)IP地址、子网掩码、网关、DNS服务器地址等属性的配置文件(RedHat系列下)
/etc/sysconfig/network-scripts/ifcfg-NETCARD_NAME
例如:/etc/sysconfig/network-scripts/ifcfg-eth0
2)路由的相关配置文件:
/etc/sysconfig/network-scripts/route-NETCARD_NAME
需要用到非默认网关路由,且让其永久有效,编辑配置文件支持两种配置方式,但不可混用 (1)每行一个路由条目:
TARGET via
GW
192.168.0.0/24  via 192.168.1.1
即指要到192.168.0.0网络的报文发出的下一跳是192.168.1.1(2)每三行一个路由条目:ADDRESS NUM=TARGETNETMASK NUM=MASKGATEWAY NUM=NEXTHOP
ADDRESS0=192.168.0.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.1.1
即指要到192.168.0.0网络的报文发出的下一跳是192.168.1.1 3)配置文件的配置方式
1)可通过vim等编辑器来编辑
2)使用专有命令启动字符配置界面来配置
CentOS 6:system-config-network或者setup
CentOS 7:nmtui字符配置界面
4)ifcfg-NETCARD_NAME配置参数解释
DEVICE:此配置文件对应的设备的名称ONBOOT:在系统引导过程中,是否激活此接口UUID:此设备的唯一标识IPV6INIT:是否初始化IPV6BOOTPROTO:激活此接口时是用什么协议来配置接口属性,常用的有dhcp、bootp、static、none。TYPE:接口类型,常见的有Ethernet、Bridge等DNS1:第一DNS服务器指向;DNS2:第二DNS服务器指向DOMAIN:DNS搜索域IPADDR:IP地址PREFIX:地址掩码长度NETMASK:地址掩码HWADDR:硬件设备的MAC地址 USERCTL:是否允许普通用户控制此设备PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp服务器分配的dns服务器指向覆盖本地手动指向的DNS服务器指向;默认为允许(yes) NM_CONTROLLED:是否允许使用NetworkManager服务来控制接口;(CentOS 6 上非常有用) 注意:配置文件修改之后,如果需要生效,需要重启网络服务;
CentOS 6:service network restart
CentOS 7:systemctl restart network.service

注:本文测试结果均来自CentOS系统。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息