linux--网络-1

cat /etc/services

查看常见端口对应的服务

查一查某个端口号,是哪个进程在用  lsof  -i :6010  

49152-65535:动态端口或私有端口,客户端程序随机使用的端口  其范围的定义:

/proc/sys/net/ipv4/ip_local_port_range    

 TCP 三次握手

seq是发给对方包的序号,ack是希望对方下次发给我包的序号

SYN 第一次通信都要有SYN=1,所以只在前两次握手 有SYN

ACK是对SYN的回应,所以只在后两次有

linux--网络-1

sync半连接和accept全连接队列 

ss –lnt 

/proc/sys/net/ipv4/tcp_max_syn_backlog 未完成连接队列大小,建议调整大小为1024以上   

/proc/sys/net/core/somaxconn 完成连接队列大小,建议调整大小为1024以上

注意:以前老的命令如 ifconfig  route  netstat   都不提倡使用了,提倡使用新包iproute包所安装的一些命令如  ip: object {link, addr, route}, ss, tc 

ifconfig [interface]    //显示网卡信息,默认只显示激活网卡的信息

ifconfig -a     //显示所有网卡信息,包括关闭的网卡

ifconfig IFACE [up|down]       //    ifconfig  eth1  down

ifconfig interface [aftype] options | address ...         

ifconfig IFACE IP/NETMASK [up]     //临时设置 ip   ifconfig  eth1  1.1.1.1/24

ifconfig IFACE IP netmask NETMASK        //  ifconfig  eth1  1.1.1.1 255.255.255.0

ifconfig  eth1:123  1.1.1.1/24   //临时增加ip,同一块网卡增加了ip

route 

查看:route -n

添加:route add 

目标:192.168.1.3  网关:172.16.0.1 

  route add -host 192.168.1.3 gw 172.16.0.1 dev eth0

目标:192.168.0.0 网关:172.16.0.1     

  route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0   

     route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0 

默认路由,网关:172.16.0.1 

  route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1 

  route add default gw 172.16.0.1

删除:route del 

  route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

目标:192.168.1.3  网关:172.16.0.1 

  route del -host 192.168.1.3

目标:192.168.0.0 网关:172.16.0.1 

  route del -net 192.168.0.0 netmask 255.255.255.0

默认路由,网关172.16.0.1 

  route del default gw 172.16.0.1

netstat

  •  -t: tcp协议相关 
  • -u: udp协议相关 
  • -w: raw socket相关 
  • -l: 处于监听状态 
  • -a: 所有状态 
  • -n: 以数字显示IP和端口 
  • -e:扩展格式 
  • -p: 显示相关进程及PID
  • 显示路由表  netstat -nr

ip

  ip [ OPTIONS ] OBJECT { COMMAND | help } 

  OBJECT := { link | addr | route } 

  ip addr 查看所有网卡所有地址

  ip addr  add  1.1.1.1/24 dev eth1    给eth1网卡增加其他的ip,是增加啊

  ip addr  add  1.1.1.1/24 dev eth1 label eth1:123    给eth1网卡增加其他的ip,并且起个别名eth1:123

  ip addr del   1.1.1.1/24 dev  eth1    删除eth1网卡上的1.1.1.1 ip 

  ip  a   flush  dev  eth1    清除eth1上的所有ip

  ip  link  set  eth1  down    把网卡关掉

  ip  link  set  eth1  name  eth100   修改网卡名称,需要先把网卡关掉

ip route add 192.168.0.0/24 via 172.16.0.1   

ip route add 192.168.1.13 via 172.16.0.1

ip route add  default via 172.16.0.1   //添加默认路由

  ip route del 192.168.0.0/24 via 172.16.0.1    //删除路由

  ip route flush [dev IFACE]  [via PREFIX]   //清空路由表

              ip route flush dev eth0 

linux想启用路由转发功能(当路由器)

修改内核参数   /proc/sys/net/ipv4/ip_forward  1为启用

ss

  • -t: tcp协议相关 
  • -u: udp协议相关 
  • -w: 裸套接字相关 
  • -x:unix sock相关 
  • -l: listen状态的连接 
  • -a: 所有 
  • -n: 数字格式 
  • -p: 相关的程序及PID 
  • -e: 扩展的信息 
  • -m:内存用量 
  • -o:计时器信息 

linux--网络-1

路由配置文件

  /etc/sysconfig/network-scripts/route-IFACE 

  如:10.0.0.0/8 via 172.16.0.1 

  注意:需service network restart生效 

给网卡增加其他ip与别名

关闭NetworkManager服务 

创建 ifcfg-eth1:123 文件

  写上网卡的信息,肯定越简单越好,只需要配个ip

然后重启网卡服务

Linux ip 可以手动配置一个 还能自动获取一个,但是自动获取的只能在主配置文件里  

  centos6 修改网卡名称:网卡名字相关文件:vim /etc/udev/rules.d/70-persistent-net.rules (需要重启系统)

