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
命令,例:
各列的含义如下:
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
再查看本机路由表:
添加主机路由默认的掩码就是 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
。
或
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 协议的连接。
例 2:不反解显示 tcp 协议的连接。
可以看到例 1 中部分地址默认将端口反解为了 ssh
,可再使用 -n
选项指定不反解,如下:
例 3:显示所有 tcp 协议的连接。
netstat -t
默认显示的是已建立的 tcp 连接,如果要查看所有 tcp 连接,可使用 netstat -ta
,如下:
例 4:显示 udp 协议的连接。
显示路由表
使用格式如下:
netstat {--route|-r} [--extend|-e[--extend|-e]] [--verbose|-v] [--numeric|-n]
--route|-r:显示内核路由表;
--extend|-e:显示扩展信息;
--verbose|-v:显示详细信息;
--numeric|-n:不反解,以数字格式显示;
例 1:查看路由表。
显示接口统计数据
使用格式如下:
netstat -I<interface>
interface:接口(网卡)名;
netstat -i:显示所有接口的统计信息;
例 1:显示 eth0
的统计数据。
例 2:显示所有接口的统计信息。
评论区