天天看点

Linux网络管理

配置方式:

静态指定:

ifcfg: ifconfig, route, netstat

ip: object {link, addr, route}, ss, tc

配置文件:

system-config-network-tui (setup)

CentOS 7:nmcli, nmtui

动态分配:

DHCP: Dynamic Host Configuration Protocol

CentOS 6配置网络:

接口命名方式:

以太网:eth[0,1,2,...]

ppp:ppp[0,1,2,...]

ifconfig命令

ifconfig [interface]

# ifconfig -a

# ifconfig IFACE [up|down]

ifconfig interface [aftype] options | address ...

# ifconfig IFACE IP/mask [up]

# ifconfig IFACE IP netmask MASK

Note:立即生效

启用混杂模式:[-]promisc

route命令:路由管理命令

查看:route -n

添加:route add

route add  [-net|-host]  target [netmask Nm] [gw Gw] [[dev] If]

目标: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]

~]# route del -host 192.168.1.3

~]# 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

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相关

-l: 处于监听状态

-a: 所有状态

-n: 以数字显示IP和端口

-e:扩展格式

-p: 显示相关进程及PID

常用组合:

-tan, -uan, -tnl, -unl

显示路由表:

netstat  {--route|-r} [--numeric|-n]

-r: 显示内核路由表

-n: 数字格式

显示接口统计数据:

netstat  {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n] 

# netstat -i

# netstat -I IFACE  

CentOS 7配置网络:

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

set

dev IFACE:可设置属性

up and down:激活或禁用指定接口

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

[dev DEVICE]

[label PATTERN]

[primary and secondary]

ip address flush - flush protocol addresses

使用格式同show

ip route - routing table management

ip route add

添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP

添加网关:ip route add defalt via GW dev IFACE

ip route delete

删除路由:ip route del TARGET 

ip route show

ip route flush

[dev IFACE]

[via PREFIX]

ss命令:

格式:ss [OPTION]... [FILTER]

选项:

-w: 裸套接字相关

-x:unix sock相关

-l: listen状态的连接

-a: 所有

-p: 相关的程序及PID

-e: 扩展的信息

-m:内存用量

o:计时器信息

FILTER := [ state TCP-STATE ] [ EXPRESSION ]

TCP的常见状态:

tcp finite state machine:

LISTEN、ESTABLISHED、FIN_WAIT_1、FIN_WAIT_2、SYN_SENT、SYN_RECV、CLOSED

EXPRESSION:

dport = 

sport = 

示例:’( dport = :ssh or sport = :ssh )’

修改配置文件:

IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE

路由相关的配置文件:/etc/sysconfig/network-scripts/route-IFACE

/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/sysconfig/network-scripts/route-IFACE

两种风格:

(1) TARGET via GW

(2) 每三行定义一条路由

ADDRESS#=TARGET

NETMASK#=mask

GATEWAY#=GW

给网卡配置多地址:

ifconfig: ifconfig IFACE_ALIAS 

ip:ip addr add 

ifcfg-IFACE_ALIAS

DEVICE=IFACE_ALIAS

Note:网关别名不能使用dhcp协议引导

Linux网络属性配置的tui(text user interface):

system-config-network-tui

也可以使用setup找到

Note:记得重启网络服务方能生效

配置当前主机的主机名:

hostname [HOSTNAME]

/etc/sysconfig/network

网络接口识别并命名相关的udev配置文件:

/etc/udev/rules.d/70-persistent-net.rules

卸载网卡驱动:

modprobe -r e1000

装载网卡驱动:

modprobe e1000

CentOS 7网络属性配置:

传统命名:以太网eth[0,1,2,...], wlan[0,1,2,...]

可预测功能:

udev支持多种不同的命名方案:Firmware, 拓扑结构

(1) 网卡命名机制

systemd对网络设备的命名方式:

(a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1

(b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1;

 (c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0

 (d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56

(e) 上述均不可用时,则使用传统命名机制

Note:上述命名机制中,有的需要biosdevname程序的参与

(2) 名称组成格式

en: ethernet

wl: wlan

ww: wwan

名称类型:

o<index>: 集成设备的设备索引号

s<slot>: 扩展槽的索引号

x<MAC>: 基于MAC地址的命名

p<bus>s<slot>: enp2s1

网卡设备的命名过程:

第一步:

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

ID_NET_NAME_ONBOARD, ID_NET_NAME_SLOT, ID_NET_NAME_PATH

回归传统命名方式:

(1) 编辑/etc/default/grub配置文件

GRUB_CMDLINE_LINUX="net.ifnames=0 rhgb quiet"

(2) 为grub2生成其配置文件

grub2-mkconfig -o /etc/grub2.cfg

(3) 重启系统

地址配置工具:nmcli

nmcli  [ OPTIONS ] OBJECT { COMMAND | help }

device - show and manage network interfaces

connection - start, stop, and manage network connections

如何修改IP地址等属性:

#nmcli connection modify IFACE [+|-]setting.property value

setting.property:

ipv4.addresses

ipv4.gateway

ipv4.dns

ipv4.method

网络接口配置tui工具:nmtui

主机名称配置工具:hostnamectl

继续阅读