Linux网络设置

查看及测试网络

查看网络配置

查看网络接口地址

使用ifconfig可以查看网络接口的地址配置信息。

1 )查看活动的网络接口设备
若采用 mini CentOS 7 安装的系统,默认是没有 ifconfig 命令的,需要先通过 yum方式安装 net-tools 软件包,才有 ifconfig 命令。
yum -y install net-tools               #安装net-tools软件包以使用ifconfig命令

在不带任何选项和参数执行 ifconfig 命令时,将显示当前主机中已启用(活动)的网络接口信息。
[root@localhost ~]$ ifconfig
2 )查看指定的网络接口信息
当只需要查看其中某一个网络接口的信息时,可以使用网络接口的名称作为 ifconfig 命 令的参数(不论该网络接口是否处于激活状态)。
[root@localhost ~]$ ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.4.11 netmask 255.255.255.0 broadcast 192.168.4.255    
inet6 fe80::9106:d38b:670d:1a89 prefixlen 64 scopeid 0x20<link>    
ether 00:0c:29:3a:81:cc txqueuelen 1000 (Ethernet)                
RX packets 4625 bytes 428860 (418.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2302 bytes 344920 (336.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


#inet:表示网络接口的IP地址
#netmask:表示网络接口的子网掩码
#broadcast:表示网络接口所在网络的广播地址
#ether:表示网络接口的物理地址(MAC 地址)

查看主机名称

使用 hostname 命令可以查看当前主机的主机名,不用添加任何选项或参数,具体操作如下:
[root@localhost ~]$ hostname
localhost.localdomain

查看路由表条目

Linux 操作系统中的路由表决定着从本机向其他主机、其他网络发送数据的去向,是排除网络故障的关键信息。
直接执行 “route”命令可以查看当前主机中的路由表信息,在输出结果中,Destination 列对应目标网段的地址,Gateway 列对应下一跳路由器的地址,Iface 列对应发送数据的网络接口。
[root@localhost ~]$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
192.168.4.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
若结合 “-n” 选项使用,可以将路由记录中的地址显示为数字形式,这可以跳过解析主机 名的过程,在路由表条目较多的情况下能够加快执行速度。
[root@localhost ~]$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.4.1 0.0.0.0 UG 100 0 0 ens33
192.168.4.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33

查看网络连接情况

使用netstat命令可以查看当前操作系统的网络连接状态、路由表、接口统计等信息,它是了解网络状态及排除网络服务故障的有效工具,常用选项包括:

-a:显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。
-n:以数字的形式显示相关的主机地址、端口等信息。
-r:显示路由表信息。
-l:显示处于监听(Listening)状态的网络连接及端口信息。
-t:查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息。
-u:显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息。
-p:显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)。

通常使用“-anpt”组合选项,以数字形式显示当前系统中所有的 TCP 连接信息,同时显示对应的进程信息。结合管道命令使用“grep”命令,还可以在结果中过滤出所需要的特定记录。

[root@localhost ~]$ netstat -anpt | grep ":80"
tcp60 0 :::80 :::* LISTEN 20563/httpd

ss命令也可以查看网络连接情况,是Socket Statistics的缩写,主要用于获取socket统计信息,可以显示与netstat 命令类似的输出内容。和netstat相比能够显示更多更详细的有关TCP和连接状态的信息。而且比netstat更加快速高效。使用之前需要先安装iproute软件包

yum -y install iproute            #安装iproute软件包确保ss命令的使用 

常用选项

-h:--help 通过该选项获取更多的使用帮助。
-V:--version 显示软件的版本号。
-t:--tcp 显示 TCP 协议的 sockets。
-u:--udp 显示 UDP 协议的 sockets。
-n:--numeric 不解析服务的名称,如 "22" 端口不会显示成 "ssh"。
-l:--listening 只显示处于监听状态的端口。
-p:--processes 显示监听端口的进程。
-a: --all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接。
-r: --resolve 把 IP 解释为域名,把端口号解释为协议名称。
ss 命令的输出结果,可以提供 TCP UDP socket 信息,以及各种服务建立的持久连接,熟悉这个命令有助于更好的发现与解决系统性能问题。
[root@localhost ~]$ ss -t state established
Recv-Q  Send-Q  Local Address:Port   Peer Address:Port
0       96     192.168.8.10:ssh     192.168.8.1:55213
“Local Address:Port"本地监听的IP和端口。”Peer  Address:Port” 表示远端连接的 IP 和端口

测试网络连接

测试网络连通性

使用ping命令可以向目标主机持续地发送测试数据包,并显示反馈结果,直到按 Ctrl +C 组合键后中止测试,并显示最终统计结果。例:

PING 192.168.4.110 (192.168.4.110) 56(84) bytes of data. 64 bytes from 192.168.4.110: icmp_seq=1 ttl=64 time=0.313 ms
64 bytes from 192.168.4.110: icmp_seq=2 ttl=64 time=0.213 ms
^C //按 Ctrl+C 组合键中止执行
--- 192.168.4.110 ping statistics --- 8 packets transmitted, 8 received, 0% packet loss, time 8085ms
rtt min/avg/max/mdev = 0.213/0.236/0.313/0.035 ms
执行 ping 测试命令时,若不能获得从目标主机发回的反馈数据包,则表示在本机到目 标主机之间存在网络连通性故障。
看到“Destination Host Unreachable”的反馈信息, 则表示目的主机不可达,可能目标地址不存在或者主机已经关闭;看到“Network is unreachable”的反馈信息。则表示没有可用的的路由记录(如默认网关),无法到达目的主机所在的网络。当网络中存在影响通信过程稳定性的因素,使用ping 命令测试可能会频繁看到“Request timeout”的反馈结果,表示与目标主机间的连接超时(数据包响应缓慢或丢失)。当目标主机有严格的防火墙限制时,也可能收到“Request timeout”的反馈结果。

跟踪数据包的路由路径

若服务器上没有 traceroute 命令,可通过 yum 方式安装 traceroute 软件包。
yum -y install traceroute        #安装traceroute软件包以使用traceroute命令

traceroute 命令可以用于测试从当前主机到目的主机之间经过了哪些网络结点,并显示各中间结点的连 接状态(响应时间)。对于无法响应的结点,连接状态将显示为“*”
[root@localhost ~]$ traceroute 192.168.7.7
traceroute to 192.168.7.7 (192.168.7.7), 30 hops max, 40 byte packets
1 (192.168.4.1) 7.740 ms 15.581 ms 15.881 ms
2 (192.168.7.7) 19.652 ms 19.995 ms 19.942 ms

测试DNS域名解析

当域名解析出现异常时,将无法使用域名的形式访问网络中的 Web 站点、电子邮件系统等服务。nslookup 命令是用来测试域名解析的专用工具,使用时只要指定要解析的目标域名作为参数即可。若在执行过程中提示无法找到nslookup 命令,可通过 yum 安装 bind-utils程序包的方式来解决。
yum -y install nslookup            #安装nslookup软件包以使用nslookup命令

例:

[root@localhost ~]$ nslookup www.google.com
Server: 202.106.0.20             #所使用的 DNS 服务器
Address: 202.106.0.20#53
Non-augthoritavite answer:       #以下为DNS解析的反馈结果
Name:    www.l.google.com
Address:173.194.127.51
…………




//报错信息:

#表示不能连接指定的DNS服务器
…… no servers could be reached

#表示要查找的域名不存在
…… can’t find xxx.yyy.zzz: NXDOMAIN

dig命令也可以用来测试域名解析,相对于 nslookup 命令,dig 可以得到更多的域名信息。

dig 的全称是 (domain information groper) ,它是一个用于查询 DNS 域名服务器的灵活的工具。
具有灵活性好、易用、输出清晰等特点。 dig 命令最典型的用法就是查询单个主机的信息。
[root@localhost ~]$ dig baidu.com
; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.2 <<>> baidu.com // dig 的版本及输入参数
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51884
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
//以上显示服务器返回的信息,status 为 NOERROR 状态说明查询成功
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;baidu.com. IN A //显示通过 A 记录要查询的域名
;; ANSWER SECTION:
baidu.com. 585 IN A 220.181.38.148
baidu.com. 585 IN A 39.156.69.79
//经 DNS 返回后的查询结果
;; Query time: 13 msec
; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Sun Sep 08 19:06:46 CST 2019
;; MSG SIZE rcvd: 70
//查询后的一些统计信息,比如用了 13 毫秒,查询 DNS 服务器的 IP 地址,查询的时间等等
dig在查询过程中,还可以指定特定的DNS服务器,如果不指定DNS服务器,默认会使用/etc/resolve.conf里面的地址作为DNS服务器
[root@localhost ~]# dig @202.106.0.20 baidu.com //使用指定的 DNS 服务器来解析
; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.2 <<>> @202.106.0.20 baidu.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48077
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 5, ADDITIONAL: 6
//省略后续输出

设置网络地址参数

包括两种最基本的方法:
临时配置:直接修改当前正在使用的网络,修改后立即生效,但会在重启network服务或重启主机后失效
固定配置:通过配置文件来存放各种固定的网络地址,需要重启network服务或重启主机后生效。

使用网络配置命令

1.修改网卡的地址、状态

ifconfig命令不仅可以用于查看网卡配置,还可以修改网卡的 IP 地址、子网掩码,也可以绑定虚拟网络接口、激活或禁用网络接口。

(1)修改网卡的IP地址和子网掩码

ifconfig 网络接口名称 IP地址 [netmask 子网掩码]    或
ifconfig 网络接口名称 IP地址[/子网掩码长度]
(2)禁用、激活网络接口
需要结合“down”和“up”开关选项。网络接口被禁用后,将无法使用该网络接口与其他主机进行连接。
例如,以下操作会禁用网卡ens37
[root@localhost ~]$ ifconfig ens37 down

(3)为网卡绑定虚拟接口

在对服务器网络进行调试的过程中,有时需要在同一个网卡上使用一个新的IP地址,但又不能覆盖原有的IP地址导致服务程序不可用。这时可以为网卡绑定一个虚拟 的网络接口,然后为虚拟接口设置新的 IP 地址(相当于一块网卡配多个 IP 地址)。

例如,执行以下操作可以为网卡 ens33 添加一个虚拟接口 ens33:0 ,并将这个虚拟接口 的 IP 地址设置为 172.17.17.17 。虚拟接口的 IP 地址和网卡原有的 IP 地址都可以正常 使用。
[root@localhost ~]$ ifconfig ens33:0 172.17.17.17
[root@localhost ~]$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.4.11 netmask 255.255.255.0 broadcast 192.168.12.255
inet6 fe80::9106:d38b:670d:1a89 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:3a:81:cc txqueuelen 1000 (Ethernet)
RX packets 8791 bytes 811759 (792.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4459 bytes 584948 (571.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.17.17 netmask 255.255.0.0 broadcast 172.17.255.255
ether 00:0c:29:3a:81:cc txqueuelen 1000 (Ethernet)

2.添加、删除静态路由记录

route 命令不仅可以用于查看路由表信息,还可用来添加、删除静态的路由表条目,其 中也包括设置默认网关地址(默认网关记录是一条特殊的静态路由条目)。
(1)添加、删除指定网段的路由记录
通过 “route add” 操作可以添加路由记录,结合 “-net” 选项指定目标网段的地址,结合 “gw” 选项指定下一跳路由器的IP 地址。
例如,若要使本机访问另一个网段 192.168.3.0/24 的数据包都发送给 192.168.4.254 ,可以执行以下操作。需要注意的是,默认网关的 IP 地址应该与本机其中一个接口的 IP 地址在同一个网段内。
[root@www ~]$ route add -net 192.168.3.0/24 gw 192.168.4.254 //添加静态路由
[root@www ~]$ route -n //确认添加的路由条目
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.4.1 0.0.0.0 UG 100 0 0 ens33
192.168.3.0 192.168.4.254 55.255.255.0 UG 0 0 0 ens33
192.168.4.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
通过 “route del” 操作可以删除路由记录,只要结合 “-net” 选项指定对应路由记录中目标网 段的地址即可。
[root@www ~]$ route del -net 192.168.3.0/24
[root@www ~]$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.4.1 0.0.0.0 UG 100 0 0 ens33
192.168.4.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
2 )添加、删除默认网关记录
添加、删除默认网关记录时,与添加、删除静态路由记录的命令格式类似,但指定目标
网段时只需简单地使用 “default” 表示即可,无须再使用 “-net” 选项指明网段地址。
[root@www ~]$ route -n | grep "192.168.4.1" //查看原路由表中的默认网关记录
0.0.0.0 192.168.4.1 0.0.0.0 UG 100 0 0 ens33
[root@www ~]$ route del default gw 192.168.4.1 //删除默认网关记录 192.168.4.1
[root@www ~]$ route -n | grep "192.168.4.1" //确认删除结果(检索时无输出)
[root@www ~]$ route add default gw 192.168.4.254 //添加新的默认网关记录 192.168.4.254
[root@www ~]$ route -n | grep "192.168.4.254" //确认新的默认网关记录
0.0.0.0 192.168.4.254 0.0.0.0 UG 100 0 0 ens33
需要注意的是,在同一个主机的路由表中只应有一条默认网关记录。若同时存在多条默 认网关记录,则可能导致该主机的网络连接出现故障。

3.修改主机的名称

hostname 命令不仅可以用于显示当前主机的名称,还可以修改当前主机的名称。

临时修改

[root@localhost ~]$ hostname aaa
[root@localhost ~]$ bash            #启动新的Shell会话,查看变化

永久修改方法1:

[root@localhost ~]$ vim /etc/hostname      #进入文件删除现有的文字,然后把想要起的名字输入进去

永久修改方法2:

[root@localhost ~]$ hostnamectl set-hostname bbb
[root@localhost ~]$ bash
[root@bbb ~]$ 

修改网络配置文件

网络接口配置文件

网络接口的配置文件默认位于目录/etc/sysconfig/network-scripts/中,文件名格式为 “ifcfg-XXX”,其中“XXX”是网络接口的名称。

打开网卡的配置文件可以看到IP地址的部分内容如下:

TYPE=Ethernet                    #TYPE:设置网卡类型,“Ethernet”表示以太网。
BOOTPROTO=static                 #BOOTPROTO:设置网络接口的配置方式,值为“static”时表示使用静态指定的 IP地址,为“dhcp”时表示通过 DHCP 的方式动态获取地址。
DEVICE=ens33                     #DEVICE:设置网络接口的名称。
ONBOOT=yes                       #ONBOOT:设置网络接口是否在 Linux 操作系统启动时激活
IPADDR=192.168.4.11              #IPADDR:设置网络接口的 IP 地址
NETMASK=255.255.255.0            #NETMASK:设置网络接口的子网掩码。
GATEWAY=192.168.4.1              #GATEWAY:设置网络接口的默认网关地址。

启用、禁用网络接口配置

CentOS 7 操作系统中,当修改了网络接口的配置文件以后,若要使新的配置生效, 可以重新启动 network 服务或者重启主机。重启 network 服务会先关闭所有的网络接口,再根据配置文件重新启用所有的网络接口。
[root@localhost ~]$ systemctl restart network
如果只是禁用、启用某一个网络接口(而不是所有接口),可分别使用两个接口控制脚
ifdown 、ifup。
[root@localhost ~]# ifdown ens33        #禁用ens33接口
[root@localhost ~]# ifup ens33          #启用ens33接口

4.域名解析配置文件

1 )指定为本机提供 DNS 解析的服务器地址
/etc/resolv.conf 文件中记录了本机默认使用的 DNS 服务器的地址信息,对该文件所做 的修改将会立刻生效。Linux 操作系统中最多可以指定 3 个(第 3 个以后的将被忽略)不同 的 DNS 服务器地址,优先使用第一个 DNS 服务器。
[root@localhost ~]$ vi /etc/resolv.conf
search localdomain
nameserver 202.106.0.20
nameserver 202.106.148.1
CentOS 7 环境下,如果按照上面方式配置,过一段时间会被系统重新覆盖或者清除,此时需要修改/etc/NetworkManager/NetworkManager.conf 文件,在 main 部分添加“dns=none”配置项。
[root@localhost ~]¥ vi /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifcfg-rh
dns=none
[logging]
#level=DEBUG
#domains=ALL
2 )本地主机映射文件
/etc/hosts 文件中记录着一份主机名与 IP 地址的映射关系表,一般用来保存经常需要访 问的主机的信息。当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果 找不到再去向 DNS 服务器查询。
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4. localdomain4 …… //省略部分内容
119.75.218.70        www.baidu.com
对于经常访问的一些网站,可以通过在 /etc/hosts 文件添加正确的映射记录,减少 DNS 查询过程,从而提高上网速度。当然,若添加了错误的映射记录,则可能导致网站访问出现 异常。另外,因为 hosts 文件只保存在本地,所以其中的映射记录也只适用于当前主机,而 无法作用于整个网络。
  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值