吴宏东 - 记于2018年07月04日 - 博客 https://segmentfault.com/u/wu...
Linux 网络配置
基础知识
OSI 七层模型
从顶至底:应用层 - 表示层 - 会话层 - 传输层 - 网络层 - 数据链路层 - 物理层;
常见缩写名词
DHCP(Dynamic Host Configuration Protocol)动态主机配置协议;
LAN(Local Area Network)局域网;
WAN(Wide Area Network)广域网;
TCP(Transmission Control Protocol)传输控制协议;
UDP(User Datagram Protocol)用户数据协议;
IP(Internet Protocol)网际协议;
ICMP(Internet Control Message Protocol)因特网控制报文协议;
DNS(Domain Name System)域名系统;
ARP(Address Resolution Protocol)地址解释协议;
网络接口设备
ethX:以太网接口,是最常用的网络接口;
wlanX:无线网络接口,无线局域网网络接口;
fddiX:光纤分布式数据接口;
pppX:点对点协议接口,用于Modem/ADSL拨号上网;
lo:本地回环接口,用于进程相互通信;
一致设备命名
en:表示以太网设备(EtherNet);
wl:表示无线局域网设备(Wireless LAN);
ww:表示无线广域网设备(Wireless WAN);
随后第三个字符:
o:表示主板板载设备;
s:表示热插拨设备;
p:表示PCI总线或USB接口设备;
配置文件
主要文件
# 网络接口配置文件
/etc/sysconfig/network-scripts/ifcfg-*;
# 网络接口路由配置文件
/etc/sysconfig/network-scripts/route-*;
# 本地主机名配置文件
/etc/hostname;
# 主机名与IP地址映射文件
/etc/hosts;
# 域名与网络地址映射文件
/etc/networks;
# 域名服务客户端控制文件
/etc/host.conf;
# 指定域名服务器位置
/etc/resolv.conf;
# 系统支持协议
/etc/protocol;
# 系统支持的服务和端口;
/etc/services;
网络接口配置文件
当前我的虚机采用的是DHCP配置方式
# 网络接口类型:以太网
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
# 获取网络参数方式:static | dhcp | none
BOOTPROTO="dhcp"
# 是否基于此接口设置默认的路由:yes | no
DEFROUTE="yes"
# 当IPv4配置失败时,是否禁用IPv4:yes | no
IPV4_FAILURE_FATAL="no"
# 是否为此接口启用IPv6:yes | no
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
# 接口设备名称和UUID
NAME="ens33"
DEVICE="ens33"
UUID="2a39fe3c-5b36-4328-bdca-c0c3bd14bdb7"
# 是否在启动时启用改设备:yes | no
ONBOOT="yes"
ZONE="public"
修改该文件后,如果想立即生效,执行以下命令:
# 重启network服务
service network restart;
# 或关闭启动接口设备,当前我的虚机设备名是ens33
ifdown ens33;
ifup ens33;
设置 IP 转发
出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将包发往本机另一网卡,该网卡根据路由表继续发送数据包。这通常就是路由器所要实现的功能。
# 查看当前系统是否支持IP转发,0 为禁用,1 为启用
sysctl net.ipv4.ip_forward;
# 启用转发
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf;
# 立即生效
sysctl -p;
设置主机名
# 设置主机名为 master.wuhongdong.com
hostnamectl set-hostname master.wuhongdong.com;
# 查看主机名
hostname;
NetworkManager
从RHEL/CentOS6开始,NetworkManager服务就是其组成部分;
从RHEL/CentOS7开始,默认开机后就启用NetworkManager服务,非传统的network服务,它不需要重启,从而可以实现动态管理配置;
命令 nmcli
该命令用来实现管理网络设备和配置网络连接;
# 显示网络接口设备的状态
nmcli d;
# 显示指定设备的信息
nmcli d sh ens33;
# 显示所有连接
nmcli c;
# 显示指定连接的信息
nmcli c s ens33;
# 断开设备且置为非自动连接,断开后ssh不可用,必须重新开启
nmcli d d ens33;
# 开启设备并重新加载连接配置
nmcli c up ifname ens33 && nmcli c reload;
# 修改IP地址的获得方式,manual 表示手动设置,auto 表示从DHCP服务器自动获取
nmcli c m ens33 ipv4.method manual;
# 添加IP地址
nmcli c m ens33 ipv4.addresses 192.168.47.129/24 && service network restart;
# 删除IP地址
nmcli c m ens33 -ipv4.addresses 192.168.47.129/24 && service network restart;
# 添加网关和DNS
nmcli c m ens33 ipv4.gateway 192.168.47.1 && service network restart;;
nmcli c m ens33 ipv4.dns 8.8.8.8 && service network restart;;