---ifconfig: linux系统下用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。
发行版系统安装方法:
sudo apt-get update;
sudo apt-get install net-tools
参数:
-a: 显示全部接口信息。
-s: 显示摘要信息(类似于 netstat -i)。
add <地址>: 设置网络设备IPv6的ip地址;
del <地址>: 删除网络设备IPv6的IP地址;
up/down: 启动/关闭指定的网络设备;
hw <网络设备类型> <硬件地址>:设置网络设备的类型与硬件地址;
io_addr<I/O地址>:设置网络设备的I/O地址;
irq
mtu <字节>: 设置网络设备的MTU;
netmask<子网掩码>:设置网络设备的子网掩码;
tunnel<地址>: 建立IPv4与IPv6之间的隧道通信地址;
-broadcast<地址>:将要送往指定地址的数据包当成广播数据包来处理;
-promisc: 关闭或启动指定网络设备的promiscuous模式;
IP地址: 指定网络设备的IP地址;
网络设备: 指定网络设备的名称。
-arp: 设置指定网卡是否支持ARP协议
例子:
ifconfig ##显示当前激活的设备信息
ifconfig -a ##显示所有的设备信息(包括没有激活网络设备);
ifconfig eth0 up/down ##启用/停止指定的网络设备eth0;
##为eth0配置静态IP地址,指定子网掩码,加上广播地址;
ifconfig eth0 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255
##为网卡配置和删除IPv6地址
ifconfig eth0 add 33ffe:3240:800:1005::2/64
ifconfig eth0 del 33ffe:3240:800:1005::2/64
##用ifconfig修改MAC地址
ifconfig eth0 down # 关闭网卡
ifconfig eth0 hw ether 11:AA:BB:CC:DD:EE #修改MAC地址
ifconfig eth0 up #启动网卡
##启用和关闭ARP协议
ifconfig eth0 arp #启用arp功能
ifconfig eth0 -arp #关闭arp功能 (慎用!!会断开远程网络连接)
##设置最大传输单元
ifconfig eth0 mtu 1500
---route:对内核的IP选路表进行操作
参数:
-c: 显示更多信息
-n: 不解析名字
-v: 显示详细的处理信息
-F: 显示发送信息
-C: 显示路由缓存
-f: 清除所有网关入口的路由表。
-p: 与 add 命令一起使用时使路由具有永久性。
add: 添加一条路由规则
del: 删除一条路由规则
-net: 目的地址是一个网络
-host: 目的地址是一个主机
target: 目的网络或主机
netmask: 目的地址的网络掩码
gw: 路由数据包通过的网关
dev:为路由指定的网络接口
metric:设置路由跳数。
例子:
##显示当前的路由信息
route
##不解析名字,列出速度会比route快
route -n
##添加到主机的路由
route add -host 10.20.30.148 gw 10.20.30.40
###添加10.20.30.48的网络路由
route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
##添加默认网关
route add default gw 192.168.0.1
##删除默认网关
route del default gw 192.168.0.1
##删除主机路由
route del -host 10.20.30.148 gw 10.20.30.40
##删除网络路由
route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
##屏蔽一条网络路由240.0.0.0
route add -net 224.0.0.0 netmask 240.0.0.0 reject
##所有去往192.168.0.2主机的数据包发往网关地址
route add -host 192.168.0.2 gw 192.168.0.1
说明:
1)显示结果中Flags为路由标志,标记当前网络节点状态:
U-- Up表示此路由当前为启动状态
H-- Host,表示此网关为一主机
G-- Gateway,表示此网关为一路由器
R-- Reinstate Route,使用动态路由重新初始化的路由
D-- Dynamically,此路由是动态性地写入
M-- Modified,此路由是由路由守护程序或导向器动态修改
!-- 表示此路由当前为关闭状态
2)主机路由, 网络路由和默认路由的区别:
--三者都属于静态路由,本质上都是一样的,只是精细程度不一样。
--主机路由,软路由,把一台主机当做路由。仅仅只能表示一台,所以子网掩码要用255.255.255.255
--默认路由,网络路由,都是代表的一个网络。网络路由是指的某一个网络的。
但默认路由指向一个公共的,优先级最低,所有路由都找不到自己的路由线路时,就都才会走默认路由。
---arp: 地址解析协议。用来管理系统的arp缓冲区,可以显示、删除、添加静态mac地址。
说明:
网络设备都有一个ARP缓存,其作用是用来存放IP地址和MAC地址的映射关系。
在发送数据前,设备会先查找ARP缓存表。
--如果缓存表中存在对方设备的MAC地址,则直接采用该MAC地址来封装帧,然后将帧发送出去;
--如果不存在MAC信息,刚通过发送arp request报文来查询,从而建立映射表;
--ARP表分为动态和静态表。动态ARP表自动生成和维护,有一定的生命周期,被老化;静态ARP手动配置和维护,不会被老化,一直存在,使用arp命令来配置;
参数:
-a:显示arp缓冲区的所有条目;
-H:指定arp指令使用的地址类型;
-d:从arp缓冲区中删除指定主机的arp条目;
-D:使用指定接口的硬件地址;
-e:以Linux的显示风格显示arp缓冲区中的条目;
-i:指定要操作arp缓冲区的网络接口;
-s:设置指定的主机的IP地址与MAC地址的静态映射;
-n:以数字方式显示arp缓冲区中的条目;
-v:显示详细的arp缓冲区条目,包括缓冲区条目的统计信息;
-f<文件>:设置主机的IP地址与MAC地址的静态映射。
例子:
##查看arp缓存
arp -nv
## 在网络设备eth0上添加一条arp缓存条目
arp -i eth0 -s 192.168.0.100 00:11:22:33:44:55
##删除一条arp缓存条目
arp -d 192.168.0.100
##指定回复的MAC地址,当eth0收到IP地址为192.168.0.100的请求时,用eth1的MAC地址应答
arp -i eth0 -Ds 192.168.0.100 eth1 pub
---arping:用于发送arp请求报文,解析并获取目标地址的MAC。
说明:默认将先发送广播报文,收到回复后再发送单播报文,局域网内所有主机都能收到
广播报文,但只有目标主机才会回复自己的MAC地址。
参数:
-f: 收到第一个reply就立即退出
-q: 安静模式,什么都不输出
-b: 只发送广播,不发送单播
-D: 地址冲突检测
-U: 主动更新邻居的arp缓存(Unsolicited ARP mode)
-c count : 发送多少个arp请求包后退出
-w timeout : 等待reply的超时时间
-I device : 发送请求包的网络接口。
-s source : 指定arp请求报文中源地址,如果源地址和指定地址不一样,则目标主机会缓存指定的MAC地址,而不是源地址;
-i
例子:
##向指定的IP发送ARP请求。
arping -I eth0 192.168.1.100
##请求解析192.168.1.100主机的MAC地址,只发一次arp请求;
sudo arping -c 1 -I eth0 192.168.1.100
##测试 IP 是否被占用
arping -I eth0 -w 3 -D 192.168.1.100
##指定发送一个请求报文给192.168.1.100就退出,发送报文的接口为eth1,
并指定请求报文是从本机的源地址192.168.1.200发出;
(简单的arp欺骗操作)
arping -c 1 -I eth1 -s 192.168.1.200 192.168.1.100
##发送4个探测报文,检测对方192.168.1.100是否存活,在线
arping -c 4 -I eth0 192.168.1.100
##向目标主机发送3次(指定次数)ARP 请求报文,安静模式。
arping -I eth0 -q -c 3 192.168.1.100
---netstat: linux系统下用于显示网络状态。
参数:
-a: 显示所有连线中的Socket。
-A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。
-c: 持续列出网络状态,每隔一个固定时间,执行该netstat命令。
-C: 显示路由器配置的快取信息。
-e: 显示网络其他相关信息。
-F: 显示路由缓存。
-g: 显示多重广播功能群组组员名单。
-i: 显示网络设备接口信息列表。
-l:显示监听中的服务器的Socket。
-n: 直接使用IP地址,而不通过域名服务器。
-o:显示计时器。
-p:显示正在使用Socket的进程号和进程名。
-r:显示Routing Table。
-s:网络统计信息,按协议分类进行统计。
-t或--tcp: 显示TCP传输协议的连接情况。
-u或--udp: 显示UDP传输协议的连接情况。
-v: 显示指令详细执行过程。
-V:显示版本信息。
-w:显示RAW传输协议的连接情况。
例子:
##多屏显示详细的网络状况
netstat -a | more
##显示当前TCP连接状况
netstat -nt
##显示当前UDP连接状况
netstat -nu
##显示UDP端口号的使用情况
netstat -apu
##显示网卡列表
netstat -i
##按协议分类显示网络统计信息
netstat -s
##显示监听的套接口
netstat -l
##只列出所有监听tcp端口
netstat -lt
##显示核心路由信息
netstat -r
## 找出ssh程序运行的端口
netstat -ap | grep ssh
## TCP连接的各种状态列表
netstat -nat |awk '{print $6}'
##统计tcp连接监听的数量
netstat -ant | wc -l
##查看连接某服务端口443最多的的IP地址(前10个)
netstat -nat | grep "192.168.0.100:443" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -10
---host: host命令用于查看或设置系统的主机名。原理是一个用于执行DNS查找的简单实用程序。 它通常用于将名称转换为IP地址,反之亦然。
参数:
-a:显示详细的DNS信息
-c:指定查询类型,默认值为“IN”
-C:查询指定主机的完整的SOA记录
-r:不使用递归的查询方式查询域名
-t:指定查询的域名信息类型
-v:显示指令执行的详细信息
-w:如果域名服务器没有给出应答信息,则总是等待,直到域名服务器给出应答
-W:指定域名查询的最长时间,如果在指定时间内域名服务器没有给出应答信息则退出
-4:使用IPv4查询传输 (默认)
-6:使用IPv6查询传输
例子:
##看当前主机名
hostname
##设置主机名:
hostname myhostname
##永久设置主机名(需要修改/etc/hostname文件):
echo "myhostname" > /etc/hostname
##添加DNS信息;
echo "192.168.0.100 myhostname" >> /etc/hosts
##显示执行域名查询的详细信息:
host -v www .http://example.com
##查询域名的MX信息:
host -t MX www .http://example.com
---ping: 此命令的功能是用于测试主机间网络连通性,通过发送出基于ICMP传输协议的数据包, 要求对方主机予以回复。
安装方法:
sudo apt-get install iputils-ping
参数(功能强大):
-d: 使用Socket的SO_DEBUG功能
-c: 指定发送报文的次数
-i: 指定收发信息的间隔时间(单位为秒,最小值是200ms,即0.2S)
-I: 使用指定的网络接口送出数据包
-l: 设置在等待回复时发送指定数量的数据包
-n: 不进行DNS名称解析。
-p: 设置填满数据包的范本样式
-q: 不显示指令执行过程
-R: 记录路由过程
-s: 设置数据包的大小
-S <大小>:使用 <大小> 作为SO_SNDBUF套接字选项的值
-t: 设置存活数值TTL的大小
-v: 详细显示指令的执行过程
-B:使用固定源地址
-I:<接口>接口名称或地址
-p:<模式>:填充字节的内容
-w:<截止时间>等待回复的截止时间(秒)
-W: <超时时间>等待响应的时间
-D: 打印时间戳。在每个ping回复中打印时间戳。
-4: 使用IPv4
-6:使用IPv6
-b: 允许ping广播
-R: 记录路由
-T: <时间戳> 定义时间戳,可以是
-L:禁止回送多播数据包。不将多播数据包回送到本地回环接口
例子:
##每隔0.2秒ping一次,一共ping 5次
ping -c 5 -i 0.2 www .http://example.com
##使用指定源地址,在本机上有多个网络接口进行ping时,指定使用特定的源地址。
ping -B 192.168.0.100 www .http://example.com
## 打印时间戳。在每个ping回复中打印时间戳。
ping -D www .http://example.com
##使用SO_DEBUG套接字选项。启用调试模式,打印更多调试信息
ping -d www .http://example.com
## 洪水式ping。连续发送ping请求,不等待回复。(需要root权限)
sudo ping -f www .http://example.com
##指定要使用的网络接口名称或地址
ping -I eth1 www .http://example.com
##在等待回复时发送指定数量的数据包 (非root权限只能发送2个包)
sudo ping -l 10 www .http://example.com
##标记发送的数据包。可以用于标识特定的数据包流
ping -m 123 192.168.0.100
##不进行DNS名称解析,直接使用IP地址进行ping。
ping -n 192.168.0.100
##填充字节的内容。指定填充数据包的内容(内容必须为16进制数字)。
ping -p ABCD 192.168.0.100
##指定要发送的数据字节数
ping -s 2048 192.168.0.100 (一次发送2048个字节)
ping -s 0 192.168.0.100 (发送空包测试 )
##修改发送缓冲区大小,SO_SNDBUF套接字选项的值
ping -S 8192 -s 2048 192.168.0.100
##强制使用IPv4协议进行ping
ping -4 192.168.0.100
##允许向广播地址发送ping请求。
ping -b 192.168.0.255
##在ping请求中记录数据包的路由路径。
ping -R 192.168.0.100
##定义时间戳的类型,可以是tsonly、tsandaddr或tsprespec之一
ping -T tsandaddr 192.168.0.100
---telnet: 用于登录远程主机,对远程主机进行管理,安全性不好,现在基本使用ssh替代;
安装说明:
--server端:sudo apt-get install telnetd
--client端:sudo apt-get install telnet
参数:
-l user:在连接时,用指定的用户名称进行登录。
-b host:在多网卡主机上,使用指定的主机地址作为源地址。
-d:启用调试模式,用于排查问题。
例子:
##远程登录指定主机+端口
telnet 192.168.0.100 23
---wget:Linux系统下用于从Web下载文件的命令行工具,支持 HTTP、HTTPS及FTP协议;
参数(功能强大,以下为部分参数):
-O: 指定下载的文件名。
-c: 断点续传,即从上次下载中断的地方继续下载。
-b: 后台下载。
-v: 下载时显示详细输出
-q: 静默模式,不输出下载信息。
-t: 重试下载次数。
-T: 下载超时时间。
-U: User-Agent字符串,用于伪装浏览器或其他客户端身份。
-P: 下载到指定目录。
-r: 递归下载,即下载指定URL中所有链接指向的文件。
-np: 不进入上级目录。
-nd: 不创建目录结构。
-nc: 不覆盖已存在的文件,即遇到同名文件不进行下载。
-i: 从文件中读取URL列表进行下载。
-x: 建立基于时间戳的目录结构。
-S: 显示服务器返回的HTTP头信息。
例子:
##后台下载多个URL链接:
wget URL1 URL2 URL3 -b
##下载文件时,指定下载文件的文件名
wget -O readme.txt https://www.example/aaa.txt;
##限速下载文件
wget --limit-rate=200k URL1
##下载文件到指定目录,且不显示下载进度条信息;
wget -P /data/ --no-verbose https://www.example/aaa.avi
##使用 -c 选项开启断点续传功能
wget -c https://www.example/aaa.avi;
##使用 -i 选项下载多个文件,这多个文件链接地址放在一个文件中;
vim download_list.txt #每个url单独一行;
wget -i download_list.txt
##使用 --tries或-t 选项增加重试次数
wget -t=40 https://www.example/aaa.avi
##使用FTP下载指定用户名和密码的格式:
wget --ftp-user=
##使用wget –reject过滤指定格式下载
wget –reject=gif 百度一下,你就知道www .http://example.com ##去掉gif格式
##使用wget -o把下载信息存入日志文件
wget -o download.log www .http://example.com 百度一下,你就知道
##使用wget -r -A下载指定格式文件,下载网站上所有PDF文件
wget -r -A.pdf url
##利用代理服务器进行下载
需要在当前用户的目录下创建一个.wgetrc文件。
1)文件中可以设置代理服务器
http-proxy = 111.111.111.111:8080
ftp-proxy = 111.111.111.111:8080
2)设置代理服务器用户名和密码
–proxy-user=USER设置代理用户
–proxy-passwd=PASS设置代理密码
3)密码和认证:
–http-user=USER设置HTTP用户
–http-passwd=PASS设置HTTP密码
4)使用或者关闭代理
–proxy=on/off
---traceroute: 会显示出本机与其他服务器之间的全部路由。
既可以有助于准确判断故障位置, 也可以通过显示的时间、IP等信息了解数据的流向。
工具安装:
sudo apt-get install traceroute
参数:
-d:使用Socket层级的排错功能。
-f:设置第一个检测数据包的存活数值TTL的大小。
-F:设置勿离断位。
-g:设置来源路由网关,最多可设置8个。
-i: 使用指定的网络界面送出数据包。
-I: 使用ICMP回应取代UDP信息。
-T:使用TCP包回应取代UDP信息
-m: 设置检测数据包的最大存活数值TTL的大小。
-n: 直接使用IP地址而非主机名称。
-p: 设置UDP传输协议的通信端口。
-r: 忽略普通的Routing Table,直接将数据包送到远端主机上。
-s: 设置本地主机送出数据包的IP地址。
-t: 设置检测数据包的TOS数值。
-v: 详细显示指令的执行过程。
-w: 设置等待远端主机回报的时间。
-x: 开启或关闭数据包的正确性检验。
-q: 设置每个 TTL 值收到的回复数量。
-z: 可以指定每次发送数据包之间的延迟时间
例子:
##查看指定URL的路由信息
traceroute www .http://example.com
##跳数设置,指定TTL值
traceroute -m 10 www .http://example.com
##显示IP地址,不查主机名
traceroute -n www .http://example.com
##探测包使用的基本UDP端口设置8888 (默认是发送UDP包)
traceroute -p 8888 www .http://example.com
##把探测包的个数设置为值4,等待响应时间设置为3秒,最大TTL为5
traceroute -I -m 5 -q 4 -w 3 www .http://example.com
##可以指定traceroute命令使用ICMP数据包
traceroute -I www .http://example.com
(更新待续,感谢关注......)