Centos7修改网卡名称

  Centos7 修改网卡名称  默认7采用的网卡命名方式为ens33之类的,没有按照顺序来,不是很习惯,所以可以修改为传统的eth0

  先把网卡的配置文件改掉,(网卡文件名称,配置文件中的设备名与name)

  然后按照下面的步骤修改grub

  必要时添加文件 vim /etc/udev/rules.d/70-persistent-net.rules  (这一步 可以不用做。必要时)

  写入一下内容 SUBSYSTEM=="net",ACTION=="add",DRIVERS=="?*",ATTR{address}=="00:0c:29:47:a4:e9",ATTR{type}=="1" ,KERNEL=="eth*",name="eth0"   //网卡与名字对应关系,只需要修改mac地址与后面的name

      (1) 编辑/etc/default/grub配置文件  GRUB_CMDLINE_LINUX="rhgb quiet net.ifnames=0"   // 在rhgb quiet后面增加 

          或:修改/boot/grub2/grub.cfg

      (2) 为grub2生成其配置文件  grub2-mkconfig -o /boot/grub2/grub.cfg

      (3) 重启系统    

sed -rn ‘/^[[:space:]+linux16]/s#(.*)#\1 我想假加的字符串 #p‘ /boot/grub2/grub.cfg   //找到linux16的行,在行的最后面加上你想要的东西

sed -rn ‘/^[[:space:]+linux16]/s#(.*)#\1 net.ifnames=0 #p‘ /boot/grub2/grub.cfg   //这个命令会把网卡名字改为传统的网卡 eth1.。。。

sed -rn ‘/rhgb quiet/s#(.*)(rhgb quiet)("$)#\1\2 int int \3#p‘ /etc/default/grub

dns

 配置文件 /etc/resolv.conf

主机名的修改

hostname  可以查看主机名也可以设置主机名(临时设置)

 centos6: /etc/sysconfig/network

 centos7: /etc/hostname 

     /etc/hosts   作用类似于 dns,把名字和ip地址做解析,所以直接在这里写好,就不用连接dns了

/etc/hostname与/etc/hosts的区别

  • /etc/hostname中存放的是主机名
  • /etc/hosts存放的是域名与ip的对应关系,域名与主机名没有任何关系,你可以为任何一个IP指定任意一个名字

Linux系 统在向DNS服务器发出域名解析请求之前会查询/etc/hosts文件,如果里面有相应的记录,就会使用hosts里面的记录。由此,/etc /hosts于设置hostname是没直接关系的,仅仅当你要在本机上用新的hostname来映射自己的IP时候才会用到/etc/hosts文件。 两者没有必然的联系。

网卡绑定bond

  • Mode 0 (balance-rr)     
  • 轮转(Round-robin)策略:从头到尾顺序的在每一个slave     接口上面发送数据包。本模式提供负载均衡和容错的能力
  • Mode 1 (active-backup)     
  • 活动-备份(主备)策略:只有一个slave被激活,当且仅当活动的slave接口 失败时才会激活其他slave.为了避免交换机发生混乱此时绑定的MAC地址只有 一个外部端口上可见
  • Mode 3 (broadcast)     
  • 广播策略:在所有的slave接口上传送所有的报文,提供容错能力
  • active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特 殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需 要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和 EtherChannel 

做法:

新建 网卡文件ifcfg-bond0

 内容还是一般的网卡内容,该怎么配就怎么配 ,加入下面的内容

BONDING_OPTS=  “miimon=100  mode=1”     

mode    Mode几

miimon  是用来进行链路监测的   100ms

在需要绑定的网卡里面加入下面的,加入之后,这个网卡的ip设置就无效了

MASTER=bond0

SLAVE=yes

centos7下 推荐使用的工具  nmcli   ----networkmanager  client

    nmcli   有很多子命令 其中用的最多的就是 connection  device 

      device 表示链路层的信息  

            nmcli device

            nmcli device show eth0

      connection  表示网络层的信息

            nmcli connection  

            nmcli connection  show  eth1

当我们在测试环境中,经常需要修改网卡地址,一会改过来改过去的,很烦。所以通过nmcli工具可以 为一个网卡设定多个方案,只需要用哪个就启用那个就OK了。

如下命令 我们为eth1网卡 添加了名字为eth1-test的方案,类型为以太网,ip地址获取方式为手动设置

linux--网络-1

设置好之后,想要启用的话,nmcli connection   up  eth1-test  //它启动之后,另外的就会自动关闭

他本质上还是创建一个 同名的eth1-test文件,当然我们也可以自己创建一个这个文件 然后  nmcli connection reload 重新加载一下 就有了。

删除的话  nmcli connection delete  eth1-test   会自动切换

linux--网络-1

 上面的是 添加一个自动获取的方案

 当然还可以为某一个方案加地址,多个地址

为eth1-test方案 增加地址,加地址本质上还是修改了配置文件

linux--网络-1

 也可以通过 nmcli 设置bond

添加一个bond   ifname指的是生成的bond设备名

linux--网络-1

然后将两个网卡加进去就欧了,这里用到的本质是,给eth0  eth1网卡都增加了一个方案,而这个方案就是bond模式,到时候一切换,就OK了

linux--网络-1

网桥

 添加一个网桥设备

 linux--网络-1

给eth0网卡 添加一个叫mybr0-eth0的方案,类型为br,并且加到br0网桥里

linux--网络-1

 这种通过nmcli实现的网桥 是写到配置文件里的,可以保存的

 抓包

tcpdump -i eth0  icmp  -nn  //抓包

相关推荐