linux 下抓包
tcpdump
tcpdump 工具默认没有 (yum install -y tcpdump)
tcpdump -nn -i 设备名
tcpdump -nn -i ens33 (抓取本机网卡 ens33 数据包)
-i 后面加设备名, 如果抓取网卡则后面加网卡名(如本机的 ens33)
-nn 作用是让第 3 列和第 4 列显示成 ip + 端口号形式
如果不加 - nn 则会显示成主机名 + 服务名称
图中的>表示 前面原 ip 要作用到哪里去
抓取指定端口号:
tcpdump -nn -i 网卡名 port 端口号
tcpdump -nn -i ens33 port 22 抓取 22 端口
tcpdump -nn -i ens33 not port 22 不抓取 22 端口
抓取指定 ip 和端口号:
tcpdump -nn -i ens33 not port 22 and host 192.169.136.133
抓取数据包指定个数 并且保存到一个文件里
- tcpdump -nn -i ens33 -c 100
- tcpdump -nn -i ens33 -c 100 -w /tmp/1.cap
file /tmp/1.cap (可以看到一个文件的大概信息)
tcpdump -r /tmp/1.cap (可以看到一个文件的数据流, 从哪里到哪里)
wireshark 工具
查看指定网卡 80 端口的 web 服务访问情况(实用命令, 谨记)
tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"
(本地 vmware 虚拟机抓取不到, 没有 80 端口)
可以看到什么 ip 访问什么域名 的什么链接
Linux 网络相关
命令: ifconfig (查看系统 ip 地址信息, ip addr 也可以查看)
在 centos7 无 ifconfig , 需要安装 (yum install -y net-tools)
ifconfig -a 当我们的网卡 down 时, 也可以查看到 ip 地址
关闭指定网卡
ifdown 网卡 ifdown ens33
ifup 网卡 ifup ens33
在远程一端 ifdown 网卡名后, 此时在原服务器 (vmware 下) 看不到 ip 地址, 需要在源服务器上 ifup 网卡名 才能恢复远程连接
ifup ens33 (恢复网卡, 此时可以看到 ip 地址)
在远程端不要运行这个命令
但是可以这样操作: ifdown ens33 && ifup ens33
设置虚拟网卡 (给网卡设置多个 ip)
1. 复制一份配置文件并改名(方便区分)
修改配置文件
2. 重启一下(指定网卡 ens33)
ifdown ens33 && ifup ens33
3. 查看是否添加成功
ifconfig
4.window 下测试一下是否网络是通的(ping 192.168.136.150)
ping 192.168.136.150
设置成功
(lvs keepalived 时我们会用到这个虚拟网卡)
查看网卡是否连接(是否插上网线)
方法一: mii-tool ens33
方法二: ethtool ens33
更改主机名
hostnamectl set-hostname cansheng0001
(修改了主机名后需要重启下才能使命令生效)
主机名的配置文件 /etc/hostname
DNS 配置文件 / etc/resolv.conf
cat /etc/resolv.conf (查看到 DNS 的情况)
(/etc/resolv.conf 其实是在网卡配置文件 / etc/sysconfig/network-scripts/ifcfg-ens33 里定义)
更改 DNS
方法一: 直接网卡配置文件就行(/etc/sysconfig/network-scripts/ifcfg-ens33)
方法二: 编辑 /etc/resolv.conf 文件 (修改后重启网卡后, 会被网卡配置文件所覆盖)
/etc/hosts
(在 lamp 自定义域名的时候用到)
让一个外网访问到我们自定义的 ip(仅本主机)
1. 修改配置文件:
(如使百度访问到我们的自定义 ip: 192.168.136.150 www.baidu.com)
此时我们就可以发现 ping www.baidu.com 时它就指向连接到自定的 ip
(这是仅在我门本机生效)(支持一个 ip 配多个域名)
firewalld 和 netfilter
防火墙:
selinux 临时关闭 --> setenforce 0
临时打开 -->getenforce
selinux 永久关闭 --> vi /etc/selinux/config
netfilter 防火墙在更早的 centos 版本中 ,centos7 为 firewalld
netfilter 和 firewalld 里的 iptables 的工具用法一样
(iptables 工具可以用来开放一些端口, 关闭一些端口)
selinux 平时都是关闭状态(否则很多服务都是会受到限制)
(在 centos7 中默认是使用 firewalld,netfilter 默认关闭状态)
使用 netfilter 的过程
(一)关闭 firewalld 步骤:
(1)systemctl disable firewalld (阻止开机启动)
(2)systemctl stop firewalld (停止它的服务)
(二)开启 netfilter 防火墙
(1)安装工具: yum install -y iptables-services
- (2)systemctl enable iptables
- (3)
systemctl start iptables (开启服务)
netfilter5 表 5 链接
netfilter5 表
man iptables 可查看到
(1)filter 表: 主要用于过滤包 (该表有 3 个链: INPUTFORWARDOUTPUT)
(2)nat 表: 网络地址转换 (该表有 3 个链: PREROUTINGOUTPUTPOSTOUTING)
(3)mangle 表: 给数据包做标记, 然后根据标记去操作相应的包
(4)raw
(5)security(centos6 无此表, manglerawsecurity 三表几乎不用)
表与链的关系:
以一个数据包的进入网卡做例子:
先进入
PREROUTING 链>进行判断是否是本机的
a. 是本机的: PREROUTING 链 -->INPUT 链 -->LOCALHOST(内核处理)-->OUTPUT 链 -->
POSTOUTING 链
b. 不
是本机的:
PREROUTING 链 -->FORWARD 链 -->
POSTOUTING 链
十(3)linux 下抓包 linux 网络相关, firewalld 和 netfilter,5 表 5 链
来源: http://www.bubuko.com/infodetail-2511872.html