Linux网络设置

前言

我们的运维工作里不光是维护系统本身的稳定,上线新的项目也是我们工作的范围之内的事情。我们必须要学会如何编辑我们的网络服务,进行暂时的调试。

查看网络配置

ifconfig命令(查看网络接口地址)

[root@localhost ~]# ifconfig       #查看活动的网络接口
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.116.100  netmask 255.255.255.0  broadcast 192.168.116.255
        inet6 fe80::8ec8:d200:b628:e609  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:05:1d:58  txqueuelen 1000  (Ethernet)
        RX packets 827479  bytes 1083124175 (1.0 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 195659  bytes 12141606 (11.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 80  bytes 6976 (6.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 80  bytes 6976 (6.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
#第一块以太卡的名称。“ens33”中的“en”是“EtherNet”的缩写,表示网卡类型为以太网
#“s”表示热插拔插槽上的设备(hot-plug Slot),数字“33”表示插槽编号
#lo:“回环”网络接口,“lo”是“loopback”的缩写,它不代表真正的网络接口,而是一个虚拟的网络接口
#其IP地址默认是“127.0.0.1”。回环地址通常仅用于对本机的网络测试

[root@localhost ~]# ifconfig ens33    #查看指定的网络接口
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.116.100  netmask 255.255.255.0  broadcast 192.168.116.255
        inet6 fe80::8ec8:d200:b628:e609  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:05:1d:58  txqueuelen 1000  (Ethernet)
        RX packets 827537  bytes 1083128557 (1.0 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 195675  bytes 12144538 (11.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
#ether                           表示网络接口的MAC地址
#inet 192.168.245.211            ip地址
#netmask 255.255.255.0           子网掩码
#broadcast 192.168.245.255       广播地址
#ether 00:0c:29:f4:bf:17         mac地址
#可以使用ifconfig -a 查看所有的包括非活动的网络接口

ip/ethool命令(查看网络接口)

相较于ifconfig更复杂,功能也更加细致,强大。

[root@localhost ~]# ip link  #查看网络接口的数据链路层信息
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT q
len 1000    link/ether 00:0c:29:05:1d:58 brd ff:ff:ff:ff:ff:ff
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT
 qlen 1000    link/ether 52:54:00:fc:8e:df brd ff:ff:ff:ff:ff:ff
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN mode 
DEFAULT qlen 1000    link/ether 52:54:00:fc:8e:df brd ff:ff:ff:ff:ff:ff

[root@localhost ~]# ip addr     #查看网络接口的网络层信息
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:05:1d:58 brd ff:ff:ff:ff:ff:ff
    inet 192.168.116.100/24 brd 192.168.116.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::8ec8:d200:b628:e609/64 scope link 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 52:54:00:fc:8e:df brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 
1000    link/ether 52:54:00:fc:8e:df brd ff:ff:ff:ff:ff:ff

[root@localhost ~]# ethtool ens33    #查看指定网络接口的速率、模式等信息
Settings for ens33:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: off (auto)
	Supports Wake-on: d
	Wake-on: d
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes

route命令(查看路由表)

[root@localhost pam.d]# route -n   #以数字形式查看路由表
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.116.2   0.0.0.0         UG    100    0        0 ens33
192.168.116.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

#Destination 列对应目标网段的地址
#Gateway 列对应下一跳路由器的地址
#Iface 列对应发送数据的网络接口

netstat命令

etstat命令 : 查看当前操作系统的网络连接状态、路由表、接口统计等信息,它是了解网络状态及排除网络服务故障的有效工具 

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

[root@localhost pam.d]# netstat -anpt | grep ssh
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1061/sshd    tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      51540/sshd: r

ss命令(获取socket统计信息)

也可以查看网络连接情况,主要用于获取 socket 统计信息
ss能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效
当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。
ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效

[root@localhost ~]# time ss
real	0m0.012s
user	0m0.003s
sys		0m0.005s

[root@localhost ~]# time netstat -an
real	0m0.027s
user	0m0.001s
sys		0m0.006s

查看并发连接数ss和netstat对比
[root@shengjie ~]#  time netstat -ant | grep EST | wc -l
0

real	0m0.002s
user	0m0.002s
sys		0m0.002s
[root@shengjie ~]#  time ss -o state established | wc -l
711

real	0m0.013s
user	0m0.003s
sys		0m0.003s

测试网络连通性

ping命令(测试网络连通性)

  • 使用ping命令可以向目标主机持续的发送测试数据包,并反馈显示结果,直到按“Ctrl+C”组合键后终止测试并显示最终统计结果
  • 例:测试从本机到百度网站的连通性情况(记得Ctrl+C终止,否则会一直显示下去)
  • ping 192.168.126.15 #最常用是后面跟ip地址
[root@xjj ~]# ping 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
ping -c 10 192.168.126.15               #-c表示指定ping的次数
ping -c 10 -i 0.5 192.168.126.15        #-i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次
ping -w 5 www.baidu.com                 #表示ping的超时时间为5s,意思是只ping5秒,5秒后结束

traceroute(跟踪数据包的路由途径)

  • 测试从当前主机到目的主机之间经过了哪些网络节点,并显示了各中间节点的连接状态(响应时间)
  • 对于无法显示的节点,连接状态将显示“*”
  • 例:从本主机到百度之间,需要跨越一个路由器192.168.126.2
[root@xjj ~]# 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终止

两种方式:临时配置和永久配置

临时配置:临时配置:通过命令行直接修改当前正在使用的网络地址,修改后立即可以生效。 这种方式操作简单快速、执行效率高,一般在调试网络的过程中使用。但由于所做 的修改并没有固定地存放在静态的文件中,因此当重启 network 服务或重启主机后 将会失效
永久配置:通过配置文件来存放固定的各种网络地址,需要重启 network 服务或重 启主机后才会生效。这种方式操作上相对要复杂一些,但相当于“永久配置”,一般 在需要为服务器设置固定的网络地址时使用
 

nslookup(测试DNS域名解析)

  • 软件包的名字就可以使用 yum install -y bind-utils

  • 当域名解析出现异常的时候,将无法再使用域名的形式来访问网络中的Web站点、电子邮件系统等服务

  • nslookup是专门用来测试域名解析的专用工具,使用时只要指定要解析的目标域名作为参数即可

[root@xjj ~]# 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                #解析的IP地址
Address: 180.101.49.11
Name:	www.a.shifen.com
Address: 180.101.49.12

域名配置文件

vi /etc/resolv.conf 
search localdomain          #设置默认的搜索域(域名扩展名),当访问主机“localhost”时,就相当于访问“localhost.localdomain”
nameserver 202.106.0.20 
nameserver 202.106.148.1

/etc/resolv.conf 文件中记录了本机默认使用的 DNS 服务器的地址信息,对该文件所做 的修改将会立刻生效
Linux 操作系统中最多可以指定 3 个(第 3 个以后的将被忽略)不同 的 DNS 服务器地址,优先使用第一个 DNS 服务器。例如,执行以下操作可以指定默认使用的两个 DNS 服务器地址分别位于 202.106.0.20 和 202.106.148.1。

本地主机映射文件

/etc/hosts 文件中记录着一份主机名与 IP 地址的映射关系表,一般用来保存经常需要访问的主机的信息。当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到再去向 DNS 服务器查询

若在/etc/hosts 文件中添加“119.75.218.70 www.baidu.com”的映射记录,则当访问网站 www.baidu.com 时,将会直接向 IP 地址 119.75.218.70 发送 Web 请求,省略了向 DNS

Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具,系统默认安装

对于经常访问的一些网站,可以通过在/etc/hosts 文件添加正确的映射记录,减少 DNS 查询过程,从而提高上网速度。当然,若添加了错误的映射记录,则可能导致网站访问出现 异常

另外,因为 hosts 文件只保存在本地,所以其中的映射记录也只适用于当前主机,而无法作用于整个网络。

果找不到再去向 DNS 服务器查询

若在/etc/hosts 文件中添加“119.75.218.70 www.baidu.com”的映射记录,则当访问网站 www.baidu.com 时,将会直接向 IP 地址 119.75.218.70 发送 Web 请求,省略了向 DNS

Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具,系统默认安装

对于经常访问的一些网站,可以通过在/etc/hosts 文件添加正确的映射记录,减少 DNS 查询过程,从而提高上网速度。当然,若添加了错误的映射记录,则可能导致网站访问出现 异常

另外,因为 hosts 文件只保存在本地,所以其中的映射记录也只适用于当前主机,而无法作用于整个网络

总结

网络是服务的基石,我们的工作既然是建立在服务之上,我们就必须对网络有所了解。也只有这样才能更好的完成我们的工作
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值