文章目录
一、查看网络配置
1.查看网络接口信息-ifconfig
- 主机的网络接口卡(网卡)通常称之为“网络接口”
- 在Linux中,使用ifconfig命令可以查看网络接口的地址配置信息
- 使用ifconfig命令不带任何选项和参数的时候,会显示当前主机中已启动(运行中)的网络接口信息
- 查看主网卡
- inet:IP地址
- netmask:子网掩码
- broadcast:广播地址
- ether:网卡地址
- mtu:最大传输单元(字节数为1500字节);每个网络设备都有自己的mtu,默认为1500;若我们设备的mtu大于网络设备,数据在传输的过程中就会被分片拆包,导致网速(效率)变慢;若小于,则发挥不了最大传输能力;最理想的是本地与网络的MTU值相等(基本都是默认1500)
2.查看主机名称-hostname
- 查看(不附加选项和参数)或者临时设置当前主机名
hostname [name]
[root@localhost ~]# hostname xcf
[root@localhost ~]# hostname
xcf
[root@localhost ~]# su ##(或bash)启用新的Shell会话
[root@xcf ~]#
- 永久设置主机名
- hostnamectl set-hostname [主机名]
- vim /etc/hostname (设置完后需重启系统才能生效)
3.查看路由表条目-route
- 查看或设置主机中路由表信息
route [-n]
[root@xcf ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.126.2 0.0.0.0 UG 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.126.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
- Destination列对应目标网段的地址
- Gateway列对应下一跳路由器的地址
- Iface列对应发送数据的网络接口
- 目标网段为“0.0.0.0”时表示此行为默认网关记录
- 下一跳是“0.0.0.0”时表示目标网段与本主机直连
4.查看网络连接情况-netstat
- 查看系统的网络连接状态、路由表、接口统计等信息
netstat [选项] - 常用选项
- -a:显示当前主机中所有活动的网络连接情况(包括监听、非监听状态的服务端口)
- -n:以数字的形式显示相关的主机地址、端口等信息
- -r:显示路由表信息
- -l显示处于田径状态的网络连接及端口信息
- -t:查看TCP协议相关信息
- -u:显示UDP协议相关信息
- -p:显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限)
- 通常使用“-anpt”组合选项,以数字形式显示当前系统中所有的TCP连接信息,同时显示对应的进程信息;结合管道命令“grep”还可以在结果中过滤出所需的特定记录
- 例如,执行以下操作可以查看本机中是否有监听“TCP80”端口(即标准FTP服务)的服务程序,输出信息中包括PID号和进程号名称
[root@xcf ~]# netstat -anpt | grep ":80"
- 扫描tcp和udp端口
[root@xcf ~]# netstat -nautp
...略
5.获取socket统计信息-ss
- 查看系统的网络连接情况,获取socket统计信息
ss [选项] - socket:即套接字,上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议根进行交互的接口
- 常用选项
- -t、-u、-n、-l、-p、-a、-r
- 用的不多,有兴趣的同学可以再去查询深入了解下
二、测试网络连接
1.测试网络连通性-ping
- ping [选项] 目标主机
- 使用ping命令可以向目标主机持续的发送测试数据包,并反馈显示结果,直到按“Ctrl+C”组合键后终止测试并显示最终统计结果
- 例:测试从本机到百度网站的连通性情况(记得Ctrl+C终止,否则会一直显示下去)
[root@xcf ~]# ping www.baidu.com
PING www.a.shifen.com (180.101.49.12) 56(84) bytes of data.
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=1 ttl=128 time=58.0 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=2 ttl=128 time=48.4 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=3 ttl=128 time=52.0 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=4 ttl=128 time=41.2 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=5 ttl=128 time=47.5 ms
^C
--- www.a.shifen.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4008ms
rtt min/avg/max/mdev = 41.227/49.484/58.045/5.535 ms
- 可能会发生以下情况
- “Destination Host Unreacheble”表示目的主机不可达,可能目标地址不存在或者目的主机已关闭
- “Netwokr is unreacheable”表示没有可用的路由记录(如默认网关),无法到达目标主机所在网络
- 也有可能因为网络中存在影响通信过程稳定的因素(如网卡故障、病毒或网络攻击)时,会看到“Request timeout”的反馈结果,表示与目的主机连接超时(数据包响应缓慢或丢失)
- 也还有可能是目标主机防火墙的限制导致连接超时反馈
2.跟踪数据包-traceroute
- 测试从当前主机到目的主机之间经过了哪些网络节点,并显示了各中间节点的连接状态(响应时间)
- 对于无法显示的节点,连接状态将显示“*”
- 例:从本主机到百度之间,需要跨越一个路由器192.168.126.2
[root@xcf ~]# traceroute www.baidu.com
traceroute to www.baidu.com (180.101.49.11), 30 hops max, 60 byte packets
1 gateway (192.168.126.2) 0.088 ms 0.037 ms 0.024 ms
- traceroute命令能比ping命令更加准确的定位网络连接的故障点(中断点),执行命令也会比ping稍慢一点
- 在网络测试与排错过程中,通常会先试用ping命令测试与目的主机的网络连接,如果发现有故障,再来使用traceroute命令跟踪查看故障在哪个中间节点
- 也是记得按Ctrl+C终止
3.DNS域名解析-nslookup
- 当域名解析出现异常的时候,将无法再使用域名的形式来访问网络中的Web站点、电子邮件系统等服务
- nslookup是专门用来测试域名解析的专用工具,使用时只要指定要解析的目标域名作为参数即可
nslookup 目标主机地址 [DNS服务器地址] - 示例:
执行以下命令后,nslookup程序将提交查询请求,询问百度站点对应的IP地址是多少
[root@xcf ~]# nslookup www.baidu.com
Server: 192.168.126.2 ##所使用的的DNS服务器
Address: 192.168.126.2#53 ##DNS的服务器IP地址和端口号
Non-authoritative answer: ##以下为DNS解析的反馈结果
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 180.101.49.11
Name: www.a.shifen.com
Address: 180.101.49.12
- 若能够成功反馈要查询域名的IP地址,则表示域名解析没有问题,否则需要根据实际反馈情况来判断故障原因
三、使用网络配置命令
在Linux主机中,手工修改网络配置有两种最基本的方法:
- 临时配置-使用命令调整网络参数
- 简单、快速,可直接修改运行中的网络参数
- 一般只适合在调试网络的过程中使用
- 系统重启以后,所做的修改将会失效
- 固定设置一通过配置文件修改网络参数
- 修改各项网络参数的配置文件
- 适合对服务器设置固定参数时使用
- 需要重载网络服务或者重启以后才会生效
1.设置网络接口参数-ifconfig
- 设置网络接口的IP地址、子网掩码
- ifconfig 网络接口 ip地址 [netmask 子网掩码]
- inconfig 网络接口 ip地址[/子网掩码长度]
- 通常后一种方式用的多一些,当不指定子网掩码的时候,将使用ip地址所在分类默认子网掩码
- 指定新的IP地址和子网掩码后,原有的地址将会失效
- 示例:
[root@xcf~]# ifconfig eth0 192.168.168.1/24(或 ifconfig eth0 192.168.168.1 netmask 255.255.255.0)
##将网卡echo的IP地址设置为192.168.168.1,子网掩码长度为24
- 禁用(临时)或者重新激活网卡
- ifconfig 网络接口 up
- ifconfig 网络接口 down
- 网络接口被禁用后,将无法再使用该网络接口与其他主机进行连接
- 设置虚拟网络接口
- 在对服务器进行调试的过程中,有时需临时在同一个网卡上使用一个新的IP地址,但又不能覆盖原有IP地址而导致服务程序不可用
- 相当于在一个网卡上配置多个IP地址
- 格式(示例):ifconfig 网络接口:序号 IP地址
[root@xcf1 ~]# ifconfig ens33:1 11.11.11.11
[root@xcf1 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.126.3 netmask 255.255.255.0 broadcast 192.168.126.255
inet6 fe80::8559:70c4:715b:a5b5 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:b4:c9:c0 txqueuelen 1000 (Ethernet)
RX packets 1905 bytes 154593 (150.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1224 bytes 161199 (157.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 11.11.11.11 netmask 255.0.0.0 broadcast 11.255.255.255
ether 00:0c:29:b4:c9:c0 txqueuelen 1000 (Ethernet)
2.设置路由记录-route(临时)
- route命令不仅可以用来查看路由表信息,还可以用来添加、删除静态的路由条路,其中也包括设置默认网关地址(默认网关记录是一条特殊的静态路由条目)
[root@xcf1 ~]# route ##查看路由信息
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
11.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.126.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
- 添加到指定网段的路由记录
- 默认网关的IP地址应与本机其中一个接口的IP地址在同一个网段内
##格式:
route add -net 网段地址 gw IP地址
##通过“route add”添加路由记录,结合“net”指定目标网段的地址,结合“gw”指定下一跳路由器的IP地址,
##示例:
[root@xcf1 ~]# route add -net 192.168.133.0/24 gw 192.168.122.10 ##添加静态路由,本机访问另一个网段192.168.133.0/24的数据都发给192.168.122.10
[root@xcf1 ~]# route ##确认已添加成功
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
11.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 ens33
11.0.0.0 0.0.0.0 255.0.0.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.126.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.133.0 192.168.122.10 255.255.255.0 UG 0 0 0 virbr0
- 删除到指定网段的路由记录
[root@xcf1 ~]# route del -net 192.168.133.0/24
[root@xcf1 ~]# route ##没了,删除成功
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
11.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.126.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
- 向路由表中添加默认网关记录
格式:
route add default gw IP地址
- 删除路由表中默认的网关记录
格式:
route del default gw IP地址
- 在同一个主机的路由表中只应有一条默认网关记录,若同时存在多条则可能导致该主机网络连接故障
四、修改网络配置文件
1.网络接口配置文件
- 网络接口的配置文件默认位于目录“/etc/sysconfig/network-scripts/”中,文件名格式为“ifcfg-XXX”,其中“XXX”是网络接口的名称
- “ifcfg-ens33”:是第一块以太网卡的配置文件
[root@xcf ~]# ls /etc/sysconfig/network-scripts/ifcfg-*
/etc/sysconfig/network-scripts/ifcfg-ens33
/etc/sysconfig/network-scripts/ifcfg-lo
##“lo”是回环接口
- 查看网卡配置
- 补充:
- TYPE:设置网卡类型,以上表示为以太网
- ONBOOT:设置网络接口是否在Linux系统启动时自动激活
- NETMASK:设置网络接口的子网掩码
- GATEMASK:设置网络接口的默认网关地址
- DNS:设置DNS服务器的IP地址
2.启用、禁用网络接口配置
- 当修改了网络接口的配置文件后,若要使新的配置生效,需重启网卡或主机
- 重启network网络服务
[root@xcf ~]# systemctl restart network (重启所有网卡)
或
[root@xcf ~]# service network restart
Restarting network (via systemctl): [ 确定 ]
- 禁用、启用网络接口
[root@xcf ~]# ifdown ens33 (这里是禁用或启用单个网卡)
##注,若在Xshell中执行此命令,则界面再不可用了,连接不上,需回到VM虚拟机中重新启动网络接口
##这时你会发现网络不可用了↓↓↓
[root@xcf ~]# ping www.baidu.com
ping: www.baidu.com: 未知的名称或服务
[root@xcf ~]# ifup ens33 ##恢复后又可以继续上网了
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/6)
[root@xcf ~]# ping www.baidu.com
PING www.a.shifen.com (180.101.49.12) 56(84) bytes of data.
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=1 ttl=128 time=36.2 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=2 ttl=128 time=31.8 ms
...略
3.主机名称配置文件
- 通过“/etc/hostname”文件来修改主机名
[root@xcf ~]# vim /etc/hostname
##仅识别第一行作为主机名,并重启后生效
- 通过“hostnamectl”来修改主机名
[root@xcf ~]# vim /etc/hostname
[root@xcf ~]# hostnamectl set-hostname xcf1
[root@xcf ~]# bash
[root@xcf1 ~]# hostname
xcf1
4.域名解析配置文件
- /etc/resolv.conf文件中记录了本机默认使用的DNS服务器的IP地址,对该文件所做的修改将会立刻生效
- 以上“serch”后面跟的是域名后缀,即当访问主机时,相当于访问“localhost.localdomain”
- Linux系统中最多可以指定3个(3个以后的将被忽略)不同的DNS服务器地址,优先使用第一个DNS服务器
- CentOS7需要在NetworkManager.conf文件main段内设置dns=none,并重启NetworkManager服务,或者使用CentOS7新添加nmcil命令进行设置
5.本地主机映射文件
- /etc/hosts文件中记录着一份主机名与IP地址的映射关系表
一般用来保存经常需要访问的主机的信息
- 当访问一个未知的域名的时候,会先查看该文件中是否有相对应的映射记录,如果找不到再去向DNS服务器查询
- 对于经常使用的一些网址,可以通过在/etc/hosts文件添加正确的映射记录,减少DNS查询,从而提高上网速率
- 若添加错误的映射记录,则可能会导致网站访问出现异常
- hosts文件只保存在本地,所以只对当前主机生效,而无法作用于整个网络