网络配置命令
Linux系统中最常用的网络配置命令包括 ifconfig route 其中 ifconfig 用来查看和配置网络接口 通常是网卡 信息 包括网络接口设备的 IP 地址 掩码等 route 用来管理 Linux系统内核中的路由表 它最大的用途就是用来设定静态的路由表项 通常是在系统用 ifconfig 配置网络接口后 用它来设定主机或者一网段的 IP 地址应该通过什么接口发送等
1.1 ifconfig
ifconfig 的语法为
ifconfig [-a] [-V] [-s] <interface> [[<AF>] <address>]
[[-]broadcast [<address>]]
[netmask <address>]
[up|down]
其中 interface 为网卡名 address 为 IP 地址 broadcast 表示设置广播地址 其后的 address 为广播地址的 IP netmask 表示设置子网掩码其后的 address 为子网掩码的 IP up down 设置当前网卡的状态 up表示启用当前网卡 down 表示关闭当前网卡
Ifconfig 的常用参数说明如下
-a 查看所有网卡状态
-V 查看 ifconfig 命令的版本信息
-s 查看统计信息
示例
1 将第一块网卡的 IP 地址设置为 192.168.0.1
ifconfig eth0 192.168.0.1 格式 ifconfig 网络设备名 IP 地址
2 暂时关闭或启用网卡
关闭第一块网卡 ifconfig eth0 down
启用第一块网卡 ifconfig eth0 up
3 将第一块网卡的子网掩码设置为 255.255.255.0
ifconfig eth0 netmask 255.255.255.0 格式 ifconfig 网络设备名 netmask
子网掩码
我们也可以同时设置 IP 地址和子网掩码
ifconfig eth0 192.168.0.1 netmask 255.255.255.0
4 查看第一块网卡的状态
ifconfig eth0
如果要查看所有的网卡状态 则直接使用不带参数的 ifconfig 命令即可
ifconfig 输出的状态信息是十分有用的 下面 我们就简单说明一下
有几个状态比较重要
UP/DOWN 网卡是否启动了 如果是 DOWN的话 那肯定无法用的
RX packets 中的 errors 包的数量如果过大说明网卡在接收时有问题
TX packets 中的 errors 包的数量如果过大说明网卡在发送时有问题
1.2 route
route 命令的语法为
route [-CFvnee]
route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw]
[metric N] [mod] [reinstate] [[dev] If]
route [-v] [-A family] del [-net|-host] target [gw Gw] [netmask Nm] [metric
N] [[dev] If]
route [-V] [--version] [-h] [--help]
route 的常用参数说明如下
-v 使用冗余输出模式
-A family 指定特定的地址族 例如"inet" "inet6"
-n 使用数字显示的地址 例如 202.38.75.75 而不是去解释域名
-e 使用与 netstat 相同的输出格式
-ee 参数会产生很长的输出 包括内核路由表的几乎所有信息
-net 目标 target 是一个网段
-host 目标 target 是一个单独的主机
-F 显示内核 FIB 路由表 结果可能被-e 和-ee 参数改变
-C 显示内核中路由缓存信息
del 删除一个路由表项
add 增加一个路由表项
Target 配置的目的网段或者主机 可以是 IP 或者是网络或主机名
netmask Nm 用来指明要添加的路由表项的网络掩码
gw Gw 任何通往目的 target 的 IP 分组都要通过这个网关
metric M设置路由表中该项的尺度域 metric field 为 M
示例
1 添加一条路由表项 网段 192.168.0.x 应该从接口"eth0"走
route add -net 192.168.0.0 netmask 255.255.255.0 dev eth0
2 添加一条缺省路由
route add 0.0.0.0 gw 网关地址
如果没有其他匹配的路由项 就使用这个路由规则
3 删除缺省路由
route del 0.0.0.0 gw 网关地址
4 route 命令的输出结果示例说明
输出的格式有以下几栏
Destination 目标网段或者主机
Gateway 网关地址 如果没有设置 则是"*"表示
Genmask 网络掩码
Flags 一些可能的标记如下
U 路由是活动的
H 目标是一个主机
G 使用网关 gateway
R reinstate route 动态路由产生的表项
D dynamically installed by daemon or redirect
M modified from routing daemon or redirect
! reject route
Metric 路由距离
Ref 路由项引用次数 linux内核中没有使用
Use 查找路由项的次数 .
Iface 该路由表项对应的输出接口
网络操作命令
Linux系统常用的网络操作命令包括 netstat nslookup host finger和 ping netstat 命令的功能是显示网络连接 路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作 nslookup 命令的功能是查询一台机器的 IP地址和其对应的域名 它通常需要一台域名服务器来提供域名服务 如果用户已经设置好域名服务器 就可以用这个命令查看不同主机的 IP 地址对应的域名 host 命令可根据主机名查询主机的 IP 地址或根据主机 IP 地址查询主机名 finger 命令的功能是查询用户的信息 通常会显示系统中某个用户的用户名 主目录 停滞时间 登录时间 登录 shell 等信息 ping 命令用于查看网络上的主机是否在工作
2.1 netstat
netstat 命令的语法为
netstat [选项]
netstat的常用参数说明如下
-a 显示所有 socket 包括正在监听的
-c 每隔 1 秒就重新显示一遍直到用户中断它
-i 显示所有网络接口的信息格式同 ifconfig –e
-n 以网络 IP 地址代替名称显示出网络连接情形
-r 显示核心路由表格式同 route –e
-t 显示 TCP 协议的连接情况
-u 显示 UDP 协议的连接情况
-v 显示正在进行的工作
示例
1 在本机使用 netstat 命令 其输出为如下
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 256 10.153.89.66:ssh 10.153.21.168:1054 ESTABLISHED
tcp 0 0 10.153.89.66:ssh 10.153.21.166:1222 ESTABLISHED
tcp 0 0 10.153.89.66:1521 10.153.21.166:2625 ESTABLISHED
tcp 0 0 10.153.89.66:1521 10.153.21.166:2623 ESTABLISHED
……
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 9 [ ] DGRAM 919 /dev/log
unix 2 [ ] STREAM CONNECTED 50246124
unix 3 [ ] STREAM CONNECTED 3914245
/tmp/.ICE-unix/dcop18694-1074144356
unix 3 [ ] STREAM CONNECTED 3914244
unix 3 [ ] STREAM CONNECTED 3914127 /tmp/.X11-unix/X0
2.2 nslookup
nslookup 命令的功能是查询一台机器的 IP 地址和其对应的域名 它通常需要一台域名服务器来提供域名服务 如果用户已经设置好域名服务器 就可以用这个命令查看不同主机的 IP 地址对应的域名 命令的语法为
nslookup [IP 地址/域名]
示例
在本机执行 nslookup 命令
Default Server: name.tlc.com.cn
Address: 192.168.1.99
>
在符号 > 后面输入要查询的 IP 地址或域名并回车即可 如果要退出该命令 输入 exit 并回车即可
2.3 host
host 命令的功能基本与 nslookup 相同 命令的语法为
host [选项] [IP 地址/域名/主机名]
host 的常用参数如下
-a 显示所查域名或 IP 地址 域名或主机名的相关信息
示例
[root]# host huawei-3com.com
huawei-3com.com has address 172.19.1.228
2.4 finger
finger 命令的功能是查询用户的信息 通常会显示系统中某个用户的用户名主目录 停滞时间 登录时间 登录 shell 等信息 如果要查询远程机上的用户信息 需要在用户名后面接 @主机名 采用[用户名@主机名]的格式不过要查询的网络主机需要运行 finger 守护进程 该命令的一般格式为
finger [选项] [使用者] [用户@主机]
finger 的常用参数如下
-s 显示用户的注册名 实际姓名 终端名称 写状态 停滞时间 登录时间等信息
-l 除了用-s 选项显示的信息外 还显示用户主目录 登录 shell 邮件状态等信息 以及用户主目录下的.plan .project 和.forward 文件的内容
-p 除了不显示.plan 文件和.project 文件以外与-l 选项相同
示例
1 显示用户 orcale 的信息
finger oracle
其显示结果为
Login: oracle Name: (null)
Directory: /home/oracle Shell: /bin/bash
On since Fri Feb 6 16:26 (CST) on pts/1 from 10.153.21.166 33 seconds idle
On since Wed Feb 4 20:10 (CST) on pts/2 from 10.153.21.166 1 second idle
No mail.
No Plan.
2.5 Ping 命令
ping 命令用于查看网络上的主机是否在工作 它向该主机发送 ICMP ECHO_REQUEST 包 有时我们想从网络上的某台主机上下载文件 可是又不知道那台主机是否开着 就需要使用 ping 命令查看 该命令的一般格式为:
ping [选项] [主机名/IP地址]
ping 的常用参数如下
-c 数目 在发送指定数目的包后停止
-d 设定 SO_DEBUG 的选项
-f 大量且快速地送网络封包给一台机器看它的回应
-I 秒数 设定间隔几秒送一个网络封包给一台机器预设值是一秒送一次
-l 次数 在指定次数内以最快的方式送封包数据到指定机器 只有超级用户可以使用此选项
-q 不显示任何传送封包的信息只显示最后的结果
-r 不经由网关而直接送封包到一台机器 通常是查看本机的网络接口是否有问题
-s 字节数 指定发送的数据字节数 预设值是 56 加上 8 字节的 ICMP头 一共是 64ICMP 数据字节