码迷,mamicode.com
首页 > 系统相关 > 详细

Linux网络配置之二ip、ss、网络相关配置文件

时间:2016-03-28 00:39:34      阅读:472      评论:0      收藏:0      [点我收藏+]

标签:ip   配置文件   ss   


本文续网络基础与Linux网络配置之一 ifconfig、route、netstat命令详解


ip命令


作用
ip是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具,例如ifconfig、route等,使用权限为超级用户。几乎所有的Linux发行版本都支持该命令。


格式
ip [ OPTIONS ] OBJECT { COMMAND | help }
   OBJECT := { link | addr | route | netns  }

   注:OBJECT可简写,各OBJECT的子命令也可简写


   OPTIONS:

    -V:显示指令版本信息;

    -s:输出更详细的信息;

    -f:强制使用指定的协议族;

    -4:指定使用的网络层协议是IPv4协议;

    -6:指定使用的网络层协议是IPv6协议;

    -0:输出信息每条记录输出一行,即使内容较多也不换行显示;

    -r:显示主机时,不使用IP地址,而使用主机的域名。


ip link

    ip link set - change device attributes 更改设备属性
      dev NAME (default):指明要管理的设备,dev关键字可省略;
      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命令显示网络设备的运行状态 缩写:show、list、lst、sh、ls、l

[root@bogon ~]# ip link show
[root@bogon ~]# ip -s link show #显示更详细信息


设置eth1网卡为启用状态

[root@bogon ~]# ip link set dev eth1 up


改变设备传输队列长度

[root@bogon ~]# ip link set dev eth0 txqueuelen 100



 改变网络设备MTU(最大传输单元)的值

[root@bogon ~]# ip link set dev eth0 mtu 1500


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 addr


ip address add--添加一个新的协议地址. 缩写:add、a

[root@bogon ~]# ip addr add 192.168.1.10/24 dev eth1


ip address delete--删除一个协议地址. 缩写:delete、del、d

[root@bogon ~]# ip addr del 192.168.1.10/24 dev eth1


ip address show--显示协议地址. 缩写:show、list、lst、sh、ls、l


[root@bogon ~]# ip addr list


ip address flush--清除协议地址. 缩写:flush、f

[root@bogon ~]# ip addr flush dev eth1


ip route


   ip route add -- 添加新路由
   ip route change -- 修改路由

   ip route replace -- 替换已有的路由

  缩写:add、a;change、chg;replace、repl

设置到网络192.168.2.0/24的路由经过网关192.168.1.1

[root@bogon ~]# ip route add 192.168.2.0/24 via 192.168.1.1

  

修改到网络192.168.2.0/24的直接路由,使其经过设备eth1

 [root@bogon ~]# ip route change 192.168.2.0/24 dev eth1


ip route delete-- 删除路由

  缩写:delete、del、d

删除上一节命令加入的路由

[root@bogon ~]# ip route del 192.168.2.0/24


ip route show -- 列出路由
    缩写:show、list、sh、ls、l

[root@bogon ~]# ip route list


ip route flush -- 擦除路由表

ip address flush - flush protocol addresses
  ip  addr  flush  dev  IFACE    

[root@bogon ~]# ip addr flush dev eth1


ip route get -- 获得单个路由 .缩写:get、g

[root@bogon ~]# ip route get 192.168.2.0
192.168.2.0 via 192.168.1.1 dev eth0  src 192.168.1.105 
    cache  mtu 1500 advmss 1460 hoplimit 64



ss命令

ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

当 服 务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。可能你不会 有 切身的感受,但请相信我,当服务器维持的连接达到上万个的时候,使用netstat等于浪费 生命,而用ss才是节省时间。

天 下 武功唯快不破。ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核 中 第一手的信息,这就确保了ss的快捷高效。当然,如果你的系统中没有tcp_diag,ss也可以正常运行,只是效率会变得稍慢。(但仍 然 比 netstat要快。)

1.命令格式:

ss [选项]

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)‘

 

[root@bogon ~]# ss -tan ‘(dport = :22 or sport = :22)‘

查看所有tcp相关的建立的连接

[root@bogon ~]# ss -tan state ESTABLISHED


常用组合选项 
-tan,  -uan,  -tnl,  -unl,  -tunlp ...

  



网络相关的配置文件:

配置文件:

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:激活此接口时使用什么协议来配置接口属性,常用的有dhcpbootpstaticnone

TYPE:接口类型,常见的有Ethernet, Bridge

DNS1:第一DNS服务器指向;

DNS2:备用DNS服务器指向;

DOMAINDNS搜索域;

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  SERVICE  {start|stop|restart|status}

CentOS 7systemctl  {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




本文出自 “涛声依旧” 博客,请务必保留此出处http://zhaoyongtao.blog.51cto.com/10955972/1757218

Linux网络配置之二ip、ss、网络相关配置文件

标签:ip   配置文件   ss   

原文地址:http://zhaoyongtao.blog.51cto.com/10955972/1757218

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!