Ubuntu网络配置及网络测试工具

1、修改网卡名称

Ubuntu网络配置及网络测试工具

#修改配置文件为下面形式
root@ubuntu1804:~#vi /etc/default/grub
GRUB_CMDLINE_LINUX="net.ifnames=0"
#或者sed修改
root@ubuntu1804:~# sed -i.bak '/^GRUB_CMDLINE_LINUX=/s#"$#net.ifnames=0"#'
/etc/default/grub
#生效新的grub.cfg文件
root@ubuntu1804:~# grub-mkconfig -o /boot/grub/grub.cfg
#或者
root@ubuntu1804:~# update-grub
root@ubuntu1804:~# grep net.ifnames /boot/grub/grub.cfg

Ubuntu网络配置及网络测试工具

Ubuntu网络配置及网络测试工具

2、网络配置

ubuntu配置文件在 /etc/netplan/下,后缀名为.yaml

Ubuntu网络配置及网络测试工具

配置eth0自动获取ip地址

Ubuntu网络配置及网络测试工具

netplan apply 更改后需要使用该命令应用配置文件

root@tedu:/etc/netplan# vim 01-network-manager-all.yaml 
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: yes
root@tedu:/etc/netplan# netplan apply

配置静态IP地址

root@tedu:/etc/netplan# vim 01-network-manager-all.yaml 
root@tedu:/etc/netplan# cat 01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses: [10.0.32.37/23]
gateway4: 10.0.32.1
nameservers:
search: [baidu.com] 有空格
addresses: [10.0.8.12,8.8.8.8,1.1.1.1]

root@tedu:/etc/netplan# netplan apply
root@tedu:/etc/netplan# ping www
PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=1 ttl=54 time=6.34 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=2 ttl=54 time=6.16 ms
root@tedu:/etc/netplan# route -n 查看路由表
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
0.0.0.0 10.0.32.1 0.0.0.0 UG 0 0 0 eth0
10.0.32.0 0.0.0.0 255.255.254.0 U 0 0 0 eth0
10.0.32.0 0.0.0.0 255.255.254.0 U 100 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
oot@tedu:/etc/netplan# cat /etc/resolv.conf 查看dns和search domain
root@tedu:/etc/netplan# systemd-resolve --status 查看dns和search domain

Ubuntu网络配置及网络测试工具

Ubuntu网络配置及网络测试工具

配置多网卡静态ip地址(一个配置文件或多个配置文件,文件格式相同)

root@ubuntu1804:~#vim /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
dhcp6: no
addresses: [10.0.0.18/16]
gateway4: 10.0.0.2
nameservers:
addresses: [223.6.6.6]
eth1:
dhcp4: no
dhcp6: no
addresses: [10.20.0.18/16]
routes:
- to: 10.30.0.0/16
via: 10.20.0.1
- to: 10.40.0.0/16
via: 10.20.0.1
- to: 10.50.0.0/16
via: 10.20.0.1
- to: 10.60.0.0/16
via: 10.20.0.1
root@ubuntu1804:~#netplan apply
root@ubuntu1804:~#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
10.20.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
10.30.0.0 10.20.0.1 255.255.0.0 UG 0 0 0 eth1
10.40.0.0 10.20.0.1 255.255.0.0 UG 0 0 0 eth1
10.50.0.0 10.20.0.1 255.255.0.0 UG 0 0 0 eth1
10.60.0.0 10.20.0.1 255.255.0.0 UG 0 0 0 eth1

2、网络测试工具

ping 测试网络连通

ip route 查看路由

traceroute   mtr  tracepath  跟踪路由

nslookup  dig host 域名解析

tcpdump wireshark抓包工具

nc   nmap  安全扫描工具

tc 流量控制工具

tc qdisc add dev eth0 root netem loss 50%
tc qdisc add dev eth0 root netem delay 1000ms
tc qdisc show dev eth0
tc qdisc de
tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<
数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]
参数说明:
-a 尝试将网络和广播地址转换成名称。
-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
-e 在每列倾倒资料上显示连接层级的文件头。
-f 用数字显示网际网络地址。范例:
-F<表达文件> 指定内含表达方式的文件。
-i<网络界面> 使用指定的网络截面送出数据包。
-l 使用标准输出列的缓冲区。
-n 不把主机的网络地址转换成名字。
-N 不列出域名。
-O 不将数据包编码最佳化。
-p 不让网络界面进入混杂模式。
-q 快速输出,仅列出少数的传输协议信息。
-r<数据包文件> 从指定的文件读取数据包数据。
-s<数据包大小> 设置每个数据包的大小。
-S 用绝对而非相对数值列出TCP关联数。
-t 在每列倾倒资料上不显示时间戳记。
-tt 在每列倾倒资料上显示未经格式化的时间戳记。
-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。
-v 详细显示指令执行过程。
-vv 更详细显示指令执行过程。
-x 用十六进制字码列出数据包资料。
-w<数据包文件> 把数据包数据写入指定的文件。
-nn Don't convert protocol and port numbers etc. to names either.
#不指定任何参数,监听第一块网卡上经过的数据包。主机上可能有不止一块网卡,所以经常需要指定网卡。
tcpdump

#监听特定网卡
tcpdump -i eth0

