linux基础之网络基础配置

时间:2024-04-08 18:37:14
基础命令:ifconfig/route/netstat,ip/ss,nmcli

一、ifconfig/route/netstat相关命令

1.  ifconfig - configure a network interface基本用法:

ifconfig [interface]
# ifconfig -a  //查看本机所有网卡配置相关信息
          # ifconfig IFACE [up|down]  
   比如:
      ifconfig eth0  //查看某个网卡的配置相关信息
   ifconfig interface [aftype] options | address...
# ifconfig IFACE IP/mask [up|down]   //设置网络ip及子网掩码,这里子网掩码为长度
# ifconfig IFACE IP newmask MASK  //设置网络ip及netmask,这里子网掩码为具体netmask
          # ifconfig IFACE {down | up}  //启用或停用网卡设备
          实例:ifconfig eth0 down;ifconfig eth0 up  //重新启用网卡设备
          
          启用混杂模式:[-]promisc  
实例:
# ifconfig eth0 192.168.0.108/24 //修改ip地址为指定ip地址
或 # ifconfig eth0 192.168.0.108 netmask 255.255.255.0

2.  route - show / manipulate the IP routing table

基本用法:
查看路由: route -n
添加路由: route add
删除路由: route del
实例:
添加主机路由: 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 172.16.0.1 dev eth0
或#route add -net 192.168.0.0/24 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
删除路由:
删除主机路由: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
DNS服务器指定: /etc/resolv.conf
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
  正解测试dns:dig -t A www.ckh.com
  反解测试dns:dig -x IP

3. netstat - 显示网络连接,路由表,接口状态,伪装连接,网络链路信息和组播成员组

显示网络连接:
netstat [--tcp|-t][--udp|-u][--raw|-w][--listening|-l][--all|-a][--numeric|-n][--extend|-e[--extend|-e]][--program|-p]
-t: tcp协议相关
-u:udp协议相关
-w: raw socket相关
-l: 处于监听状态
-a: 所有状态
-n: 以数字显示ip及端口
-e: 扩展格式
-p: 显示相关进程及PID 常用组合: -atn, -uan, -tnl, -unl
显示路由信息:netstat {--route|-r}[--numeric|-n]
-r: 显示内核路由表
-n: 数字格式 显示接口统计数据:netstat {--interfaces|-i} [iface] [--all|-a][--numeric|-n]
# netstat -i
# netstat -I IFACE

二、ip/ss命令

1.  ip - show / manipulate routing, devices, policy routing and tunnels

基本用法:ip [ OPTIONS ] OBJECT { COMMAND | help }
   OBJECT := {link | addr | route}
ip link - network device configuration
set  //设置网络接口的激活与禁用
dev IFACE
可设置属性:
up and down : 激活或禁用指定接口
show
[dev IFACE]
[up]: 仅显示处于激活状态的接口 实例:
  ip link set dev eth0 down  //禁用eth0接口
  ip link set dev eth0 up  //启用eth0接口
  ip link show  //查看接口状态
ip address - protocol address management
ip addr { add | del } IFADDR dev STRING
[label LABEL]: 添加地址时指明网卡别名
[scope {global | link | host}] :指明作用域
                 global: 全局可用
link: 仅链接有用
host: 仅本机可用
[broadcast ADDRESS]
ip address show - look at protocol address
[dev DEVICE]
[label PATTERN]
[primary and secondary]
实例:
  ip addr show  //显示地址
  ip addr show dev eth0  //显示指定网卡的地址
  ip addr add 172.16.100.13/16 dev eth0  //增加一个ip地址
  ip addr del 172.16.100.14/16 dev eth0  //删掉一个ip地址
  ip addr add 172.16.100.13/16 dev eth0 label 'eth0:0'  //增加了一个网卡设备的别名
  ip addr del 172.16.100.13/16 dev eth0 label eth0:0  //删除定义别名的ip
ip route - routiing table management
ip route add
添加路由: 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 show
ip route flush
[dev IFACE]:
[via PREFIX]:   实例:
    ip route add 192.168.1.3 via 172.16.0.1 dev eth0  //增加一个主机路由
    ip route add 192.168.0.0/24 via 172.16.0.1 dev eth0  //增加一个路由 
    ip route del 192.168.0.0/24  //删除一个路由
    ip route add default via 172.16.100.12  //添加一个默认路由
    ip route del default  //删除默认路由

