一、网络配置命令: 1、ifconfig(配置网络接口命令) 命令格式:ifconfig [interface] ifconfiginterface [aftype] options | address … 命令例子: #查看所有网卡接口的配置信息:ifconfig [-a]
# 查看某网卡接口配置信息 :ifconfig IFACE
# 开启或关闭某网卡接口:ifconfig IFACE [up|down]
# 配置网卡接口IP地址: ifconfigIFACE IP/mask [up]/ifconfigIFACE IP netmask MASK 1
| ~]# ifconfig eth0:0 1.1.1.1/32 up
|
# 启用或禁用网卡混杂模式:ifconfig IFACE [-]promisc 1
| ~]# ifconfig eth0 -promisc # 禁用
|
2、route(路由管理命令) 命令格式:route [-CFvnee] route add/del [-net|-host] target [netmaskNm] [gw Gw] [metric N] [[dev] If] 命令用法: # 查看:
# 添加: 1
2
3
4
| ~]# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0 # 主机路由
~]# 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 # 网段路由
~]# route add default gw 172.16.0.1 # 默认路由
|
# 删除: 1
2
3
| ~]# route del dev eth0
~]# route del -host 192.168.1.3
~]# route del -net 192.168.0.0 netmask 255.255.255.0
|
3、DNS服务器指定 配置文件:/etc/resolv.conf 添加:
nameserver DNS_SERVER_IP1 nameserverDNS_SERVER_IP2 nameserver DNS_SERVER_IP3
4、netstat(网络连接状态显示命令) 命令格式:netstat [OPTION] 选项:-t: tcp协议相关 -u: udp协议相关 -w: raw socket相关 -l: 处于监听状态 -a: 所有状态 -n: 以数字显示IP和端口; -e:扩展格式(显示User及Inode ) -p: 显示相关进程及PID
常用组合: -tan, -uan, -tnl,-unl 显示路由表: netstat {--route|-r} [--numeric|-n] -r: 显示内核路由表(显示) -n: 数字格式 -e:扩展格式(显示Metric)
显示接口统计数据: netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p][--numeric|-n] # 显示所有接口的统计信息:netstat -I ~]#netstat -i # 显示特定接口的统计信息:netstat -IIFACE ~]# netstat -Ieth0
TCP的常见状态: LISTEN:监听 ESTABLISHED:已建立的连接 FIN_WAIT_1:主动关闭,已发出关闭请求,等待对方确认 FIN_WAIT_2:主动关闭,已收到对方关闭传输连接确认,等待对方发送关闭连接请求 SYN_SENT:发送SYN请求,等待对方确认 SYN_RECV:收到一个传输请求,但尚未确认 CLOSED:连接关闭状态
5、ss(网络连接状态显示命令,类似netstat,更灵活速度更快) 格式:ss [OPTION]...[FILTER] 选项: -t:tcp协议相关 -u:udp协议相关 -w:裸套接字相关 -x:unixsock相关 -l:listen状态的连接 -a: 所有 -n:数字格式 -p:相关的程序及PID -e:扩展的信息 -m:内存用量 -o:计时器信息
FILTER:= [ state TCP-STATE ] [ EXPRESSION ] EXPRESSION: dport = sport = 1
| ~]# ss -o state established '( dport = :ssh or sport = :ssh )'
|
常用组合: -tan,-tanl, -tanlp, -uan
二、配置Linux网络属性:ip命令 命令格式:ip [ OPTIONS ]OBJECT { COMMAND | help } OBJECT:= { link | addr | route } link:网络设备属性管理 # 显示接口属性: ip link show [ DEVICE] [up|down] 1
2
| ~]# ip link show eth0
~]# ip link show up # 显示激活状态的接口
|
# 设置接口属性: ip link set DEVICE [{ up|down }|[ mtu MTU ]|[ promisc { on|off }]] 1
| ~]# ip link set eth0 up mtu 1500 promisc on
|
addr:IP地址管理 ipaddr { add | del } IFADDR dev STRING IFADDR可用选项: [labelLABEL]:添加地址时指明网卡别名 [scope{global|link|host}]:指明作用域(global: 全局可用,link: 仅链接可用;host: 本机可用) [broadcastADDRESS]:指明广播地址 # 添加IP ~]# ip addr add label eth0:0 2.2.2.2/24 dev eth0 # 删除IP ~]# ipaddr del label eth0:0 2.2.2.2/24 dev eth0
ip addr { show | flush }[dev DEVICE] [labelPATTERN][primary and secondary] # 显示指定设备IP信息 ~]# ip addr show label eth0:0 deveth0 #显示网卡设备别名的IP信息 # 清空指定设备的IP信息 ~]# ip addr show label eth0:0 dev eth0
route:路由管理 ip route { add | del| change} TARGET via GW devIFACE src SOURCE_IP TARGET: 主机路由:IP;网络路由:NETWORK/MASK # 添加主机路由 ~]#ip route 1.1.1.1 via 192.168.52.2 dev eth0 # 添加网段路由 ~]# ip route add 2.2.2.0/24 via 192.168.52.2 deveth0 src 192.168.52.20 # src指定源IP # 添加网关 ~]# ip route adddefault via GW dev IFACE # 删除路由: ~]# iproute del 1.1.1.1 via 192.168.52.2 dev eth0 # 显示路由信息:ip route show # 清空指定设备的路由列表:ip route flush dev IFACE
三、Linux网络属性配置: 修改配置文件 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”,是否允许dhcpserver分配的dns服务器指向信息直接覆盖 至/etc/resolv.conf文件中;
2、在配置文件中定义路由 配置文件:/etc/sysconfig/network-scripts/route-IFACE 两种风格: (1)TARGET via GW
(2)每三行定义一条路由 ADDRESS#=TARGET NETMASK#=mask GATEWAY#=GW
3、给网卡配置多地址: (1) ifconfig: ifconfig IFACE_ALIAS (2) ip:ip addr add (3)配置文件:ifcfg-IFACE_ALIAS DEVICE=IFACE_ALIAS
注意:网关别名不能使用dhcp协议引导;
4、Linux网络属性配置的tui(text user interface) 命令:system-config-network-tui或setup 注意:记得重启网络服务方能生效;
5、配置当前主机的主机名 临时生效:hostname[HOSTNAME] 永久生效:/etc/sysconfig/network 添加:HOSTNAME= your hostname
6、网络接口识别并命名相关的udev配置文件: /etc/udev/rules.d/70-persistent-net.rules 卸载网卡驱动:modprobe-r e1000 装载网卡驱动:modprobee1000
四、CentOS 7网络属性配置 (1) 网卡命名机制 systemd对网络设备的命名方式: (a)如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1; (b)如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1; (c)如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0; (d)如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56; (e)上述均不可用时,则使用传统命名机制; 上述命名机制中,有的需要biosdevname程序的参与。
(2) 名称组成格式 en:ethernet wl:wlan ww:wwan
名称类型: o<index>:集成设备的设备索引号; s<slot>:扩展槽的索引号; x<MAC>:基于MAC地址的命名; p<bus>s<slot>:enp2s1
(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 ID_NET_NAME_ONBOARD,ID_NET_NAME_SLOT, ID_NET_NAME_PATH
回归传统命名方式: 第一步: 编辑/etc/default/grub配置文件 GRUB_CMDLINE_LINUX="net.ifnames=0rhgb quiet" 第二步: 为grub2生成其配置文件 grub2-mkconfig-o /etc/grub2.cfg 第三步: 重启系统
(4)地址配置工具:nmcli nmcli [ OPTIONS ] OBJECT { COMMAND | help } 如何修改IP地址等属性: Usage:nmcli connection modify IFACE [+|-]setting.property value setting.property: ipv4.addresses ipv4.gateway ipv4.dns1 ipv4.method
1
2
3
4
5
6
7
8
9
10
| #修改IP:
[iyunv@centos7 ~]# nmcli con modify eth0 ipv4.addresses 192.168.52.7/24
# 增加IP:
[iyunv@centos7 ~]# nmcli con modify eth0 +ipv4.addresses 1.1.1.1/24
# 删减IP:
[iyunv@centos7 ~]# nmcli con modify eth0 -ipv4.addresses 1.1.1.1/24
# 修改网关:
[iyunv@centos7 ~]# nmcli con modify eth0 ipv4.gateway 192.168.52.2
# 修改DNS
[iyunv@centos7 ~]# nmcli con modify eth0 ipv4.dns 8.8.8.8
|
以上编辑操作都需要重启生效:
1
| [iyunv@centos7 ~]# nmcli con down eth0;nmcli con up eth0 # 重启生效
|
Usage:nmcli device { COMMAND | help } COMMAND:= { status|show|connect|disconnect|delete|wifi} status:显示所有接口的状态 show[<ifname>]:显示指定接口的详细信息 connect <ifname>:连接指定接口 disconnect<ifname>:断开指定接口连接 delete <ifname>:删除指定接口 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| [iyunv@centos7 ~]# nmcli dev show eth0
GENERAL.DEVICE: eth0
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:01:DC:01
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: eth0
GENERAL.CON-PATH:
/org/freedesktop/NetworkManager/ActiveConnection/4
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.52.7/24
IP4.GATEWAY: 192.168.52.2
IP6.ADDRESS[1]:
fe80::20c:29ff:fe01:dc01/64
IP6.GATEWAY:
|
(5)网络接口配置tui工具:nmtui 1
| [iyunv@centos7 ~]# nmtui
|
(6)主机名称配置工具:hostnamectl {status | set-hostname } 1
2
3
4
5
6
7
8
9
10
11
12
13
| [iyunv@centos7 ~]# hostnamectl status
Static hostname: localhost.localdomain
Icon name: computer
Chassis: n/a
Machine ID:
800b1ae9531f4c38964ddd3322f4624b
Boot ID:
ec6a5610e3444e668bed2c81bc981a5d
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-229.el7.x86_64
Architecture: x86_64
|
1
| [iyunv@centos7 ~]# hostnamectl set-hostname Centos7 # 永久生效
|
|