主机之间进行通信:路由
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]
查看所有网络接口配置信息:
ifconfig -a
查看指定网络接口配置:
ifconfig
配置IP地址:
ifconfig
ifconfig
[-]promisc 启动混杂模式(- 表示关闭)
混杂模式:表示该主机能够接受所有流经网卡的数据包
非混在模式:表示该主机的网卡只能够接受目的地址是自己的数据包
开启: ifconfig
关闭: ifconfig
route命令:
查看内核路由信息:
route -n
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.10.0 0.0.0.0 255.255.255.0 U 101 0 0 ens34
Flags: 路由的标志位
U:启用状态
G: 表示默认网关
H:主机路由
手动添加路由: route add [-host|-net]
主机路由:
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]
删除主机路由:
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指定:
配置文件: /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
-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
ethtool
ethtool -S
ip命令:
ip link:网络设备配置
ip link set [interface]
[up|down] 激活或禁用指定端口
multicast [on| off] 开启或关闭接口组播功能
name
mtu
netns [PID|Name] 将接口移至指定的命名空间中
ip link show 显示所有接口信息
ip link show
ip link show up 仅显示处于up状态的接口
ip address: 协议地址管理
ip address show 查看所有设备IP地址信息
dev
label
dev
ip address [add | del] IPADRESS dev
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
ip route:网络路由配置
ip route add
x.x.x.x/x via x.x.x.x dev
x.x.x.x via x.x.x.x dev
default x.x.x.x/x via x.x.x.x dev
src x.x.x.x 添加路由时可以指定源IP地址
ip route change|replace x.x.x.x/x via x.x.x.x
dev
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: 扩展格式
指定过滤器状态查看:
-F, —filter=FILE read filter information from FILE
FILTER := [ state STATE-FILTER ] [ EXPRESSION ]
STATE-FILTER := {all|connected|synchronized|bucket|big|TCP-STATES}
# 指定TCP状态: TCP-STATES := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|closed|close-wait|last-ack|listen|closing}
connected := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
synchronized := {established|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
bucket := {syn-recv|time-wait}
big := {established|syn-sent|fin-wait-{1,2}|closed|close-wait|last-ack|listen|closing}
[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的连接
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
配置文件:/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
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= 限制传输速率