1.route命令
查看路由表
route
route -n 查看路由表
route add [-net|-host|-default] target [netmask Nm] [gw GW] [[dev]i f] 添加路由
route del [-net|-host] target [netmask Nm] [gw GW] [[dev]i f]
route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
目标:192.168.1.3 网关:172.16.0.1
route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
目标:192.168.0.0 网关172.16.0.1
route add default gw 172.16.0.1
默认路由,网关:172.16.0.1
route del -host 192.168.1.3
删除目标
route del -net 192.168.0.0 netmask 255.255.255.0
删除网段
route表
范例实现静态路由
环境:
四台主机:
A主机:eth0 NAT模式
R1主机:eth0 NAT模式,eth1 仅主机模式
R2 主机:eth0 桥接模式,eth1仅主机模式
B主机:eth0桥接模式
#配置主机A ifconfig eth0 10.0.0.123/8 直连所以只需要配置ip #配置主机R1 ifconfig eth0 10.0.0.200/8 ifconfig eth1 192.168.0.200/24 route add -net 172.16.0.0/16 gw 192.168.0.201/24 dev eth1 直连只用配置第三个网段 echo 1 > /proc/sys/net/ipv4/ip_forward linux系统默认是禁止数据包转发的 #配置R2 ifconfig eth0 172.16.0.200/16 ifconfig eth1 192.168.0.0.201/24 route add -net 10.0.0.0/8 gw 192.168.0.200 dev eth1 echo 1 > /proc/sys/net/ipv4/ip_forward #配置B ifconfig eth0 172.16.0.123/16
2.ip命令
ip link set eth1 down 禁用网卡 ip link set eth1 name wangnet 网卡改名 ip link set wangnet up 启用网卡 ip addr add 172.16.100.100/16 dev eth0 label eth0:0 增加网卡别名实现一个网卡多个IP ip addr flush dev eth0 清除网络地址
ip address add 10.0.0.8/24 dev eth0
ip addr del 10.0.0.8/24 dev eth0
添加ip地址
3.ss命令
来治愈iproute包,代替netstat,netstat通过遍历/proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取sockst信息
ss [option] ... [filter]
选线:
-t:tcp协议相关
-u:udp协议相关
-l: listen状态的连接
-a:所有
-n:数字模式
常见用法
ss -l 显示本地打开的所有端口 ss -pl 显示每个进程具体打开的socket ss -ta 显示所有tcp socket [10:49:53 root@centos7 ~]$ss -o state established '( dport = :ssh or sport = :ssh )' Netid Recv-Q Send-Q Local Address:Port Peer Address:Port tcp 0 0 10.0.0.7:ssh 10.0.0.1:6345 timer:(keepalive,73min,0) 显示所有已建立的ssh连接
4.写入配置文件永久更改
网络配置文件
IP:/etc/sysconfig/network-scripts/ifcfg-iface
NAME:此配置文件应用到的设备
DEVICE:设备名
BOOTPROTO:激活此设备时使用的地址配置协议,常用dhcp,static
IPADDR:指明IP地址
GATEWAY:默认网关
PREFIX:网络ID的位数如:24
DNS1:第一个DNS服务器地址
ONBOOT:在系统引导时是否激活此设备
BOOTPROTO=static NAME=eth0 DEVICE=eth0 ONBOOT=yes IPADDR=10.0.0.7 GATEWAY=10.0.0.2 PREFIX=24 DNS1=8.8.8.8
配置当前主机的主机名
#centos6之前版本
/etc/sysconfig/network
HOSTNAME=
#centos7以后版
/etc/hostname
HOSTNAME
路由相关的配置文件
route:/etc/sysconfig/static-routes
[11:20:12 root@centos7 ~]$vim /etc/sysconfig/static-routes any net 192.168.1.0/24 gw 10.0.0.254 [11:23:43 root@centos7 ~]$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 100 0 0 eth0 10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 [11:23:58 root@centos7 ~]$systemctl restart network [11:24:08 root@centos7 ~]$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 100 0 0 eth0 10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 192.168.1.0 10.0.0.254 255.255.255.0 UG 0 0 0 eth0
网卡别名
[11:31:52 root@centos7 ~]$cat /etc/sysconfig/network-scripts/ifcfg-eth0:1 DEVICE=eth0:1 IPADDR=10.0.0.100 PREFIX=8 [11:31:36 root@centos7 ~]$systemctl restart network eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:35:00:d2 brd ff:ff:ff:ff:ff:ff inet 10.0.0.7/24 brd 10.0.0.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet 10.0.0.100/8 brd 10.255.255.255 scope global noprefixroute eth0:1 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe35:d2/64 scope link valid_lft forever preferred_lft forever
5.网络配置工具nmcli
修改配置文件执行生效
nmcli con relod
nmcli con up con-name
范例
[16:42:51 root@centos7 ~]$nmcli connection show NAME UUID TYPE DEVICE eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0 Wired connection 1 7a9e3935-5829-3398-bf8d-d5321d6e9548 ethernet -- 显示状态 [16:42:59 root@centos7 ~]$nmcli dev status DEVICE TYPE STATE CONNECTION eth0 ethernet connected eth0 lo loopback unmanaged -- 显示设备状态 nmcli con add con-name static ifname eth0 autoconnect no type Ethernet ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.x.254 创建新连接static,指定静态IP,不自动连接
nmcli实现bonding
mode 0:balance-rr 轮调策略:多张网卡可以轮流发数据包,实现负载均衡的功能
mode 1:active-backup 主备策略:其中active网卡的发数据包,其他备用
mode 3:broadcast 广播策略:每个网卡都会发一份包
nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 10.0.0.100/24 添加bonding接口 nmcli con add type bond-slave ifname eth0 master bond0 nmcli con add type bond-slave ifname eth1 master bond0 添加从属接口 nmcli con up bond-slave-eth0 nmcli con up bond-slave-eth1 要启动绑定,则必须首先启动从属接口 nmcli con up mybond0 启动绑定
6.网桥
nmcli con add type birdge con-name bro ifname br0 nmcli con mod bro ipv4,addresses 10.0.0.100/24 ipv4.method manual nmcli con up bro 创建网桥 nmcli con add type bridge-slave con-name br0-port0 ifname eth0 master br0 nmcli con add type bridge-slave con-name br0-port1 ifname eth1 master br0 nmcli con up br0-port0 nmcli con up br0-port1 加入物理网卡 cat /etc/sysconfig/network-scripts/ifcfg-br0 查看网桥配置文件
7.tcpdump
网络数据包截获分析工具。支持针对网络层,协议,主机,网络或端口的过滤。并提供and,or,not等逻辑语句帮助去除无用的信息
tcpdump -D 查看网卡 tcpdump 不指定任何参数,监听第一块网卡上经过的数据包。主机上可能有不止一块网卡,所以经常需要指定网卡 tcpdump -i eth0 监听特定网卡 tcpdump host 10.0.0.100 监听特定主机,监听主机10.0.0.100 的通信包,注意:出入的包都会被监听。 tcpdump src host hostname 特定来源 tcpdump dst host hostname 特定目标地址 tcpdump -i eth0 -nn icmp and src host 10.0.0.6 and dst host 10.0.0.7 监听从6到7的icmp包 tcpdump port 3000 特定端口 tcpdump tcp port 22 and src host 10.0.0.100 监听来自主机10.0.0.100在端口22上的TCP数据包
详细示例
tcpdump tcp -i eht1 -t -s 0 -c 100 and dst port ! 22 src net 192.168.1.0/24 -w ./target.cap 1)tcp:ip icmp arp 这些选项都要放到第一个参数的位置,用来过滤数据报文的类型 2)-i eth1 :只抓经过接口eth1的包 3)-t:不显示时间戳 4)-s:抓取数据包时默认抓取长度为68字节。加上-s 0 后可以抓到完整的数据包 5)-c 100 :只抓取100个包 6)dst port !22:不抓取目标端口时22的数据包 7)src net 192.168.1.0/24:数据包源地址 8)-w :保存成cap文件,方便用wireshark分析
8.ubuntu网络配置
网卡名称
vi /etc/default/grub GRUB_CMDLINE_LINUX="net.ifnames=0" 修改配置文件为下面形式 grub-mkconfig -o /boot/grub/grub.cfg 生效新的文件,ubuntu版 grub2-mkconfig -o /etc/grub2.cfg centos版
静态IP必须要遵守格式
vim /etc/netplan/50-cloud-init.yaml
network: version: 2 ethernets: eth0: dhcp4: true match: macaddress: 00:16:3e:0e:64:66 set-name: eth0
netplan apply
地址生效
查看dns
ls -l /etc/resolv.conf resolvectl status systemd-resolve --status