linux--网络-1

Posted 我才是酷酷的飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的回应,所以只在后两次有

 

 

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为启用

路由的 Metric值表示 “花钱”,值越大,花钱越大,所以系统会挑花钱少的路走,比如有两条默认路由,那么Metric值小的路由生效。添加路由时,可以加上metric 参数,指定Metric值  

ss  socket statistics

格式:ss [OPTION]... [FILTER] 

  • -t: tcp协议相关 
  • -u: udp协议相关 
  • -w: 裸套接字相关 
  • -x:unix sock相关 
  • -l: listen状态的连接 
  • -a: 所有   显示处在listening 和 非listening 状态的套接字
  • -n: 数字格式
  • -r :解析数字地址/端口  
  • -p: 相关的程序及PID 
  • -e: 扩展的信息 
  • -m:内存用量 
  • -o:计时器信息 

 

FILTER :  [ state TCP-STATE ] [ EXPRESSION ] 

常见连接状态

  • LISTEN: 监听   
  • ESTABLISHED:已建立的连接   
  • FIN_WAIT_1   
  • FIN_WAIT_2   
  • SYN_SENT   
  • SYN_RECV   
  • CLOSED
  • connected – All the states except for listen and closed 

   ss -t4 state time-wait   列出处在 time-wait 状态的 IPv4 套接字 

   ss -nt state connected dport = :80     显示对方端口是 80的套接字

 EXPRESSION

  示例:’( dport = :ssh or sport = :ssh )’ 

  ss -at \'( dport = :ssh or sport = :ssh )\'    显示所有源端口或目的端口为 ssh 的套接字

  ss -o state established \'( dport = :http or sport = :http )\'   显示所有已建立 的HTTP连接 

匹配远程地址和端口号

    ss dst 192.168.25.100

    ss dst 192.168.25.100:50460

匹配本地地址和端口号

     ss src 192.168.25.140

 

路由配置文件

    /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

  

Linux下配置dns的三种方法

       1. HOST 本地DNS解析  vi /etc/hosts   eg:23.231.234.33 www.baidu.com

       2. 网卡配置文件DNS服务地址  vi /etc/sysconfig/network-scripts/ifcfg-eth0   eg:DSN1=\'114.114.114.114\'

       3. 系统默认DNS配置   vim /etc/resolv.conf   eg:nameserver 114.114.114.114

           系统解析的优先级 1>2>3

主机名的修改

 

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

            hostnamectl status     也查看主机名

      设置主机名:  hostnamectl set-hostname centos7.magedu.com  ///永久生效的

          或者修改    /etc/hostname文件  也是永久生效的          

 centos6: /etc/sysconfig/network

          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地址获取方式为手动设置

 

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

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

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

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

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

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

 

 也可以通过 nmcli 设置bond

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

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

 

 

网桥

 添加一个网桥设备

 

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

 

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

 

 

 

以上是关于linux--网络-1的主要内容,如果未能解决你的问题,请参考以下文章

[linux][c/c++]代码片段02

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装

20155307刘浩《网络对抗》逆向及Bof基础

20145301赵嘉鑫《网络对抗》逆向及Bof基础