目录
1. /etc/sysconfig/network-scripts/ifcfg-IFACE
2. /etc/sysconfig/network-scripts/route-IFACE
5.Linux网络属性配置的tui(text user interface)
一、配置网络接口
问题:将Linux主机接入到网络中需要配置的属性
IP/mask
路由:默认网关(最容易)
DNS服务器
主DNS服务器
次DNS服务器
第三DNS服务器
(主机名)
1.配置方式
静态指定:(三种方式)
仅对当前系统有效
①ifcfg:ifconfig, route, netstat
②ip:object {link, addr, route}, ss, tc
永久有效
③基于配置文件
system-config-network-tui (setup)
P.S. CentOS 7上的其他工具:
nmcli, nmtui
动态分配:
DHCP:Dynamic Host Configuration Protocol 动态主机配置协议
2.接口命名方式
CentOS 6:
以太网:eth[0,1,2,...] 此种命名方式简单,对
点对点网络:ppp[0,1,2,...]
光纤网络
CentOS 7:
根据插槽来命名
二、ifcfg家族
1.ifconfig
ifconfig [interface]
# ifconfig -a 显示所有处于活动状态和非活动状态的接口
# ifconfig IFACE [up|down] 显示特定接口
ifconfig interface [aftype] options | address ...
# ifconfig IFACE IP/mask [up] 配置某接口的ip地址/子网掩码[ 加up启用接口 ] P.S. 此处mask使用掩码长度
# ifconfig IFACE IP netmask MASK
注意:ifconfig配置后立即生效,但不永久生效
[-]promisc 加了-表示禁用;混杂模式是实现网络监控的必要一步,目标MAC即便不是自己,报文来了也会接收一份
2.route
路由管理命令,用于显示或操纵IP路由表
用法:
反解:反向解析,从地址到名称
名称解析:从名称到地址
查看:route -n 名称解析
添加:route add
route add [-net|-host] target [netmask Nm] [gw Gw] [ [dev] If ]
-A family:指明IP地址家族IPV4 / IPV6
host:0.0.0.0 则表示默认路由
target 目标地址
gw 网关(下一跳)
dev 经由本地的哪个网卡通过
练习
目标主机路由:192.168.1.3 网关:172.16.0.1
~]# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
目标网络路由:192.168.0.0 网关:172.16.0.1
~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
~]# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
目标添加默认路由,网关:172.16.0.1
~]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
~]# route add default gw 172.16.0.1
删除:route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
目标:192.168.1.3 网关:172.16.0.1
~]# route del -host 192.168.1.3
目标:192.168.0.0 网关:172.16.0.1
~]# route del -net 192.168.0.0 netmask 255.255.255.0
DNS服务器指定
配置文件:/etc/resolv.conf
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
正解:FQDN-->IP FQDN完全限定名称
# dig -t A FQDN 解析测试
# host -t A FQDN
反解:IP-->FQDN
# dig -x IP
# host -t PTR IP
3.netstat
网络状态查看
netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
打印网络连接,路由表,接口统计数据,伪装地址连接,组播成员关系
用法:
显示网络连接:netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
-t:tcp协议相关
-u:udp协议相关
-w:raw socket相关(裸套接字,不经过传输层,应用层直接调用IP来实现数据传输)
-l:处于监听状态
-a:所有状态
-n:以数字显示IP和端口,即不反解
-e:扩展格式
-p:显示相关进程及PID
常用组合:
-tan, -uan, -tnl, -unl
显示路由表:netstat {--route|-r} [--numeric|-n]
-r:显示内核路由表
-r n:数字格式
-e:扩展格式
-v:详细格式
显示接口统计数据:netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
# netstat -i 显示所有接口
# netstat -I IFACE
总结:ifcfg家族命令配置
ifconfig/route/netstat
ifup/ifdown
三、IP家族
1.IP
ip - show / manipulate routing, devices, policy routing and tunnels
用法:
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
link OBJECT:
ip link - network device configuration
ip link set dev IFACE up | down 激活或禁用指定接口
ip link show 显示
[dev IFACE]:指定接口
[up]:仅显示处于激活状态的接口
ip address - protocol address management
ip addr { add | del } IFADDR dev STRING 添加或移除地址
[label LABEL]:添加地址时指明网卡别名
[scope {global|link|host}]:指明作用域
global:全局可用
link:仅链接可用
host:本机可用
[broadcast ADDRESS]:指明广播地址
ip address show - look at protocol addresses
ip addr show
[dev DEVICE]
[label PATTERN]
[primary and secondary] 主地址,辅地址
ip address flush - flush protocol addresses
ip addr flush 可以删除一类地址
[dev DEVICE]
[label PATTERN]
[primary and secondary]
ip route - routing table management
ip route add
添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:
主机路由:IP
网络路由:NETWORK/MASK
via 下一跳
添加网关:ip route add defalt via GW dev IFACE
删除默认网关
ip route del TARGET 删除路由
ip route show
ip route flush
[dev IFACE]
[via PREFIX]
P.S. 对于Linux,地址属于内核
2.ss
网络状态查看工具,相当于netstat
格式:ss [OPTION]... [FILTER]
选项:
-t:tcp协议相关
-u:udp协议相关
-w:裸套接字相关
-x:unix sock相关
-l:listen状态的连接
-a:所有
-n:数字格式
-p:相关的程序及PID
-e:扩展的信息
-m:内存用量
-o:计时器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
TCP的常见状态:
tcp finite state machine:有限状态机
LISTENING:监听
ESTABLISHED:已建立的连接
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
CLOSED
EXPRESSION:
dport =
sport =
示例:’( dport = :ssh or sport = :ssh )’
常用组合:
-tan, -tanl, -tanlp, -uan
四、修改配置文件
IP、MASK、GW、DNS相关配置文件
/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相关的配置文件
/etc/sysconfig/network-scripts/route-IFACE
1. /etc/sysconfig/network-scripts/ifcfg-IFACE
DEVICE:此配置文件应用到的设备
HWADDR:对应的设备的MAC地址
BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
NM_CONTROLLED:NM是NetworkManager的简写;此网卡是否接受NM控制;CentOS6建议为“no”
ONBOOT:在系统引导时是否激活此设备
TYPE:接口类型;常见有的Ethernet, Bridge
UUID:设备的惟一标识
IPADDR:指明IP地址
NETMASK:子网掩码
GATEWAY:默认网关
DNS1:第一个DNS服务器指向
DNS2:第二个DNS服务器指向
USERCTL:普通用户是否可控制此设备
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中
使立即生效的方式
重启网络服务,相当于执行脚本/etc/rc.d/init.d/network restart
2. /etc/sysconfig/network-scripts/route-IFACE
两种风格:
①TARGET via GW
②每三行定义一条路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
3.给网卡配置多地址
①ifconfig:
ifconfig IFACE_ALIAS
②ip
ip addr add
③配置文件:
ifcfg-IFACE_ALIAS
DEVICE=IFACE_ALIAS
P.S. 网关别名的地址不能使用DHCP协议引导
5.Linux网络属性配置的tui(text user interface)
system-config-network-tui
也可以使用setup找到
P.S. 记得重启网络服务方能生效
6.配置当前主机的主机名
hostname 查看主机名
hostname HOSTNAME 设置主机名
/etc/sysconfig/network
7.网络接口识别并命名相关的udev配置文件
/etc/udev/rules.d/70-persistent-net.rules
卸载网卡驱动:
modprobe -r e1000
装载网卡驱动:
modprobe e1000
P.S. 修改后记得调整相关配置文件
五、CentOS 7 网络配置
传统命名:以太网eth[0,1,2,...], wlan[0,1,2,...]
可预测功能的命名机制
udev支持多种不同的命名方案:
Firmware, 拓扑结构
1.网卡命名机制
systemd对网络设备的命名方式:
① 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1
② 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1;
③如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0
④如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56;
⑤上述均不可用时,则使用传统命名机制
上述命名机制中,有的需要biosdevname程序的参与
2.名称组成格式
en:ethernet
wl:wlan
ww:wwan
名称类型:
o<index>:集成设备的设备索引号
s<slot>:扩展槽的索引号
x<MAC>:基于MAC地址的命名
p<bus>s<slot>:enp2s1 根据PCI总线和插槽编号命名
3.网卡设备的命名过程
第一步:
udev, 辅助工具程序/lib/udev/rename_device, /usr/lib/udev/rules.d/60-net.rules
第二步:
biosdevname 会根据/usr/lib/udev/rules.d/71-biosdevname.rules
第三步:
通过检测网络接口设备,根据/usr/lib/udev/rules.d/75-net-description
e.g. ID_NET_NAME_ONBOARD
e.g. ID_NET_NAME_SLOT
e.g. ID_NET_NAME_PATH
4.回归传统命名方式
①编辑/etc/default/grub配置文件
GRUB_CMDLINE_LINUX="net.ifnames
=0 rhgb quiet"
②为grub2生成其配置文件,使之生效
grub2-mkconfig -o /etc/grub2.cfg
③修改/etc/sysconfig/network-scripts/目录里ifcfg-ens33等里面的DEVICE、NAME
④重命名ifcfg相关文件
⑤重启系统
5.地址配置工具:nmcli
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
connection - start, stop, and manage network connections
P.S. connect类似于ip命令的addr,device类似于ip的link
nmcli device
nmcli d show
nmcli connetion
nmcli c
如何修改IP地址等属性:
#nmcli connection modify IFACE [+|-]setting.property value
setting.property:
ipv4.addresses
ipv4.gateway
ipv4.dns1
ipv4.method
manual,
命令:localetcl
6.网络接口配置tui工具:nmtui
7.主机名称配置工具:hostnamectl
status
set-hostname
参考资料:http://www.redhat.com/hdocs
六、网络客户端工具
lftp, ftp, lftpget, wget
1.lftp
文件传输客户端工具
# lftp [-p port] [-u user[,password]] SERVER
子命令:
get 下载一个文件到本地
mget 下载多个文件到本地
ls 查看远程服务器的文件列表
help 帮助文件
2. lftpget URL
3.ftp
4.wget
与lftp功能类似,但支持很多选项
wget [option]... [URL]...
-q:静默模式
-a:指明日志记录
-c:续传
-O:保存位置
--limit-rates=:指定传输速率
-i:
回顾
ip命令,ss命令;配置文件;CentOS 7
ifcfg、ip、netstat、ss
配置文件:
/etc/sysconfig/network-scripts/
ifcfg-IFNAME
route-IFNAME
CentOS 7:nmcli, nmtui
参考资料:
马哥随堂笔记
注:诚恳欢迎读者对本文提出批评意见,若发现存在错误,我定第一时间修改。如果读者觉得文章对您有帮助,欢迎点赞鼓励一下哟٩(๑❛ᴗ❛๑)۶。