2.  ss - another utility to investigate sockets

基本用法:
    ss命令:ss [OPTION]...[FILTER]
选项:
-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x: unix sock相关
-l: linten状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m: 内存信息
-o: 计时器信息 [FILTER] := [ state TCP-STATE ][ EXPRESSION ]
 常用组合: -atn, -atnl, -atnlp, -uan
给网卡配置多地址:
ifconfig
         实例:
            ifconfig eth0:0 192.168.0.22/24
ip
          实例:
            ip addr add 192.168.0.1/24 dev eth0 label 'eth0:0'
配置文件:
       实例:
             # cd /etc/sysconfig/network-scripts
             # cp ifcfg-eth0 ifcfg-eth0:0
             # vim ifcfg-eth0:0  //修改配置文件
             # service network restart

三、nmcli命令

1.  nmcli - command-line tool for controlling NetworkManager

基本用法:nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
connection - start,stop,and manage network connections
[root@alen ~]# nmcli device status  //查看网卡连接状态
DEVICE TYPE STATE CONNECTION
ens33 ethernet 连接的 ens33
lo loopback 未托管 --
[root@alen ~]# nmcli device show ens33  //查看ens33网络连接相关信息
GENERAL.DEVICE: ens33
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:46:61:4F
GENERAL.MTU: 1500
GENERAL.STATE: 100 (连接的)
GENERAL.CONNECTION: ens33
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveCo
WIRED-PROPERTIES.CARRIER: 开
IP4.ADDRESS[1]: 192.168.0.114/24
IP4.GATEWAY: 192.168.0.1
IP4.ROUTE[1]: dst = 0.0.0.0/0, nh = 192.168.0.1, mt =
IP4.ROUTE[2]: dst = 192.168.0.0/24, nh = 0.0.0.0, mt =
IP4.DNS[1]: 192.168.0.1
IP4.DOMAIN[1]: www.tendawifi.com
IP6.ADDRESS[1]: fe80::c547:7f8e:8399:2a8e/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = ff00::/8, nh = ::, mt = 256, table
IP6.ROUTE[2]: dst = fe80::/64, nh = ::, mt = 256
如何修改IP地址等属性:
# nmcli connection modify IFACE [+|-]setting.property value
setting.property:
ipv4.addresses
ipv4.gateway
ipv4.dns1
ipv4.method
manual
实例:
   nmcli connection modify ens33 ipv4.addresses 192.168.0.105/24  //修改网卡地址
   nmcli con down ens33;nmcli con up ens33  //需要重新启用网卡,配置的地址才生效   
  
   nmcli con modify ens33 -ipv4.addresses   //移除某个ip地址    nmcli con modify ens33 +ipv4.dns 192.168.0.1  //增加一个dns

四、配置文件的修改

IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相关的配置文件: /etc/sysconfig/network-scripts/rout-IFACE  //默认没有这个文件,可以添加,比如route-ens33
/etc/sysconfig/network-scripts/ifcfg-IFACE:
DEVICE: 此配置文件应用到的设备:
HWADDR: 对应的设备的MAC地址
BOOTPROTO: 激活此设备时使用的地址配置协议,常用的dhcp,static,none,bootp
NM_CONTROLLED: NM时NetworkManager的简写:此网卡是否接受NewrokManager控制: Centos6建议为no
ONBOOT: 在系统引导时是否激活此设备
TYPE="接口类型: 常见的有Ethernet,Bridge"
UUID: 设备的唯一标识 IPADDR: 指明IP地址
NETMASK: 子网掩码
GATWAY: 默认网关
DNS1: 第一个DNS服务器指向
DNS2: 第二个DNS服务器指向
       
       DEFROUTE: 指定默认路由,要给出上面的GATWAY
USERCTL: 普通用户是否可激活此设备
PEERDNS: 如果BOOTPROTO的值为dhcp,是否允许dhcp server分配的dns服务器指向信息直接覆盖至
/etc/resolv.conf文件中

/etc/sysconfig/network-scripts/route-IFACE  //添加路由配置文件
    两种风格:
      1.TARGET via GW

      2.每三行定义一条路由信息
        ADDRESS#=TARGET
        NETMASK#=mask
        GATEWAY#=GW

配置完,需要重启网络服务,配置文件才生效
  比如: CentOS6: service network restart或者/etc/rc.d/int.d/network restart
CentOS7: systemctl restart network.service