本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名原文链接~~~

Linux基础(41)之使用ifcfg系列命令(ifconfig、route、netstat)来配置网络属性

微信搜索 zze_coding 或扫描 👉 二维码关注我的微信公众号获取更多资源推送:


ifconfig命令

介绍

ifconfig 全称 network interfaces configuring,即网络接口配置,它可用来配置与查看网络接口相关属性。
ifconfig 命令的使用格式如下:

ifconfig [interface]
ifconfig interface [aftype] options | address ...

使用

查看所有活动状态接口信息

直接执行 ifconfig 命令可以显示本机所有处于活动状态的接口信息,如:

[root@zze ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:45:2C:8B  
          inet addr:10.0.0.201  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe45:2c8b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:96 errors:0 dropped:0 overruns:0 frame:0
          TX packets:91 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:13346 (13.0 KiB)  TX bytes:9541 (9.3 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:720 (720.0 b)  TX bytes:720 (720.0 b)

查看所有接口状态信息

它还支持 -a 选项,可查看到本机上所有接口信息:

[root@zze ~]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:0C:29:45:2C:8B  
          inet addr:10.0.0.201  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe45:2c8b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:223 errors:0 dropped:0 overruns:0 frame:0
          TX packets:177 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:24368 (23.7 KiB)  TX bytes:22041 (21.5 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:720 (720.0 b)  TX bytes:720 (720.0 b)

pan0      Link encap:Ethernet  HWaddr E2:C6:3B:95:58:F0  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

查看指定接口状态信息

也可以使用 ifconfig <interface>查看指定接口信息,如下:

[root@zze ~]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:45:2C:8B  
          inet addr:10.0.0.201  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe45:2c8b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6144 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1047 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:8594689 (8.1 MiB)  TX bytes:75026 (73.2 KiB)

配置指定接口IP/mask

使用 ifconfig 配置指定接口的 IP 格式如下:

ifconfig eth0 <IP>/<mask> [up/down]
    IP:IP地址;
    mask:子网掩码;
    up/down:
        up:在修改 IP 地址的同时启用该接口;
        down:在修改 IP 地址的同时停用该接口;

以修改本机 IP 为 10.0.0.201 为例:

ifconfig eth0 10.0.0.201/24
或
ifconfig eth0 10.0.0.201|255.255.255.0

该方式修改 IP 会立即生效。

启用混杂模式

启用指定接口的混杂模式格式如下:

ifconfig <interface> [-]promisc
    interface:指定网卡;
    promisc:表示启用混杂模式,使用 - 号时表示禁用;

混杂模式是实现网络监控功能的必要一步,开启混杂模式后,即使主机接受到的报文的目标 MAC 地址不是自己,它也依旧会接收。

配置多地址

给指定网卡配置多地址的格式如下:

ifconfig <interface>:<alias> <ip>/<mask>

例:给 eth0 添加地址 10.0.1.4

[root@zze]# ifconfig eth0:0 10.0.1.4

route命令

介绍

每一个主机如果想要与非本地网络的主机进行通信,就需要添加路由,而 route 命令就是用来管理路由的命令。

使用

查看本机路由表

每一个主机拥有路由表,主机的路由表主要是用来帮助主机与外部其它主机进行通信,而路由器的路由表的作用是实现网络间报文转发。
查看本机路由表可使用 route -n 命令,例:

image.png

各列的含义如下:

  • Destination:目标地址;
  • Gateway:到达目标地址需要经过的网关;
  • Gemmask:掩码;
  • Flags:路由状态,U:表示是启用状态;G:表示该条路由指定了网关;H:表示该条路由是一条主机路由;
  • Metric:度量值,如果到达目标地址有多条路由可以到达,那么可以使用它手动定义到达各个路由的开销;
  • Iface:该条路由使用的网卡;

添加路由

使用 route 命令添加路由格式如下:

route  [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [[dev] If]
    -A family:指定是 IPv4 还是 IPv6,默认是 IPv4;
    -net|-host:指定 -net 则是网络路由,指定 -host 则是主机路由;
    target:指定目标地址,如果是 -net ,则是网络地址,如果是 -host,则是主机地址;
    netmask Nm:指定子网掩码,可以省略,默认使用本机掩码;
    gw Gw:指定网关;
    metric N:度量值;
    dev If:指定该条路由使用本地的哪个网卡;

本地网关必须与本机在同一个网络中。

例 1:添加一条主机路由,目标主机 IP 为 192.168.1.3,所经网关为 10.0.0.1,使用本地的 eth0 网卡。

[root@zze ~]# route add -host 192.168.1.3 gw 10.0.0.1 dev eth0

再查看本机路由表:

image.png

添加主机路由默认的掩码就是 32(255.255.255.255)。

例 2:添加一条网络路由,目标主机 IP 为 192.168.0.0,掩码为 255.255.255.0,所经网关为 10.0.0.1,使用本地的 eth0 网卡。

[root@zze ~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.0.0.1 dev eth0

例 3:添加一条默认路由,网关为 10.0.0.254

[root@zze ~]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.0.0.254 dev eth0

添加默认路由还可使用如下方式:

route add default gw 10.0.0.254

当默认路由存在多个时,仅匹配第一个默认路由。

删除路由

使用 route 命令删除路由格式如下:

route  [-A family] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]
    -A family:指定删除的路由类型是 IPv4 还是 IPv6,默认是 IPv4;
    -net|-host:-net 则是删除网络路由,指定 -host 则是删除主机路由;
    target:要删除路由的目标地址;
    gw Gw:要删除路由的网关;
    netmask Nm:要删除路由的掩码;
    metric N:要删除路由的度量值;
    dev if:要删除路由所使用的网卡;

例 1:删除目标地址为 192.168.1.3 的主机路由。

root@zze ~]# route del -host 192.168.1.3

例 2:删除目标地址为 192.168.0.0 子网掩码为 255.255.255.0 的网络路由。

[root@zze ~]# route del -net 192.168.0.0/24

[root@zze ~]# route del -net 192.168.0.0 netmask 255.255.255.0

DNS服务器指定

DNS 服务器的指定是在 /etc/resolv.conf 中,格式如下:

nameserver <DNS_SERVER_IP1>
nameserver <DNS_SERVER_IP2>
nameserver <DNS_SERVER_IP3>

即可以指定三个 DNS 服务器。
例:查看本机配置的 DNS 服务器地址。

[root@zze ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search host
nameserver 10.0.0.254

正解&反解

  • 正解:FQDN --> IP;
  • 反解:IP --> FQDN;

FQDN 全称为“Fully Qualified Domain Name”,即全限定域名,同时带有主机名和域名的名称,如 www.zze.xyz.
正、反解都可以使用 dig 命令,格式如下:

正解:dig -t A <FQDN>
反解:dig -x <IP>

还可使用 host 命令来进行正反解,格式如下:

正解:host -t A <FQDN>
反解:host -t PTR <IP>

例:正解 www.zze.xyz

image.png

image.png

netstat命令

netstat 命令可以用来显示网络连接、查看路由表、接口数据统计、地址伪装连接、组播成员关系管理。

显示网络连接

使用格式如下:

netstat [--tcp|-t]   [--udp|-u]   [--raw|-w]   [--listening|-l]   [--all|-a]   [--numeric|-n]  [--numeric-hosts] [--numeric-ports][--numeric-ports] [--extend|-e[--extend|-e]] [--program|-p] 
    --tcp|-t:显示 tcp 相关连接;
    --udp|-u:显示 udp 相关连接;
    --raw|-w:显示裸套接字相关连接,表示不经过传输层,如应用层直接调用 IP 来实现数据传输;
    --listening|-l:显示监听状态的相关连接;
    --all|-a:显示所有连接,默认值;
    --numeric|-n:不反解 IP 地址;
    --numeric-hosts:不反解主机名;
    --numeric-ports:不反解端口;
    --extend|-e:扩展格式的接口信息;
    --program|-p:由哪一个程序建立的此连接;
    
不加任何参数则是显示 unix 套接字的连接。

例 1:显示已建立的 tcp 协议的连接。

image.png

例 2:不反解显示 tcp 协议的连接。
可以看到例 1 中部分地址默认将端口反解为了 ssh,可再使用 -n 选项指定不反解,如下:

image.png

例 3:显示所有 tcp 协议的连接。
netstat -t 默认显示的是已建立的 tcp 连接,如果要查看所有 tcp 连接,可使用 netstat -ta,如下:

image.png

例 4:显示 udp 协议的连接。

image.png

显示路由表

使用格式如下:

netstat {--route|-r} [--extend|-e[--extend|-e]]  [--verbose|-v]  [--numeric|-n] 
    --route|-r:显示内核路由表;
    --extend|-e:显示扩展信息;
    --verbose|-v:显示详细信息;
    --numeric|-n:不反解,以数字格式显示;

例 1:查看路由表。

image.png

显示接口统计数据

使用格式如下:

netstat -I<interface>
    interface:接口(网卡)名;

netstat -i:显示所有接口的统计信息;

例 1:显示 eth0 的统计数据。

image.png

例 2:显示所有接口的统计信息。

image.png

# Linux 基础  

如果这篇文章对您有帮助,可点击下方链接分享给你的朋友们😋,如果遇到问题欢迎评论、留言~~~😇

评论

公众号:zze_coding

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×