在我们配置linux网络属性的时候,有一个非常常用的命令,就是ip命令。如何了解这个命令?通过rpm -qf 'which ip',查看ip命令由哪个包安装,通过rpm -ql iproute,查看iproute安装生成的文件。
ip命令常用的形式和参数
ip - show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
link OBJECT
ip link - network device configuration
set
dev IFACE
可设置属性
up and down:激活或禁用指定接口
ip link set dev eth0 down
show 当前物理接口的状态 mtu最大传输单元
[dev IFACE]:指定接口
[up]:仅显示处于激活状态的接口
ip addr
ip addr { add | del } IFADDR dev STRING
[label LABEL]:添加地址时指明网卡别名
[scope {global|link|host}]:指明作用域
global:全局有效
link:仅链接可用
host:本机可用
[broadcast ADDRESS]:指明广播地址
ip addr show dev eth0
实例:ip addr add 172.16.100.13/16 dev eth0,在原来的基础上添加
实例:ip addr replace 172.16.100.14/16 dev eth0,没有指定替换会变成添加
实例:ip addr del 172.16.100.14/16 dev eth0,删除地址
实例:ip addr add 172.16.100.13/16 dev eth0 label 'eth0:0'
ip addr show显示在eth0中
ifconfig会单独显示别名接口信息
实例:ip addr del 172.16.100.13/16 dev eth0 label eth0:0
ip addr show - look at protocol addresses
[dev DEVICE]
[label PATTERN]
[primary secondary]
实例:ip addr show dev eth0 to 172.16
实例:ip addr add 172.16.100.13 dev eth0 label eth0:0
实例:ip addr show dev eth0
实例:ip addr show dev eth0 primary
实例:ip addr show dev eth0 secondary
ip addr flush - flush protocol addresses
使用格式同show
ip addr flush dev eth0 label eth0:0
ip route - routing table management
ip route add
实例:ip route add 192.168.1.3 via 172.16.0.1 dev eth0
通过ip route show查看效果
实例:ip route add 192.168.0.0/24 via 172.16.0.1
通过ip route show查看效果
添加路由: ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:
主机路由:IP
网络路由:NETWORK/MASK
添加网关:ip route add default via GW dev IFACE
ip route delete
删除路由:ip route del TARGET
实例:ip route del 192.168.1.3
通过ip route show查看
或者ip route list查看
实例:ip route del 192.168.0.0/24
通过ip route list查看
实例:ip route add default via 172.16.0.1
通过ip route list查看
或者route -n查看
实例:ip route del default
通过route -n查看
ip route show,主要用于查看路由的相关信息。
ip route flush
[dev IFACE]
[via PREFIX]
ss命令:
网络状态查看工具,用来取代netstat,实验证明ss对进程的影响要小得多。
格式:ss [OPTION]... [FILTER]
选项
-t tcp协议相关
-u udp协议相关
-w 裸套接字相关
-x unix sock相关
-l listen状态得连接
-a 所有
-n 数字格式
-p 相关得程序即PID
-e 扩展的信息
-m 内存用量
-o 计时器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION]
TCP的常见状态
tcp finite state machine
tcp的有限状态机
LISTEN:监听
ESTABLISHED:已建立的连接,正在通信中的连接
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
EXPRESSION:
dport =
sport =
示例: ‘(dport = :ssh or sport = :ssh )’
常用组合
-tan -tanl -tanlp -uan
ss -tan
ss -tan state ESTABLISHED
ss -tan state LISTEN
修改配置文件进行网络配置的方式
IP MASK GW DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相关的配置文件:/etc/sysconfig/network-scripts/route-IFACE
/etc/sysconfig/network-scripts/ifcfg-IFACE支持的指令和参数
DEVICE:此配置文件应用到的设备
HWADDR:对应设备的MAC地址
BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp,static,none,bootp
NM_CONTROLLED:NM是networkmanager的简写,此网卡是否接受NM控制,centos6建议为no
/etc/rc.d/init.d/network(不支持桥接和多播) /etc/rc.d/init.d/NetworkManager
ONBOOT:在系统引导时是否激活此设备
TYPE:接口类型:常见的有Ethernet,Bridge
UUID:设备的唯一标识
IPADDR:指明IP地址
NETMASK:子网掩码
GATEWAY:默认网关
DNS1:第一个DNS服务器指向
此处优先于/etc/resolov
DNS2:第二个DNS服务器指向
USERCTL:普通用户是否可控制此设备
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolov.conf文件中的内容
通过route -n查看,会发现配置文件修改后, 没有立即生效
通过ifconfig eth0 down,然后 ifconfig eth0 up发现生效
或者service network restart也可以生效
/etc/rc.d/init.d/network restart和上面的命令效果是一样的
路由的配置文件
通过修改在/etc/sysconfig/network-scripts/route-IFACE
两种风格:
(1)TARGET via GW
实例:vim route-eth0
192.168.0.0/24 via 172.16.0.1
route -n查看发现并没有生效
service network restart,发现正式生效
(2)每三行定义一条路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
实例:vim route-eth0
ADDRESS0=192.16.20.0
NETMASK0=255.255.255.0
GATEWAY0=172.16.0.1
ADDRESS1=192.16.30.0
NETMASK1=255.255.255.0
GATEWAY1=172.16.0.1
给网卡配置多地址
ifconfig
ifconfig IFACE_ALIAS
实例:ifconfig eth0:0 192.168.0.22/24 up
ping 192.168.0.22,发现生效
但是service network restart 就没了
ip
ip addr add
配置文件
ifcfg-IFACE_ALIAS
DEVICE=IFACE_ALIAS
注意:网关别名不能使用dhcp协议引导
网络属性配置tui(text user interface)
system-config-network-tui
不会立即生效,重启网络才会生效
也可以使用setup找到
注意:记得重启网络服务方能生效
配置当前主机的主机名
hostname [HOSTNAME]
/etc/sysconfig/network
HOSTNAME=
不会立即生效,重启后才会生效
NETWORKING参数,整个系统接入网络的总开关
网络接口识别并命名相关的udev配置文件
/etc/udev/rules.d/70-persistent-net.rules
卸载网卡驱动
modprobe -r e1000
装载网卡驱动
modprobe e1000
实例:将eth0,eth1两个配置互换
在70-persistent-net.rules中有相关信息
可以通过lsmod查看信息
发现网卡驱动,然后将网卡驱动拆掉, modprobe -r e1000
重新装上,modprobe e1000