文章目录
Linux网络管理
主机之间进行通信:路由
Linux跨网网络通信需要路由:主机上的路由一般来说分为三类:主机路由、网络路由、默认路由
Linux主机接入网络中需要配置的相关信息:IP/Mask、默认网关、DNS服务器
Linux配置网络方式:
动态指定:DHCP服务
静态指定:临时/永久配置
ifcfg系列工具:ifconfig/route/netstat等工具
ip系列工具:ip {link route addr}/ss等工具
修改配置文件:/etc/sysconfig/network-scripts/*
CentOS7配置工具: nmcli
IP地址查看及配置
- ifconfig命令: net-tools软件包
[root@test ~]# ifconfig --help
Usage:
ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]
- 查看所有网络接口配置信息:
ifconfig -a - 查看指定网络接口配置:
ifconfig [up|down]
配置IP地址:
ifconfig <interface> x.x.x.x/x up (interface接口)
ifconfig <interface> x.x.x.x netmask x.x.x.x up (netmask子网掩码)
[-]promisc 启动混杂模式(- 表示关闭)
混杂模式:表示该主机能够接受所有流经网卡的数据包
非混在模式:表示该主机的网卡只能够接受目的地址是自己的数据包
开启: ifconfig promisc
关闭: ifconfig -promisc
查看内核路由信息:
route命令
Flags: 路由的标志位
U:启用状态
G: 表示默认网关
H:主机路由
手动添加路由:
route add [-host|-net] gw dev
主机路由:
route add -host 172.16.0.1 gw 172.16.0.2 dev ens32
网络路由:
route add -net 172.16.0.0/16 gw 172.16.0.2 dev ens32
默认路由:
route add default gw 172.16.0.2
删除路由:
route del [-host|-net] <target> gw <netmask> dev <interface>
删除主机路由:
route del -host 172.16.0.1 gw 172.16.0.2 dev ens32
删除网络路由:
route del -net 172.16.0.0/16 gw 172.16.0.2 dev ens32
删除默认路由:
route del default gw 172.16.0.2
DNS指定:
域名系统(Domain NameSystem,DNS)是Internet上解决网上机器命名的一种系统。就像拜访朋友要先知道别人家怎么走一样,Internet上当一台主机要访问另外一台主机时,必须首先获知其地址,TCP/IP中的IP地址是由四段以“.”分开的数字组成,记起来总是不如名字那么方便,所以,就采用了域名系统来管理名字和IP的对应关系。-------引用自百度百科
配置文件: /etc/resolv.conf
nameserver DNS_SERVER_1
nameserver DNS_SERVER_2
网卡配置文件中:
DNS1=x.x.x.x
DNS2=x.x.x.x
正向解析: 域名->IP地址
netstat命令:查看网络连接状态
network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
网络连接 路由表信息 接口统计 伪装连接 组播成员关系
常用参数:
-t : 显示tcp协议相关
-u :显示udp协议相关
-w :显示raw socket相关(混杂模式收到的相关数据包)
-l :显示处于Listen状态连接
-a :显示所有状态的连接
-n :以数字显示IP地址和端口号
-p :显示相关进程及PID
-e :扩展格式显示
显示路由表:netstat -rn
-r: 显示内核路由表信息
显示接口统计信息: netstat -i | netstat -I<interface>
-i:显示接口统计信息
-I:显示指定接口信息
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
ens34 1500 4587 0 0 0 2745 0 0 0 BMRU
ifup/ifdown <interface> 用来启用/禁用一个接口 -> 要有该接口的相关配置文件
ethtool <interface> 显示接口设备属性
ethtool -S <interface> 显示接口设备的统计数据
ip命令
ip link:网络设备配置
ip link set [interface] :
[up|down] 激活或禁用指定端口
multicast [on| off] 开启或关闭接口组播功能
name <N_name> 重名命接口
mtu <M_value> 设置MTU值,MTU:最大传输单元
netns [PID|Name] 将接口移至指定的命名空间中
ip link show 显示所有接口信息
ip link show <interface> 显示指定接口信息
ip link show up 仅显示处于up状态的接口
ip address: 协议地址管理
ip address show 查看所有设备IP地址信息
dev <interface> 查看指定设备的IP地址信息
label <interface:> 查看指定设备的标签
dev <interface> primary 查看指定设备主IP
ip address [add | del] IPADRESS dev <interface>
ip address add x.x.x.x/x dev ens32 [broadcase x.x.x.x | label ens32:1] 配置IP地址
ip address add x.x.x.x/x dev ens32 scope [global|link|host] 指定作用域
global 全局可用
link 仅链接可用(同一广播域通信)
host 本机可用(只能跟自己通信)
ip address flush dev <interface> 清空指定设备的所有IP地址
ip route:网络路由配置
ip route add
x.x.x.x/x via x.x.x.x dev <interface> 网络路由
x.x.x.x via x.x.x.x dev <interface> 主机路由
default x.x.x.x/x via x.x.x.x dev <interface> 默认路由
ip route change|replace x.x.x.x/x via x.x.x.x dev <interface> 修改路由信息
ip route delete x.x.x.x/x 删除指定路由
ip route show 查看路由信息
ip route get x.x.x.x/x 查看指定路由相关信息
ip route flush 清空所有路由
ip route flush x.x.x.x 清空指定路由
ss命令: 显现socket连接状态
常用参数:
-t: tcp
-u: udp
-w:raw socket
-x: unix socket
-l: Listen
-a: all
-n: number形式
-p: Pid
-m: memory
-o: timer
-e: 扩展格式
指定过滤器状态查看:
[root@localhost ~]# ss --help
例子:
[root@test ~]# ss -tan state connected
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 192.168.10.128:22 192.168.10.1:62607
ESTAB 0 52 192.168.10.100:22 192.168.10.1:62694
[root@test ~]# ss -tan state established
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 0 192.168.10.128:22 192.168.10.1:62607
0 52 192.168.10.100:22 192.168.10.1:62694
[root@test ~]# ss -tan state closing
Recv-Q Send-Q Local Address:Port Peer Address:Port
指定表达式:
dport = :22
sport = :1110
ss ‐tan sport = :22 显示源端口为22的连接
ss ‐tan dport = :51471 显示目的端口为51417的连接
ss ‐tan dport = :51471 or sport = :22 显示目的端口为51417或源端口为22的连接
ss ‐tan dport = :51471 and sport = :22 显示目的端口为51417且源端口为22的连接
Linux网络配置文件修改
IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-Interface_Name
路由相关的配置文件(默认没有须手动创建):/etc/sysconfig/network-scripts/route-Interface_Name
/etc/sysconfig/network-scripts/ifcfg-IFACE:
DEVICE=eth0 此配置文件应用到的设备
HWADDR=00:0C:29:3F:16:62 对应的设备的MAC地址
BOOTPROTO=static 激活此设备时使用的地址配置协议(dhcp, static, none, bootp)
NM_CONTROLLED=no NM是NetworkManager的简写,此网卡是否接受NM控制;CentOS6建议为"no"
ONBOOT=yes 在系统引导时是否激活此设备
TYPE=Ethernet 接口类型,常见有的Ethernet, Bridge
UUID=6f404499-c071-4191-a5bd-fc29d8008783 设备的惟一标识
IPADDR=192.168.10.1 指明IP地址
NETMASK=255.255.255.0 子网掩码
GATEWAY=192.168.10.254 默认网关
DNS1=202.96.134.133 第一个DNS服务器指向
DNS2=114.114.114.114 第二个DNS服务器指向
USERCTL=no 普通用户是否可控制此设备
PEERDNS=yes 如果BOOTPROTO的值为"dhcp",是否允许dhcp server分配的dns服务器信息直接覆盖至/etc/resolv.conf文件中
/etc/sysconfig/network-scripts/route-IFACE <指定网卡>
两种风格:两种不能混用,只能固定使用其中某一种
第一种:TARGET via GW
192.168.0.0/24 via 192.168.10.254
第二种:每三行定义一条路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
ADDRESS0=192.168.0.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.10.254
重启网络服务: systemctl restart network
给网卡配置多地址:配置子接口
a) ifconfig eth0:0 192.168.0.1/24
b) ip addr add 192.168.0.1/24 dev eth0 label eth0:0
配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0 # 注意:网卡别名不能使用dhcp协议引导
Linux网络属性配置工具tui(text user interface):
system-config-network-tui,也可以使用setup命令调用system-config-network-tui;注意:记得重启网络服务方能生效;
修改当前主机的主机名:
hostname [HOSTNAME] 临时修改 | hostnamectl set-hostname <Hostname> 永久修改
配置文件:/etc/sysconfig/network :HOSTNAME=New_Name
主机名解析:/etc/hosts
127.0.0.1 New_Name
网络接口识别并命名相关的udev配置文件:可以用于修改网卡的设备名称,不过要重新装载网卡驱动生效
/etc/udev/rules.d/70-persistent-net.rules
lsmod 查看内核装载的模块
卸载网卡驱动:modprobe -r e1000
装载网卡驱动:modprobe e1000
IP地址配置工具
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
nmcli device status 查看所有网卡状态
nmcli device show 查看所有网卡信息
nmcli device show eth0 查看指定网卡信息
nmcli device connect eth0 连接指定网卡
nmcli device disconnect eth0 断开指定网卡
connection - start, stop, and manage network connections
nmcli connection show 查看所有设备连接信息
nmcli c show eth0 查看指定设备详细信息
如何修改IP地址等属性:
#nmcli connection modify IFACE [+|-]setting.property value
nmcli c modify eth0 ipv4.addresses 192.168.1.1/24
nmcli c modify eth0 ipv4.gateway 192.168.1.254
nmcli c modify eth0 ipv4.dns1 202.96.134.133
nmcli c modify eth0 ipv4.method manual 指定网络信息获取方式,这里为手动指定
网络配置tui工具:nmtui
网络客户端工具:lftp, ftp, lftpget, wget
# lftp [-p port] [-u user[,password]] SERVER
子命令:
get 下载单个文件
mget 下载多个文件
ls 显示当前目录文件
help 显示帮助信息
# lftpget URL 直接跟URL地址下载文件到当前目录
# ftp 传统的ftp客户端工具,能用lftp就不用这个
# wget | curl
wget [option]… [URL]…
-q 静默模式
-c 断点续传
-O 指定下载到指定路径
--limit-rates= 限制传输速率
网络管理小实验
需求:ABC三台主机,其中B充当路由器实现AC之间通信。
拓扑:A ----net1----- B ----net2------C
环境准备
网卡示例:
A: host网卡
B:host网卡 + Nat网卡
C:Nat网卡
A、C需要安装网络管理工具:
yum install -y net-tools
A:
仅主机网卡
ip:192.168.40.130
B:
仅主机网卡
ip:192.168.40.129
NAT网卡
ip:192.168.80.20
C:
NAT网卡
ip:192.168.80.30
具体步骤
第一步
A、C需要安装网络管理工具
yum install -y net-tools
ABC主机配置IP地址然后测试直连是否成功
A: ifconfig ens33 192.168.40.129/24 up
B: ifconfig ens33 192.168.40.130/24 up
ifconfig ens36 192.168.80.30/16 up
C: ifconfig ens36 192.168.80.20/16 up
测试:
B:
a) ping 192.168.40.129 -> AB直连正常
b) ping 192.168.80.20 -> BC直连正常
第二步
A上需要添加主机路由,即让A知道怎么去
route add -host 192.168.80.30 gw 192.168.40.129 dev ens33
或
route add -host 192.168.80.30 via 192.168.40.129 dev ens33
第三步
C上添加主机路由,即让C知道怎么回
route add -host 192.168.40.130 gw 192.168.80.20 dev ens33
或
route add -host 192.168.40.130 via 192.168.80.20 dev ens33
第四步
B上需要开启路由,打开内核转发功能
[root@node2 ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
这步临时调整;主机重启之后即失效。要想永久生效,需要在/etc/sysctl.conf 文件中写:
net.ipv4.ip_forward=1
立即生效:
sysctl -p
第五步
在A上pingC
ping 192.168.80.30
在C上pingA
ping 192.168.40.130