linux博大精深,从文件系统到各种命令工具,甚至文本编辑器都有vi和emacs这样的神器,我姑且把这些先放在一边,之后依次详细的找些博客学习。
linux对于网络的支持十分完善,不用来学习网络,简直就是浪费。
先来谈谈常用的网络工具吧。
1.ifconfig
ifconfig可以用来查看配置,开关网络接口
ifconfig
eth0 Link encap:以太网 硬件地址 f0:de:f1:ee:be:30
inet 地址:192.168.98.135 广播:192.168.98.255 掩码:255.255.255.0
inet6 地址: fe80::f2de:f1ff:feee:be30/64 Scope:Link
inet6 地址: 2001:da8:b003:4102:f2de:f1ff:feee:be30/64 Scope:Global
inet6 地址: 2001:da8:b003:4102:a01d:2109:66b3:ef70/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:419598 错误:0 丢弃:1422 过载:0 帧数:0
发送数据包:222539 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:429117633 (429.1 MB) 发送字节:25498405 (25.4 MB)
lo Link encap:本地环回
inet 地址:127.0.0.1 掩码:255.0.0.0
inet6 地址: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 跃点数:1
接收数据包:15585 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:15585 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:0
接收字节:1926761 (1.9 MB) 发送字节:1926761 (1.9 MB)
wlan0 Link encap:以太网 硬件地址 7c:e9:d3:ee:bf:e2
UP BROADCAST MULTICAST MTU:1500 跃点数:1
接收数据包:0 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:0 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:0 (0.0 B) 发送字节:0 (0.0 B)
可见本系统支持3个网络接口ech0,lo,wlan0
其他都好理解,重点是第二行的信息
网卡的状态标志
UP 接口开放,可接受,发送数据
DOWN 接口关闭
RUNNING 该接口被系统识别
MULTICAST 该接口支持多路传输地址
BROADCAST 该接口支持广播地址
配置网络接口:ifconfig eth0 192.168.1.1 hw ether 00:00:11:00:00:11
2.route命令
route用于不同的子网络主机通讯。
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
default 192.168.98.1 0.0.0.0 UG 0 0 0 eth0
192.168.98.0 * 255.255.255.0 U 1 0 0 eth0
default是默认路由的方法
添加路由:route add -net 192.168.1.0 netmask 255.255.255.0 dev ech0
删除: route del -net 192.168.1.0 netmask 255.255.255.0 dev ech0
3.netstat命令
netstat用于查看当前网络连接
netstat输出包含tcp/udp的网络链接和unix socket部分的进程通信
我们可以通过修饰符来获取我们要看的信息
-c 每隔1秒就重新显示一遍,直到用户中断它。
-i 显示所有网络接口的信息,格式“netstat -i”。
-n 以网络IP地址代替名称,显示出网络连接情形。
-r显示核心路由表,格式同“route -e”。
-t 显示TCP协议的连接情况
-u 显示UDP协议的连接情况。
-v 显示正在进行的工作。
-p 显示指定协议信息。
-b 显示在创建每个连接或侦听端口时涉及的可执行程序。
-e 显示以太网统计。此选项可以与 -s 选项结合使用。
-f 显示外部地址的完全限定域名(FQDN)。
-o 显示拥有的与每个连接关联的进程 ID。
最重要的是看state,EATABLISHED状态可以看到什么地址访问你的电脑
我们可以通过查看 /etc/services来看到对应服务的端口
4.DNS
在/etc/resolv.conf文件中可以设置固定DNS服务器(最多3个)
host命令可以查询某主机名或主机名对应的所有IP
nslookup命令的功能与host基本一致,就不重复了
5.tcpdump
我们可以使用tcpdump来抓包
sudo tcpdump tcp port 80 and host 112.223.1,33 #捕获从112.223.1,33接受或发送的数据包