#监听特定主机,监听主机10.0.0.100 的通信包,注意:出、入的包都会被监听。
tcpdump host 10.0.0.100

#特定来源、目标地址的通信
#特定来源
tcpdump src host hostname

#特定目标地址
tcpdump dst host hostname

#如果不指定src跟dst,那么来源或者目标是hostname的通信都会被监听
tcpdump host hostname

#特定端口
tcpdump port 3000

#监听TCP/UDP,服务器上不同服务分别用了TCP、UDP作为传输层,假如只想监听TCP的数据包
tcpdump tcp

#来源主机+端口+TCP,监听来自主机10.0.0.100在端口22上的TCP数据包
tcpdump tcp port 22 and src host 10.0.0.100

#监听特定主机之间的通信
tcpdump ip host 10.0.0.101 and 10.0.0.102

#10.0.0.101和除了10.0.0.1之外的主机之间的通信
tcpdump ip host 10.0.0.101 and ! 10.0.0.1
#详细示例
tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24
-w ./target.cap
(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数
据报的类型
(2)-i eth1 : 只抓经过接口eth1的包
(3)-t : 不显示时间戳
(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
(5)-c 100 : 只抓取100个数据包
(6)dst port ! 22 : 不抓取目标端口是22的数据包
(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24
(8)-w ./target.cap : 保存成cap文件,方便用wireshark分析
#限制抓包的数量,如下,抓到1000个包后,自动退出
tcpdump -c 1000
#保存到本地,tcpdump默认会将输出写到缓冲区,只有缓冲区内容达到一定的大小,或者tcpdump退出时,
才会将输出写到本地磁盘,可以加上-U强制立即写到本地磁盘(一般不建议,性能相对较差)
tcpdump -n -vvv -c 1000 -w /tmp/tcpdump_save.cap
nmap [Scan Type(s)] [Options] {target specification}
命令选项
-sT TCP connect() 扫描,这是最基本的 TCP 扫描方式。这种扫描很容易被检测到,在目标主机的
日志中会记录大批的连接请求以及错误信息
-sS TCP 同步扫描 (TCP SYN),因为不必全部打开一个 TCP 连接,所以这项技术通常称为半开扫描
(half-open)。这项技术最大的好处是,很少有系统能够把这记入系统日志
-sF,-sX,-sN 秘密 FIN 数据包扫描、圣诞树 (Xmas Tree)、空 (Null) 扫描模式。这些扫描方式
的理论依据是:关闭的端口需要对你的探测包回应 RST 包,而打开的端口必需忽略有问题的包
-sP ping 扫描,用 ping 方式检查网络上哪些主机正在运行。当主机阻塞 ICMP echo 请求包是
ping 扫描是无效的。nmap 在任何情况下都会进行 ping 扫描,只有目标主机处于运行状态,才会进行后
续的扫描
-sU UDP 的数据包进行扫描,想知道在某台主机上提供哪些 UDP 服务,可以使用此选项
-sA ACK 扫描,这项高级的扫描方法通常可以用来穿过防火墙。
-sW 滑动窗口扫描,非常类似于 ACK 的扫描
-sR RPC 扫描,和其它不同的端口扫描方法结合使用。
-b FTP 反弹攻击 (bounce attack),连接到防火墙后面的一台 FTP 服务器做代理,接着进行端口
扫描。
-P0 在扫描之前,不 ping 主机。
-PT 扫描之前,使用 TCP ping 确定哪些主机正在运行
-PS 对于 root 用户,这个选项让 nmap 使用 SYN 包而不是 ACK 包来对目标主机进行扫描。
-PI 设置这个选项,让 nmap 使用真正的 ping(ICMP echo 请求)来扫描目标主机是否正在运行。
-PB 这是默认的 ping 扫描选项。它使用 ACK(-PT) 和 ICMP(-PI) 两种扫描类型并行扫描。如果
防火墙能够过滤其中一种包,使用这种方法,你就能够穿过防火墙。范例:
-O 这个选项激活对 TCP/IP 指纹特征 (fingerprinting) 的扫描,获得远程主机的标志,也就是操
作系统类型
-I 打开 nmap 的反向标志扫描功能。
-f 使用碎片 IP 数据包发送 SYN、FIN、XMAS、NULL。包增加包过滤、入侵检测系统的难度,使其无
法知道你的企图
-v 冗余模式。强烈推荐使用这个选项,它会给出扫描过程中的详细信息。
-S <IP> 在一些情况下,nmap 可能无法确定你的源地址 。在这种情况使用这个选项给出指定 IP 地

-g port 设置扫描的源端口
-oN 把扫描结果重定向到一个可读的文件 logfilename 中
-oS 扫描结果输出到标准输出。
--host_timeout 设置扫描一台主机的时间,以毫秒为单位。默认的情况下,没有超时限制
--max_rtt_timeout 设置对每次探测的等待时间,以毫秒为单位。如果超过这个时间限制就重传或者
超时。默认值是大约 9000 毫秒
--min_rtt_timeout 设置 nmap 对每次探测至少等待你指定的时间,以毫秒为单位
-M count 置进行 TCP connect() 扫描时,最多使用多少个套接字进行并行的扫描
发表评论

相关文章