ifconfig
ifconfig是传统的网络管理命令,用于查看和配置网络接口,常规使用方法如下:
ifconfig [-a] :用于查看当前所有网络接口的状态,-a可省略
[root@localhost ~]# ifconfig eno16777736: flags=4163mtu 1500 #网络接口名、状态、最大传输单元 inet 192.168.254.148 netmask 255.255.255.0 broadcast 192.168.254.255 #IP地址、子网掩码、组播地址 inet6 fe80::20c:29ff:fe1f:3407 prefixlen 64 scopeid 0x20 ether 00:0c:29:1f:34:07 txqueuelen 1000 (Ethernet) #MAC地址、网络类型 RX packets 9784 bytes 6661801 (6.3 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 3204 bytes 334670 (326.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73 mtu 65536 #本地回还测试网卡 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1 (Local Loopback) RX packets 8 bytes 704 (704.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 8 bytes 704 (704.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 virbr0: flags=4099 mtu 1500 inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255 ether 52:54:00:b9:d3:ee txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ipconfig INTERFACE:用于查看具体某个网路接口的信息
[root@localhost ~]# ifconfig eno16777736 eno16777736: flags=4163mtu 1500 inet 192.168.254.148 netmask 255.255.255.0 broadcast 192.168.254.255 inet6 fe80::20c:29ff:fe1f:3407 prefixlen 64 scopeid 0x20 ether 00:0c:29:1f:34:07 txqueuelen 1000 (Ethernet) RX packets 10412 bytes 6710915 (6.4 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 3386 bytes 363486 (354.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ifconfig INTERFACE [up|down]:启用和关闭某网络接口
使用ifconfig配置IP地址的两种方法
ifconfig INTERFACE ip/mask [up],例如:ifconfig eno16777736 192.168.100.100/24
ifconfig INTERFACE ip mask 例如ifconfig eno16777736 192.168.100.100 255.255.255.0
以上两种方法配置IP地址可立即生效,但是重启network服务或重启电脑后就会失效。
可以通过 ifconfig [-]promisc 来开启或关闭混杂模式,混杂模式主要用于网络抓包
ifconfig promisc :开启混杂模式
ifconfig -promisc: 关闭混杂模式
route
route命令主要用于路由查看、创建、修改、删除等管理操作,具体用法如下:
route -n :查看路由状态
[root@localhost ~]# route -n Kernel IP routing table Destination(目标) Gateway(网关) Genmask(掩码) Flags(状态,U代表启用,G代表从网关连接,H代表仅连接到某主机) Metric(路由开销) Ref Use Iface(网络接口名称) 0.0.0.0 192.168.254.2 0.0.0.0 UG 100 0 0 eno16777736 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 192.168.254.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736
route add :增加路由条目。
格式:route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] -net为网络路由,-host为主机路由
示例1:增加一条主机路由,目标:10.10.10.1 子网掩码:255.255.255.0 网关:192.168.254.2
[root@localhost ~]# route add -host 10.10.10.1 gw 192.168.254.2 dev eno16777736 [root@localhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.254.2 0.0.0.0 UG 100 0 0 eno16777736 10.10.10.21 192.168.254.2 255.255.255.255 UGH 0 0 0 eno16777736 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 192.168.254.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736
示例2:增加一条网络路由,目标:10.10.10.0 子网掩码:255.255.255.0 网关:192.168.254.2
[root@localhost ~]# route add -net 10.10.10.0/24 gw 192.168.254.2 dev eno16777736 [root@localhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.254.2 0.0.0.0 UG 100 0 0 eno16777736 10.10.10.0 192.168.254.2 255.255.255.0 UG 0 0 0 eno16777736 10.10.10.21 192.168.254.2 255.255.255.255 UGH 0 0 0 eno16777736 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 192.168.254.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736
route del:删除路由条目
格式:route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
示例1:删除一条主机路由,目标:10.10.10.1 子网掩码:255.255.255.0 网关:192.168.254.2
[root@localhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.254.2 0.0.0.0 UG 100 0 0 eno16777736 10.10.10.0 192.168.254.2 255.255.255.0 UG 0 0 0 eno16777736 10.10.10.21 192.168.254.2 255.255.255.255 UGH 0 0 0 eno16777736 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 192.168.254.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736 [root@localhost ~]# route del 10.10.10.21 [root@localhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.254.2 0.0.0.0 UG 100 0 0 eno16777736 10.10.10.0 192.168.254.2 255.255.255.0 UG 0 0 0 eno16777736 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 192.168.254.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736
示例2:删除一条网络路由,目标:10.10.10.0 子网掩码:255.255.255.0 网关:192.168.254.2
[root@localhost ~]# route del -net 10.10.10.0/24 [root@localhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.254.2 0.0.0.0 UG 100 0 0 eno16777736 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 192.168.254.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736
Tip:删除主机路由条目时可 [-host] 和[netmask]可省略,进指定删除的目标IP即可,删除网络路由时[-net]和[netmask]均不能省略。
DNS设置与解析
一般本地会从/etc/resolv.conf文件中读取DNS信息,文件内容如下:
# Generated by NetworkManagersearch localdomainnameserver 192.168.21.2 #格式为nameserver DNS地址,共计可以设置三个DNS地址。
DNS正解,FQDN-->IP
dig -t A FQDN :将FQDN解析为IP地址
[root@localhost ~]# dig -t A n-test.testAD.com; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> -t A n-wangyanglin.zjipst.com;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43502;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; MBZ: 0005 , udp: 4000;; QUESTION SECTION:;n-test.testAD.com. IN A;; ANSWER SECTION:n-test.testAD.com. 5 IN A 192.168.252.235;; Query time: 26 msec;; SERVER: 192.168.21.2#53(192.168.21.2);; WHEN: Sat May 06 16:04:21 CST 2017;; MSG SIZE rcvd: 69
host -t A FQDN(计算机名):将FQDN(计算机名)解析为IP地址
[root@localhost ~]# host -t A n-test.testAD.comn-test.testAD.com has address 192.168.252.235
DNS反解,IP-FQDN
dig -x ip-address:将ip地址解析为FQDN名
[root@localhost ~]# dig -x 115.239.210.27; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> -x 115.239.210.27;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 59372;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; MBZ: 0005 , udp: 4000;; QUESTION SECTION:;27.210.239.115.in-addr.arpa. IN PTR;; AUTHORITY SECTION:239.115.in-addr.arpa. 5 IN SOA ns.zjnbptt.net.cn. root. 2017021401 3600 1800 604800 3600;; Query time: 29 msec;; SERVER: 192.168.21.2#53(192.168.21.2);; WHEN: Sat May 06 16:10:21 CST 2017;; MSG SIZE rcvd: 113
host -t PTR IP地址:将IP地址解析为FQDN名
[root@localhost ~]# host -t PTR 192.168.254.22.192.168.254.in-addr.arpa domain name pointer AD03.test.com.
netstat
netstat命令主要用于显示网络连接、路由表、网络接口状态等相关参数
显示网络连接
格式: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:显示TCP协议相关连接的所有状态信息,IP地址和端口号以数字显示
-tnl:显示TCP协议相关处于坚挺状态的所有连接信息,IP地址和端口已数字显示
-uan:显示UDP协议相关连接的所有状态信息,IP地址和端口号以数字显示
-unl:显示UDP协议相关处于坚挺状态的所有连接信息,IP地址和端口已数字显示
显示路由表
格式:netstat {--route|-r} [--numeric|-n]
参数:
-r: 显示内核路由表 -n: 数字格式
显示接口统计数据
格式:netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
IP
用户查看和配置网络接口、路由、设备、策略路由及隧道
格式:ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
IP link:用于网络设备链路配置
子命令
set DEV {up|down}:将某个网络接口关闭或开启
[root@localhost ~]# ip link set eno16777736 down;ip link set eno16777736 up
show DEV :查看指定设备,若不加DEV,默认显示所有网络接口
show up :查看出于开启状态的网络设备
IP addr:用户管理网络地址和相关协议
格式:ip addr { add | del } IFADDR dev STRING
示例1:为网卡eno16777736增加一个IP地址192.168.100.100/24
[root@localhost ~]# ip addr add 192.168.100.100/24 dev eno16777736[root@localhost ~]# ip addr show dev eno167777362: eno16777736:mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:1f:34:07 brd ff:ff:ff:ff:ff:ff inet 192.168.21.128/24 brd 192.168.21.255 scope global dynamic eno16777736 valid_lft 1116sec preferred_lft 1116sec inet 192.168.100.100/24 scope global eno16777736 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe1f:3407/64 scope link valid_lft forever preferred_lft forever
示例2:将网卡eno16777736上的IP地址192.168.100.100/24删除
[root@localhost ~]# ip addr del 192.168.100.100/24 dev eno16777736[root@localhost ~]# ip addr show eno167777362: eno16777736:mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:1f:34:07 brd ff:ff:ff:ff:ff:ff inet 192.168.21.128/24 brd 192.168.21.255 scope global dynamic eno16777736 valid_lft 1382sec preferred_lft 1382sec inet6 fe80::20c:29ff:fe1f:3407/64 scope link valid_lft forever preferred_lft forever
示例3:将网卡eno16777736的IP地址改为192.168.100.100/24
ip addr { add | del } IFADDR dev STRING
label LABEL:配置IP地址时可以为该接口指定标注
[scope {global|link|host}]:指明作用域 global: 全局可用; link: 仅链接可用; host: 本机可用; broadcast ADDRESS]:指明广播地址
ip addr show: 查看指定网络接口的协议和IP地址的相关信息。子命令如下
[dev]:查看指定网络设备
[label]:通过网络设备标注查看指定网络设备
[primary and secondary] :查看主网络设备和次网络设备。
ip address flush - 清空协议和IP地址。 使用格式同show
ip route:管理路由表。子命令如下:
增加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP 。 主机路由TARGET仅填写IP地址即可,网络路由TARGET必须填写 IP/netmask
示例1:增加一条主机路由,主机IP地址为10.10.10.21
[root@localhost ~]# ip route add 10.10.10.21 via 192.168.1.103 dev eno16777736 src 192.168.1.100 [root@localhost ~]# ip route show dev eno16777736default via 192.168.21.2 proto static metric 100 10.10.10.21 via 192.168.1.103 src 192.168.1.100 192.168.1.0/24 proto kernel scope link src 192.168.1.100 192.168.1.0/24 proto kernel scope link src 192.168.1.100 metric 100 192.168.21.0/24 proto kernel scope link src 192.168.21.128 metric 100
示例2:增加一条网络路由,主机网络地址为10.10.10.0/24
[root@localhost ~]# ip route add 10.10.10.0/24 via 192.168.1.103 src 192.168.1.100 [root@localhost ~]# ip route show dev eno16777736default via 192.168.21.2 proto static metric 100 10.10.10.0/24 via 192.168.1.103 src 192.168.1.100 10.10.10.21 via 192.168.1.103 src 192.168.1.100 192.168.1.0/24 proto kernel scope link src 192.168.1.100 192.168.1.0/24 proto kernel scope link src 192.168.1.100 metric 100 192.168.21.0/24 proto kernel scope link src 192.168.21.128 metric 100
删除路由:ip route add TARGET
ip route show:查看当前路由表
ip route flush:清空路由表
dev IFACE:指定接口
via PREFIX:指定网关
ss
功能:ss的功能和netstat类似,但是更强大,可以用来查看网路接口、路由表、网络连接等相关参数
格式:ss [OPTION]... [FILTER]
option参数:
-t: tcp协议相关 -u: udp协议相关 -w: 裸套接字相关 -x:unix sock相关 -l: listen状态的连接 -a: 所有 -n: 数字格式 -p: 相关的程序及PID -e: 扩展的信息 -m:内存用量 -o:计时器信息
FILTER=[ state TCP-STATE ] [ EXPRESSION ] :FILTER为模式过滤器,state为scoket状态,expression为相关表达式
state主要有一下几种:
LISTEN: 监听 ESTABLISHED:已建立的连接 FIN_WAIT_1:套接字已关闭,正在关闭连接[发送FIN,没有收到ACK也没有收到FIN]
FIN_WAIT_2:套接字已关闭,正在等待远程套接字关闭[在FIN_WAIT_1状态下收到发过去FIN对应的ACK]
SYN_SENT: 套接字正在试图主动建立连接[发送SYN后还没有收到ACK]
SYN_RECV:正在处于连接的初始同步状态[收到对方的SYN,但还没收到自己发过去的SYN的ACK
CLOSED:远程套接字已经关闭:正在等待关闭这个套接字[被动关闭的一方收到FIN]
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注意:网关别名不能使用dhcp协议引导;
给网卡配置多地址:
ifconfig: ifconfig IFACE_ALIAS ip ip addr add 配置文件: ifcfg-IFACE_ALIAS DEVICE=IFACE_ALIAS注意:网关别名不能使用dhcp协议引导;
配置当前主机的主机名:
hostname [HOSTNAME]/etc/sysconfig/network
HOSTNAME=网络接口识别并命名相关的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) 上述均不可用时,则使用传统命名机制;上述命名机制中,有的需要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.dns1 ipv4.method manual网络接口配置tui工具:nmtui
主机名称配置工具:hostnamectl
status set-hostname网络客户端工具:
lftp, ftp, lftpget, wget# lftp [-p port] [-u user[,password]] SERVER
子命令: get mget ls help# lftpget URL
# ftp
# wget
wget [option]... [URL]... -q: 静默模式 -c: 续传 -O: 保存位置 --limit-rates=: 指定传输速率