Linux网络基础配置
将Linux主机接入到网络,需要配置网络相关设置。 一般包括如下内容: 主机名 IP/netmask 路由:默认网关 DNS服务器 主DNS服务器 次DNS服务器 第三DNS服务器
网络配置方式
静态指定: 命令: ifcfg家族: ifconfig:配置IP,NETMASK route:路由 netstat:状态及统计数据查看 iproute2家族: ip OBJECT: addr:地址和掩码 link:接口 route:路由 ss:状态及统计数据查看 CentOS 7:nm家族 nmcli:命令行工具 nmtui:test window工具 注意: (1)DNS服务器指定 配置文件:/etc/resolv.conf (2)本地主机名配置 hostname命令:临时生效 配置文件:/etc/sysconfig/network CentOS 7:hostnamectl 配置文件: /etc/sysconfig/network-scripts/ifcfg-NETCARD_NAME 动态配置:依赖于网络当中的DHCP服务器 DHCP:Dynamic Host Configuration Protocal
Linux网络属性配置
ifcfg命令家族:ifconfig,route,netstat
ifconfig命令:接口及地址查看和管理
ifconfig [INTERFACE]
# ifconfig -a:显示所有接口,包括未激活的接口
ifconfig interface [aftype] options | address ...
# ifconfig IFACE IP/MASK [up]
# ifconfig IFACE IP netmask NETMASK
options:
[-]promisc:混杂模式
注意:立即送往内核中的TCP/IP协议栈,并生效
route命令:路由查看及管理
路由条目类型:
主机路由:目标地址为单个IP
网络路由:目标地址为IP网络
默认路由:目标为任意主机,0.0.0.0/0.0.0.0
查看:
# route -n:以数字格式显示路由条目
添加:
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] IF]
示例:route add -net 10.0.0.0/8 gw 192.168.0.1 dev eth1
route add -net 0.0.0.0/0.0.0.0 gw 192.168.10.1
route add default gw 192.168.10.1
删除:
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] IF]
示例:route del -net 10.0.0.0/8 gw 192.168.0.1
route del default
netstat:状态及统计数据查看
netstat - Print network connections, routing tables, interface statistics, masquerade connections, multicast memberships
显示路由表:netstat -rn
-r:显示内核路由表
-n:以数字格式显示
显示网络连接:
netstat [--tcp|-t] [--udp|u] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
-t:TCP协议的相关连接,连接均有其状态
-u:UDP相关的连接
-W:raw socket相关的连接
-l:处于监听状态的连接
-a:所有状态
-n:以数字格式显示
-e:扩展格式
-p:显示相关的进程及PID
常用组合:
-tan, -uan, -tnl, -unl, -lntp, -untp, -tan, -uan...
传输层协议:
tcp:面向连接的协议;通信开始之前,要建立一个虚链路;通信完成后还要拆除连接
udp:无连接的协议;直接发送数据报文
显示接口的统计数据:
显示所有接口:
netstat -i
显示指定接口:
netstat -I<IFace>
ifup/ifdown命令:
注意:通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置
配置主机名:
hostname命令:
查看:hostname
配置:hostname HOSTNAME
临时生效,重启后无效
hostnamectl命令:
hostnamectl status:显示当前主机名信息
hostnamectl set-hostname:设定主机名,永久有效
配置文件:/etc/sysconfig/network
HOSTNAME=<HOSTNAME>
注意:此方法的设置不会立即生效;但以后会一直有效
配置DNS服务器地址:
配置文件:/etc/resolv.conf
nameserver DNS_SERVER_IP
如何测试(host,nslookup,dig)
# dig -t A FQDN
FQDN --> IP
# dig -x IP
IP --> FQDN
iproute家族:
ip命令:
show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route | netns }
ip OBJECT:
ip link:network device configurations
ip link set - change device attributes
dev NAME:指明要管理的设备,dev关键字可省略
up和down:启用或关闭指定设备
multicase on或multicase off:启用或关闭多播功能
name NAME:修改设备名称
注意:重命名时需要先down
mtu NUMBER:设置MTU值大小,默认为1500
netns PID:ns为namespace,用于将接口移动到指定的网络名称空间
ip link show - display device attributes
ip link help - 显示简要帮助信息:
ip netns:ip - manage network namespaces
ip netns list:列出所有的netns
ip netns add NAME:创建指定的ns
ip netns del NAME :删除指定的ns
ip netns exec COMMAND:在指定的netns中运行命令
ip address - protocol address management
ip address add - add new protocol address
ip addr add IFADDR dev IFACE
[label] NAME:为额外添加的地址指明接口别名
[broadcase ADDRESS]:广播地址,会根据IP和NETMASK自动计算得到
[scope SCOPE_VALUE]:
global:全局可用
link:接口可用
host:本机可用
ip address delete - delete protocol address
ip addr delete IFADDR dev IFACE
ip address show - look at protocol address
[IFACE]:仅显示指定接口的地址
ip address flush - flush protocol address
ip addr flush dev IFACE
ip route - routing table management.
ip route add - add new route
ip route change - change route
ip route replace - change or add new one
ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]
示例:
# ip route add 192.168.0.0/24 via 10.0.0.1 dev eth1 src 10.0.20.100
# ip route add default via 10.0.0.1
ip route delete - delete route
ip route del TYPE PREFIX
示例:
# ip route delete 192.168.1.0/24
ip route show - show route
TYPE PREFIX
ip route flush - flush routing table
TYPE PREFIX
ip route get - get a single route
ip route get TYPE PREFIX
示例:ip route get 192.168.0.0/24
ss命令:
ss [options] [FILTER]
options:
-t:TCP协议的相关连接
-u:UDP协议相关连接
-W:raw socket相关的连接
-l:监听状态的连接
-a:所有状态的连接
-n:数字格式
-p:相关的程序及其PID
-e:扩展格式信息
-m:内存用量
-o:计时器信息
FILTER:=[state TCP-STATE] [EXPRESSION]
TCP的常见状态:
TCP FSM:
LISTEN:监听
ESTABLISHED:建立的连接
FIN_WAIT_1:
FIN_WAIT_2:
SYN_SENT:
SYN_RECV:
CLOSED:
EXPRESSION:
dport=
sport=
示例:'( dport = :22 or sport = :22 )'
~]# ss -tan '( dport = :22 or sport = :22 )'
~]# ss -tan state ESTABLISHED
配置文件
IP/NETMASK/GW/DNS等属性的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
IFACE:接口名称
路由的相关配置文件:/etc/sysconfig/network-scripts/route-IFACE
配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE通过大量参数来定义接口的属性;其可通过vim等文本编辑工具
直接修改,也可使用专用的命令进行修改
CentOS 6:system-config-network setup
CentOS 7:nmtui
ifcfg-IFACE配置文件参数:
DEVICE:此配置文件对应的设备的名称
ONBOOT:在系统引导过程中,是否激活此接口
UUID:此设备的唯一标记
IPV6INIT:是否初始化IPv6
BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有dhcp、bootp、static、none
TYPE:接口类型,常见的有Ethernet,Bridge
DNS1:第一DNS服务器指向
DNS2:第二DNS服务器指向
DOMAIN:DNS搜索域
GATEWAY:默认网关
IPADDR:IP地址
NETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码
USERCTL:是否允许普通用户控制此设备
PEERDNS:如果BOOTPROTO的值为"dhcp",是否允许dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向,默认为允许
HWADDR:设备的MAC地址
NM_CONTROLLED:是否使用NetworkManager服务来控制接口
网络服务:
network
NetworkManager
管理网络服务:
CentOS 6:service SERVICE {start|stop|restart|status}
CentOS 7:systemctl {start|stop|restart|status} SERVICE[.service]
配置文件修改之后,如果需生效,需要重启网络服务
CentOS 6:# service network restart
CentOS 7:# systemctl restart network.service
用到非默认网关路由:/etc/sysconfig/network-scripts/route-IFACE
支持两种配置方式,但不可混用
(1)每行一个路由条目
TARGET via GW
(2)没三行一个路由条目
ADDRESS#=TARGET
NETMASK#=MASK
GATEWAY#=NEXTHOP
配置当前主机名:
hostname <HOSTNAME>
/etc/sysconfig/network
HOSTNAME=hostname
CentOS 7配置主机名
hostnamectl set-hostname <HOSTNAME> 可永久生效
网络接口识别并命名相关的udev配置文件:
/etc/udev/rules.d/70-persistent-net.rules
查看网卡:
dmesg | grep -i eth
ethtool -i eth0
卸载网卡驱动:
modprobe -r e1000
rmmod e1000
装载网卡驱动:
modprobe e1000
给接口配置多个地址
ip addr之外,ifconfig或配置文件都可以: (1)ifconfig IFACE_LABEL IPADDR/NETMASK IFACE_LABEL:eth0:0, eth0:1,... (2)为别名添加配置文件: DEVICE=IFACE_LABEL BOOTPROTO:网卡别名不支持动态获取地址 static, none
网卡名称
传统命名: 以太网:ethX,例如eth0,eth1 ppp网络:pppX,例如ppp0,ppp1 可预测命名方案(CentOS) 支持多种不同的命名机制: Fireware,拓扑结构 (1)如果Fireware或BIOS为主板上集成的设备提供索引信息可用,根据此索引进行命名,如eno1,eno2... (2)如果Fireware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1,ens2... (3)如果硬件接口的物理位置信息可用,则根基此信息命名,如enp2s0,... (4)如果用户显示定义,也可根据MAC地址命名,例如enx13341a3b.... 上述均不可用,则扔使用传统方式命名: 命名格式的组成: en:ethernet,以太网 wl:wlan,无线局域网 ww:wwan,无线广域网 名称类型: o<index>:集成设备的设备索引号 s<slot>:扩展槽的索引号 x<MAC>:基于MAC地址的命名 p<bus>s<slot>:基于总线及槽的拓扑结构进行命名
采用传统的命名方式
(1) 编辑/etc/default/grub配置文件
GRUB_CMDLINE_LINUX="rhgb quiet net.ifnames=0"
或:修改/boot/grub2/grub.cfg
![1473406738895582.png JDT_493ZA3$W%N4KK4]W2E0.png](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
(2) 为grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg
![1473406808786929.png 1}AXF]BW@X$5(F_F432EN(V.png](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
(3) 重启系统,将配置文件DEVICE项改为传统名称即可
![1473406961437085.png ]ICKWC3546WH1EVDQO2$_LW.png](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
原创文章,作者:zhai796898,如若转载,请注明出处:http://www.178linux.com/44916

