- IP地址分类
- 如何将Linux主机接入到网络中
- 网络接口的命名方式
- ifcfg系列命令
- 如何配置主机名
- 如何配置DNS服务器指向
- iproute2系列命令
- Linux管理网络服务
- 永久生效配置路由条目
- 如何为接口配置多个IP地址
IP地址分为5类,A,B,C,D,E,其中D和E在工做中不会使用;node
第一段为网络号,后三段为主机号;linux
有效的网络号:0 000 0000 - 0 111 1111 = 1 -127ios
网络数量:126个,127被用做回环地址;vim
每一个网络中的主机数量:2^24-2,减去全为0和全为1的;centos
默认子网掩码:255.0.0.0, /8;子网掩码用于与IP地址按位进行与运算,从而取出其网络地址;服务器
私网地址:10.0.0.0/255.0.0.0网络
前两段为网络号,后两段为主机号;ssh
有效的网络号:10 00 0000 - 10 11 1111 = 128-191socket
网络数量:2^14tcp
每一个网络中的主机数量:2^16-2
默认子网掩码:255.255.0.0, /16;
私网地址:172.16.0.0 - 172.31.0.0
前三段为网络号,最后一段为主机号;
有效的网络号:110 0 0000 - 110 1 1111 = 192-223;
网络数量:2^21
每一个网络中的主机数量:2^8-2;
默认子网掩码:255.255.255.0 , /24 ;
1110 0000 - 1110 1111 = 224-239
240-255
注意:IP地址中主机位全为1的表示广播地址;主机位全为0的表示网络地址;
静态指定
命令方式:
ifconfig:配置IP,子网掩码; route:配置路由; netstat:状态及统计数据查看工具;
ip OBJECT: addr:地址和掩码 route:路由 link:接口
Centos7专用:
nmcli(命令行工具)
nmtui(图形化工具)
配置文件方式:redhat及相关发行版
# 网络配置 /etc/sysconfig/network-scripts/ifcfg-NETCARD_NAME # DNS配置 /etc/resolv.conf # 主机名配置 hostname 配置文件:/etc/sysconfig/network CentOS7系统:hostnamectl命令
动态分配
依赖于本地网络中有DHCP服务。
以太网:ethX,例如:eth0, eth1, ...
ppp网络:pptX,例如:ppp0, ppp1, ...
支持多种不一样命名机制,firmware拓扑结构;
(1)若是firmware或bios为主板上即成的设备提供的索引信息可用,则根据此索引进行命名,如,eno1,eno2, ... (2)若是firmware或bios为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此信息进行命名,如ens1, ens2, ... (3)若是硬件接口的物理位置信息可用,则根据此信息命名,如enp2s0,... (4)若是用户显示定义,也可根据MAC地址命名,例如:enx122161ab2e10,...
命名格式组成:
en: ethernet wl: wlan ww: wwan # 名称类型 o<index>:集成设备的设备索引号; s<slot>:扩展槽的索引号; x<MAC>:基于Mac地址的命名; p<bus>s<slot>:基于总线及槽的拓扑结构进行命名;
使用格式
ifconfig [INFACE] [INFACE]:表示网卡接口名称;
示例
[root@bj-1-141-enzhi ~]# ifconfig eno16777728 eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.141 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::20c:29ff:fe68:7a1 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:68:07:a1 txqueuelen 1000 (Ethernet) RX packets 328657 bytes 68091806 (64.9 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 169435 bytes 22070755 (21.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
使用格式
ifconfig INTERFACE IP/MASK [up] ifconfig INTERFACE IP netmask NETMASK [up]
示例
[root@bj-1-141-enzhi ~]# ifconfig eno33554960 192.168.1.100/24 up [root@bj-1-141-enzhi ~]# ifconfig eno33554960 eno33554960: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::20c:29ff:fe68:7ab prefixlen 64 scopeid 0x20<link> ether 00:0c:29:68:07:ab txqueuelen 1000 (Ethernet) RX packets 120 bytes 9113 (8.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 30 bytes 3302 (3.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@bj-1-141-enzhi ~]# ifconfig eno33554960 192.168.1.188 netmask 255.255.255.0 up [root@bj-1-141-enzhi ~]# ifconfig eno33554960 eno33554960: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.188 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::20c:29ff:fe68:7ab prefixlen 64 scopeid 0x20<link> ether 00:0c:29:68:07:ab txqueuelen 1000 (Ethernet) RX packets 313 bytes 24954 (24.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 107 bytes 11674 (11.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
注意:ifconfig命令会当即将配置送往内核中,并当即生效;重启后无效;
功用:路由查看和管理
[root@bj-1-141-enzhi ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eno16777728 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eno33554960 192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777728 192.168.2.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777728
使用格式
route add [-net | -host] target [netmask Nm] [gw Gw] [[dev] If]
示例
练习一、添加目标地址为172.16.100.7的主机路由;
[root@bj-1-141-enzhi ~]# route add -host 172.16.100.7 dev eno16777728 [root@bj-1-141-enzhi ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eno16777728 0.0.0.0 192.168.1.1 0.0.0.0 UG 101 0 0 eno33554960 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eno33554960 172.16.100.7 0.0.0.0 255.255.255.255 UH 0 0 0 eno16777728 192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777728 192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 eno33554960 # 或者 [root@bj-1-141-enzhi ~]# route add -host 172.16.100.7 gw 192.168.1.122 [root@bj-1-141-enzhi ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eno16777728 0.0.0.0 192.168.1.1 0.0.0.0 UG 101 0 0 eno33554960 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eno33554960 172.16.100.7 192.168.1.122 255.255.255.255 UGH 0 0 0 eno33554960 192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777728 192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 eno33554960
练习2:添加目标地址网络为10.0.0.0/8的网络路由条目;
[root@bj-1-141-enzhi ~]# route add -net 10.0.0.0/8 gw 192.168.1.122 dev eno33554960 [root@bj-1-141-enzhi ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eno16777728 0.0.0.0 192.168.1.1 0.0.0.0 UG 101 0 0 eno33554960 10.0.0.0 192.168.1.122 255.0.0.0 UG 0 0 0 eno33554960 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eno33554960 172.16.100.7 192.168.1.122 255.255.255.255 UGH 0 0 0 eno33554960 192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777728 192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 eno33554960
练习三、添加默认路由
[root@bj-1-141-enzhi ~]# route add default gw 192.168.1.141 dev eno16777728 [root@bj-1-141-enzhi ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.141 0.0.0.0 UG 0 0 0 eno16777728 0.0.0.0 192.168.1.1 0.0.0.0 UG 101 0 0 eno33554960 10.0.0.0 192.168.1.122 255.0.0.0 UG 0 0 0 eno33554960 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eno33554960 172.16.100.7 192.168.1.122 255.255.255.255 UGH 0 0 0 eno33554960 192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777728 192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 eno33554960
使用格式
route del [-net | -host] target [gw Gw] [netmask Nm] [[dev] If]
示例
# 删除主机路由 [root@bj-1-141-enzhi ~]# route del -host 172.16.100.7 您在 /var/spool/mail/root 中有新邮件 [root@bj-1-141-enzhi ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.141 0.0.0.0 UG 0 0 0 eno16777728 0.0.0.0 192.168.1.1 0.0.0.0 UG 101 0 0 eno33554960 10.0.0.0 192.168.1.122 255.0.0.0 UG 0 0 0 eno33554960 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eno33554960 192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777728 192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 eno33554960 # 删除网络路由 [root@bj-1-141-enzhi ~]# route del -net 10.0.0.0/8 [root@bj-1-141-enzhi ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.141 0.0.0.0 UG 0 0 0 eno16777728 0.0.0.0 192.168.1.1 0.0.0.0 UG 101 0 0 eno33554960 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eno33554960 192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777728 192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 eno33554960
netstat命令用于显示网络相关信息,如网络链接,路由表,接口状态等;
使用格式
netstat -rn -r:显示路由表 -n:数字格式显示
示例
[root@bj-1-141-enzhi ~]# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.1.141 0.0.0.0 UG 0 0 0 eno16777728 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eno33554960 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eno33554960 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777728 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eno33554960
使用格式
netstat [--tcp|-t] [--udp|-u] [--udplite|-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和port; -e:扩展格式; -p:显示相关进程PID;
示例
练习一、查看全部tcp协议处于监听状态的链接;
[root@bj-1-141-enzhi ~]# netstat -tnlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1055/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2153/master tcp6 0 0 :::22 :::* LISTEN 1055/sshd tcp6 0 0 ::1:25 :::* LISTEN 2153/master
练习二、显示tcp协议相关全部状态的链接信息;
[root@bj-1-141-enzhi ~]# netstat -tanlp Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1055/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2153/master tcp 0 0 192.168.1.141:22 192.168.1.106:2889 ESTABLISHED 2397/sshd: root@pts tcp 0 0 192.168.1.141:22 192.168.1.106:2960 ESTABLISHED 3332/sshd: root@pts tcp 0 0 192.168.1.141:22 192.168.1.121:50362 ESTABLISHED 2193/sshd: root@pts tcp 0 36 192.168.1.141:22 192.168.1.121:50471 ESTABLISHED 2851/sshd: root@pts tcp6 0 0 :::22 :::* LISTEN 1055/sshd tcp6 0 0 ::1:25 :::* LISTEN 2153/master
使用格式
netstat -i:显示全部接口的信息; netstat -I<IFACE>:显示指定接口的信息;
示例
[root@bj-1-141-enzhi ~]# netstat -i Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eno16777 1500 9868 0 0 0 5115 0 0 0 BMRU eno33554 1500 6283 0 0 0 411 0 0 0 BMRU lo 65536 1292 0 0 0 1292 0 0 0 LRU [root@bj-1-141-enzhi ~]# netstat -I Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eno16777 1500 9890 0 0 0 5127 0 0 0 BMRU eno33554 1500 6284 0 0 0 411 0 0 0 BMRU lo 65536 1292 0 0 0 1292 0 0 0 LRU [root@bj-1-141-enzhi ~]# netstat -Ieno16777728 Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eno16777 1500 9914 0 0 0 5140 0 0 0 BMRU
使用格式
ifup IFACE:启用接口 ifdown IFACE:禁用接口
注意:经过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE,来识别接口并完成配置;
示例
[root@bj-1-141-enzhi ~]# ifdown eno33554960 [root@bj-1-141-enzhi ~]# ifup eno33554960
查看主机名
hostname
配置主机名
hostname HOSTNAME # 当前有效,重启无效;
示例
[root@bj-1-141-enzhi ~]# hostname bj-1-141-enzhi.com [root@bj-1-141-enzhi ~]# hostname node1.enzhi.com [root@bj-1-141-enzhi ~]# hostname node1.enzhi.com
此命令仅使用于centos7系统;
使用格式
hostnamectl [OPTIONS...] {COMMAND}
经常使用选项
status:查看当前主机名设定 set-hostname HOSTNAME:设定主机名,永久有效;
查看当前主机名设定
[root@bj-1-141-enzhi ~]# hostnamectl status Static hostname: bj-1-141-enzhi.com Pretty hostname: BJ-1-141-enzhi.com Transient hostname: node1.enzhi.com Icon name: computer-vm Chassis: vm Machine ID: e8db53fed0a04615b1f91697eb5c58f0 Boot ID: 13ec2f519021428b881660f97fe6c766 Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-327.el7.x86_64 Architecture: x86-64
设定主机名
[root@bj-1-141-enzhi ~]# hostnamectl set-hostname bj-1-141.enzhi.com 您在 /var/spool/mail/root 中有新邮件 [root@bj-1-141-enzhi ~]# hostnamectl status Static hostname: bj-1-141.enzhi.com Icon name: computer-vm Chassis: vm Machine ID: e8db53fed0a04615b1f91697eb5c58f0 Boot ID: 13ec2f519021428b881660f97fe6c766 Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-327.el7.x86_64 Architecture: x86-64
配置文件:/etc/sysconfig/network
配置文件格式
HOSTNAME=bj-1-141.enzhi.com
注意:此方法不是当即生效,重启后一直有效;
配置文件:/etc/resolv.conf
文件格式
nameserver DNS_SERVER_IP
示例
[root@bj-1-141-enzhi ~]# cat /etc/resolv.conf # Generated by NetworkManager search enzhi.com nameserver 192.168.1.1 nameserver 8.8.8.8
如何测试
测试dns配置可否解析可以使用:host, nslookup, dig三种命令的其中一种;若是系统没有安装三种命令,则使用yum -y install bind-utils,便可;
示例
[root@bj-1-141-enzhi ~]# yum -y install bind-utils [root@bj-1-141-enzhi ~]# rpm -ql bind-utils /etc/trusted-key.key /usr/bin/dig /usr/bin/host /usr/bin/nslookup /usr/bin/nsupdate /usr/share/man/man1/dig.1.gz /usr/share/man/man1/host.1.gz /usr/share/man/man1/nslookup.1.gz /usr/share/man/man1/nsupdate.1.gz # 使用dig与nslookup解析百度域名 [root@bj-1-141-enzhi ~]# dig -t A www.baidu.com ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3 <<>> -t A www.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30987 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 6 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.baidu.com. IN A ;; ANSWER SECTION: www.baidu.com. 208 IN CNAME www.a.shifen.com. www.a.shifen.com. 68 IN A 119.75.218.70 www.a.shifen.com. 68 IN A 119.75.217.109 ;; AUTHORITY SECTION: a.shifen.com. 361 IN NS ns1.a.shifen.com. a.shifen.com. 361 IN NS ns3.a.shifen.com. a.shifen.com. 361 IN NS ns5.a.shifen.com. a.shifen.com. 361 IN NS ns4.a.shifen.com. a.shifen.com. 361 IN NS ns2.a.shifen.com. ;; ADDITIONAL SECTION: ns1.a.shifen.com. 395 IN A 61.135.165.224 ns2.a.shifen.com. 416 IN A 180.149.133.241 ns3.a.shifen.com. 395 IN A 61.135.162.215 ns4.a.shifen.com. 368 IN A 115.239.210.176 ns5.a.shifen.com. 67 IN A 119.75.222.17 ;; Query time: 22 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: 日 1月 01 21:54:46 CST 2017 ;; MSG SIZE rcvd: 271 [root@bj-1-141-enzhi ~]# nslookup www.baidu.com Server: 192.168.1.1 Address: 192.168.1.1#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 119.75.217.109 Name: www.a.shifen.com Address: 119.75.218.70
功用:显示或控制路由设备,策略路由和隧道
使用格式
ip [ OPTIONS ] OBJECT { COMMAND | help }
经常使用OBJECT
OBJECT={link | addr | route | netns}
功用:网络设备配置
使用格式
ip link set dev NAME(default):指明要管理的设备,dev关键字可省略; up and down:启用或禁用设备; multicast on or molticast off:启用或禁用多播功能; name NAME:重命名接口;须要中止网络服务; mtu NUMBER:设置MTU大小,默认1500;
使用示例
练习一、禁用设备或启用设备
# centos7 [root@bj-1-141-enzhi ~]# ip link set eno33554960 down [root@bj-1-141-enzhi ~]# ip link set eno33554960 up # centos6 [root@bj-1-160-enzhi network-scripts]# ip link set eth1 up [root@bj-1-160-enzhi network-scripts]# ip addr show eth1 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:18:ec:42 brd ff:ff:ff:ff:ff:ff inet6 fe80::20c:29ff:fe18:ec42/64 scope link valid_lft forever preferred_lft forever [root@bj-1-160-enzhi network-scripts]# ip link set eth1 down You have new mail in /var/spool/mail/root [root@bj-1-160-enzhi network-scripts]# ip addr show eth1 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 00:0c:29:18:ec:42 brd ff:ff:ff:ff:ff:ff
练习二、禁用eth1网卡多播功能;
[root@bj-1-160-enzhi ~]# ip addr show eth1 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:18:ec:42 brd ff:ff:ff:ff:ff:ff inet6 fe80::20c:29ff:fe18:ec42/64 scope link valid_lft forever preferred_lft forever [root@bj-1-160-enzhi ~]# ip link set eth1 multicast off You have new mail in /var/spool/mail/root [root@bj-1-160-enzhi ~]# ip addr show eth1 3: eth1: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:18:ec:42 brd ff:ff:ff:ff:ff:ff inet6 fe80::20c:29ff:fe18:ec42/64 scope link valid_lft forever preferred_lft forever
练习三、重命名接口名称
[root@bj-1-141 ~]# systemctl stop network.service [root@bj-1-141 ~]# ip link set eno33554960 name eno33557788 [root@bj-1-141 ~]# systemctl start network.service [root@bj-1-141 ~]# ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:68:07:a1 brd ff:ff:ff:ff:ff:ff inet 192.168.1.141/24 brd 192.168.1.255 scope global eno16777728 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe68:7a1/64 scope link valid_lft forever preferred_lft forever 3: eno33557788: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 00:0c:29:68:07:ab brd ff:ff:ff:ff:ff:ff
使用格式
ip netns list:列出全部的netns; ip netns add NAME:添加一个名称空间; ip link set INTERFACE netns netns_NAME:将指定的接口移动至指定名称空间中; ip netns exec netns_NAME ip link show:查看名称空间中的设备信息; ip netns del netns_NAME:删除指定名称空间;
示例
练习一、在eno33557788接口添加一个名称空间,名为mynetns;
[root@bj-1-141 ~]# ip netns add mynetns [root@bj-1-141 ~]# ip netns list mynetns
练习二、将eno33557788接口移动至mynetns名称空间;
[root@bj-1-141 ~]# ip link set eno33557788 netns mynetns
练习三、查看mynetns名称空间中的设备信息;
[root@bj-1-141 ~]# ip netns exec mynetns ip link show 1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 3: eno33557788: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000 link/ether 00:0c:29:68:07:ab brd ff:ff:ff:ff:ff:ff
练习四、删除mynetns名称空间
[root@bj-1-141 ~]# ip netns del mynetns
添加接口IP地址
ip addr add IFADDR dev IFACE [label NAME] [broadcast ADDRESS] [label NAME]:为额外添加的地址指明接口名;例如:eno33554960:0, eth0:0 [broadcast ADDRESS]:广播地址;会根据ip和netmask自动计算得出;
示例:添加eno33554960:0接口地址为192.168.1.123/24
[root@bj-1-141 ~]# ip addr add 192.168.1.123/24 dev eno33554960 label eno33554960:0 您在 /var/spool/mail/root 中有新邮件 [root@bj-1-141 ~]# ifconfig eno33554960:0 eno33554960:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.123 netmask 255.255.255.0 broadcast 0.0.0.0 ether 00:0c:29:68:07:ab txqueuelen 1000 (Ethernet)
删除接口IP地址
ip addr del IFADDR dev IFACE
示例:删除192.168.1.123/24,接口为eno33554960:0
[root@bj-1-141 ~]# ip addr del 192.168.1.123/24 dev eno33554960:0
显示接口信息
使用格式:
ip addr show [IFACE] [IFACE]:显示指定接口的IP地址;例如:ip addr show eno33554960 # 注意:默认显示全部接口信息
示例:显示eno33554960的详细信息;
[root@bj-1-141 ~]# ip addr show eno33554960 3: eno33554960: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:68:07:ab brd ff:ff:ff:ff:ff:ff inet 192.168.1.122/24 brd 192.168.1.255 scope global dynamic eno33554960 valid_lft 5990sec preferred_lft 5990sec inet6 fe80::20c:29ff:fe68:7ab/64 scope link valid_lft forever preferred_lft forever
清空接口上全部地址
使用格式:
ip addr flush dev IFACE
示例:清空eno33554960接口全部地址;
[root@bj-1-141 ~]# ip addr flush dev eno33554960 [root@bj-1-141 ~]# ip addr show eno33554960 3: eno33554960: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:68:07:ab brd ff:ff:ff:ff:ff:ff
功用:路由管理
添加路由条目
使用格式:
ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP] TYPE PREFIX:表示目标地址; via:关键字;后面跟上下一跳地址; GW:表示网关地址; [dev IFACE]:指定接口;例如:dev eno33554960, dev eth0 [src SOURCE_IP]:当接口上有多个IP地址时,指定到达目标网络从哪一个IP地址发数据;
示例:
练习一、添加目标地址为172.16.100.7的主机路由,网关地址为192.168.1.141;接口为eno16777728;
[root@bj-1-141 ~]# ip route add 172.16.100.7 via 192.168.1.141 dev eno16777728 [root@bj-1-141 ~]# ip route show default via 192.168.1.1 dev eno16777728 proto static metric 100 172.16.100.7 via 192.168.1.141 dev eno16777728 192.168.1.0/24 dev eno16777728 proto kernel scope link src 192.168.1.141 metric 100
练习二、添加目标网络地址为10.0.0.0/8的网络路由,下一跳为192.168.1.141,接口为eno16777728;
[root@bj-1-141 ~]# ip route add 10.0.0.0/8 via 192.168.1.141 dev eno16777728 [root@bj-1-141 ~]# ip route show default via 192.168.1.1 dev eno16777728 proto static metric 100 10.0.0.0/8 via 192.168.1.141 dev eno16777728 172.16.100.7 via 192.168.1.141 dev eno16777728 192.168.1.0/24 dev eno16777728 proto kernel scope link src 192.168.1.141 metric 100
删除路由条目
使用格式:
ip route del TYPE PREFIX
示例:删除主机路由172.16.100.7;删除目标网络为10.0.0.8/8的网络路由条目;
[root@bj-1-141 ~]# ip route del 172.16.100.7 dev eno16777728 [root@bj-1-141 ~]# ip route del 10.0.0.0/8 dev eno16777728
获取路由条目建立信息
使用格式:
ip route get TYPE PREFIX
示例:添加一个网络路由,并获取详细信息;
[root@bj-1-141 ~]# ip route add 10.0.0.0/8 via 192.168.1.141 dev eno16777728 [root@bj-1-141 ~]# ip route get 10.0.0.0/8 10.0.0.0 dev eno16777728 src 192.168.1.141 cache
功用:与netstat命令相似,都是获取其网络链接状态信息;可以使用FILTER过滤其指定的信息;
使用格式
ss [OPTIONS] [FILTER]
经常使用选项
-t:tcp协议相关的链接; -u:udp协议相关的链接; -w:raw socket相关的链接; -l:监听状态的链接; -a:全部状态的链接; -n:数字格式显示; -p:相关的程序及PID; -e:扩展格式信息; -m:内存用量; -o:计时器信息; [FILTER]= [ state TCP-STATE ] [EXPRESSION] EXPRESSION: dport= sport=
TCP的常见状态
LISTEN ESTABLISHED FIN_WAIT_1 FIN_WAIT_2 SYN_SENT SYN_RECV CLOSED
示例:
练习一、显示全部tcp协议相关的信息;
[root@bj-1-141 ~]# ss -tnlp State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* users:(("sshd",pid=1055,fd=3)) LISTEN 0 100 127.0.0.1:25 *:* users:(("master",pid=2153,fd=13)) LISTEN 0 128 :::22 :::* users:(("sshd",pid=1055,fd=4)) LISTEN 0 100 ::1:25 :::* users:(("master",pid=2153,fd=14))
练习二、显示tcp协议相关的全部状态信息;
[root@bj-1-141 ~]# ss -tan State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* ESTAB 0 36 192.168.1.141:22 192.168.1.121:49896 LISTEN 0 128 :::22 :::* LISTEN 0 100 ::1:25 :::*
练习三、显示tcp协议相关的全部信息,但只显示原端口与目标端口为22的链接状态;
[root@bj-1-160-enzhi ~]# ss -tan '( dport = :22 or sport = :22 )' State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 :::22 :::* LISTEN 0 128 *:22 *:* ESTAB 0 0 192.168.1.160:22 192.168.1.121:49824
练习四、查看tcp协议相关的链接信息中状态为ESTABLISHED的全部信息;
[root@bj-1-160-enzhi ~]# ss -tanl state ESTABLISHED Recv-Q Send-Q Local Address:Port Peer Address:Port 0 40 192.168.1.160:22 192.168.1.121:49824 0 0 192.168.1.160:22 192.168.1.121:50398
IP/DNS/GATEWAY相关等配置文件;
/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相关的配置文件
/etc/sysconfig/network-scripts/route-IFACE
配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE;经过大量参数来定义接口的属性,其可经过vim等文本编辑器直接修改,也可使用专用的命令进行修改;centos6:setup命令,centos7:nmtui命令;
Ifcfg-IFACE配置文件参数
DEVICE=:此配置文件对应的设备的名称; ONBOOT=:在系统引导过程当中是否激活此接口; UUID=:此设备的惟一标识,可不写; BOOTPROTO=:激活此接口时使用什么协议来配置接口属性,经常使用的有dhcp,bootp,static,none; TYPE=Ethernet:指明接口类型,常见的有,Ethernet; DNS1=:主DNS服务器指向; DNS2=:备用DNS服务器指向; DOMAIN=:搜索域; IPADDR=:本机的IP地址; NETMASK=:子网掩码, GATEWAY=:默认网关地址; USERCTL=:是否容许普通用户控制此设备; PEERDNS=:若是BOOTPROTO的值为dhcp,是否容许dhcp server,分配的dns服务器指向覆盖本地手动指向的dns服务器,默认容许; HWADDR=:硬件设备的Mac地址;能够不写; NM_CONTROLLED=yes:是否使用network manager 服务来控制接口;
配置示例
[root@bj-1-160-enzhi network-scripts]# cat ifcfg-eth1 DEVICE=eth1 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.1.161 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=192.168.1.1 # 保存退出并重启网络服务 [root@bj-1-160-enzhi network-scripts]# service network restart Shutting down interface eth0: [ OK ] Shutting down interface eth1: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: Determining if ip address 192.168.1.160 is already in use for device eth0... [ OK ] Bringing up interface eth1: Determining if ip address 192.168.1.161 is already in use for device eth1... [ OK ] [root@bj-1-160-enzhi network-scripts]# ifconfig eth1 eth1 Link encap:Ethernet HWaddr 00:0C:29:18:EC:42 inet addr:192.168.1.161 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe18:ec42/64 Scope:Link UP BROADCAST RUNNING MTU:1500 Metric:1 RX packets:932 errors:0 dropped:0 overruns:0 frame:0 TX packets:24 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:96196 (93.9 KiB) TX bytes:1764 (1.7 KiB)
使用格式
CentOS6:service SERVICE {start|stop|restart|status|reload} CentOS7:systemctl {start|stop|restart|status|reload} SERVICE.service
注意:使用配置文件方式修改网络属性后,若是要生效,须要重启网络服务;
CentOS6:service restart network CentOS7:systemctl restart network.service
配置文件
/etc/sysconfig/network-scripts/route-IFACE
配置文件格式
支持两种配置方式,可是不能够混用;
第一种方式:每行一个路由条目
TARGET via GW TARGET:目标地址; via:关键字 GW:下一跳地址;
示例:
练习一、添加一条主机路由条目,目标主机地址为172.16.100.7,下一跳地址为192.168.1.141;
# CentOS7 配置方式 [root@bj-1-141 network-scripts]# vim route-eno16777728 172.16.100.7 via 192.168.1.141 [root@bj-1-141 network-scripts]# systemctl restart network.service [root@bj-1-141 network-scripts]# ip route show default via 192.168.1.1 dev eno16777728 proto static metric 100 default via 192.168.1.1 dev eno33554960 proto static metric 101 169.254.0.0/16 dev eno33554960 scope link metric 1003 172.16.100.7 via 192.168.1.141 dev eno16777728 proto static metric 100 192.168.1.0/24 dev eno16777728 proto kernel scope link src 192.168.1.141 metric 100 192.168.1.0/24 dev eno33554960 proto kernel scope link src 192.168.1.122 metric 101 # CentOS6配置方式 [root@bj-1-160-enzhi network-scripts]# cat route-eth1 10.0.0.0/8 via 192.168.1.161 [root@bj-1-160-enzhi network-scripts]# service network restart Shutting down interface eth0: [ OK ] Shutting down interface eth1: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: Determining if ip address 192.168.1.160 is already in use for device eth0... [ OK ] Bringing up interface eth1: Determining if ip address 192.168.1.161 is already in use for device eth1... [ OK ] [root@bj-1-160-enzhi network-scripts]# ip route show 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.160 192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.161 169.254.0.0/16 dev eth0 scope link metric 1002 169.254.0.0/16 dev eth1 scope link metric 1003 10.0.0.0/8 via 192.168.1.161 dev eth1 default via 192.168.1.1 dev eth0
第二种方式:每三行一个路由条目
ADDRESS#=TARGET(目标地址) NETMASK#=MASK(子网掩码) GATEWAY#=NEXTHOP(下一跳)
示例:
练习一、添加一条网络路由,目标网络地址为172.16.0.0/16,下一跳为192.168.1.141;
[root@bj-1-141 network-scripts]# cat route-eno16777728 ADDRESS0=172.16.0.0 NETMASK0=255.255.0.0 GATEWAY0=192.168.1.141 [root@bj-1-141 network-scripts]# systemctl restart network.service [root@bj-1-141 network-scripts]# ip route show default via 192.168.1.1 dev eno16777728 proto static metric 100 default via 192.168.1.1 dev eno33554960 proto static metric 101 169.254.0.0/16 dev eno33554960 scope link metric 1003 172.16.0.0/16 via 192.168.1.141 dev eno16777728 proto static metric 100 192.168.1.0/24 dev eno16777728 proto kernel scope link src 192.168.1.141 metric 100 192.168.1.0/24 dev eno33554960 proto kernel scope link src 192.168.1.122 metric 101
注意:网卡别名不支持动态获取地址;
配置方式
复制要添加多个接口的网卡配置文件;然后修改其DEVICE名称及删除UUID;
示例
练习一、为eth1接口配置网卡别名为eth1:0,其IP地址为192.168.1.188/24,网关为192.168.1.1;
# 第一步:复制eth1到eth1:0 [root@bj-1-160-enzhi network-scripts]# cp ifcfg-eth1 ifcfg-eth1:0 # 第二步:修改其内容 [root@bj-1-160-enzhi network-scripts]# vim ifcfg-eth1:0 DEVICE=eth1:0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.1.188 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=192.168.1.1 # 第三步:重启网络服务查看eth1:0信息 [root@bj-1-160-enzhi network-scripts]# service network restart Shutting down interface eth0: [ OK ] Shutting down interface eth1: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: Determining if ip address 192.168.1.160 is already in use for device eth0... [ OK ] Bringing up interface eth1: Determining if ip address 192.168.1.161 is already in use for device eth1... Determining if ip address 192.168.1.188 is already in use for device eth1... [ OK ] [root@bj-1-160-enzhi network-scripts]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:18:EC:38 inet addr:192.168.1.160 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe18:ec38/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4041 errors:0 dropped:0 overruns:0 frame:0 TX packets:2376 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:404252 (394.7 KiB) TX bytes:284678 (278.0 KiB) eth1 Link encap:Ethernet HWaddr 00:0C:29:18:EC:42 inet addr:192.168.1.161 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe18:ec42/64 Scope:Link UP BROADCAST RUNNING MTU:1500 Metric:1 RX packets:1168 errors:0 dropped:0 overruns:0 frame:0 TX packets:58 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:130676 (127.6 KiB) TX bytes:4020 (3.9 KiB) eth1:0 Link encap:Ethernet HWaddr 00:0C:29:18:EC:42 inet addr:192.168.1.188 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MTU:1500 Metric:1