文章目录
网络部分的基础命令
ifconfig-用于配置和显示网络接口参数
ifconfig
(interface configuration)命令是Linux和Unix系统中用于配置和显示网络接口参数的命令行工具。它允许你查看和修改网络接口(如以太网和Wi-Fi)的IP地址、子网掩码、广播地址、MTU(最大传输单元)等配置信息。
基本用法
选项 | 含义 |
---|---|
-a 或 --all | 显示所有接口的状态,包括未激活的接口。默认情况下,ifconfig 只显示已激活的接口。 |
<interface> | 指定要配置的接口名称。例如,eth0 、wlan0 等。如果不指定此选项,ifconfig 将显示所有接口的信息。 |
up | 激活指定的接口。如果接口被ifconfig down 命令禁用,可以使用此选项重新激活它。 |
down | 禁用指定的接口。这将阻止接口发送或接收数据包。 |
<ip-address> | 为接口指定IP地址。这通常与netmask 选项一起使用来设置子网掩码。 |
netmask <netmask> | 为接口设置子网掩码。<netmask> 是子网掩码的IP地址形式。 |
<ip-address>/<prefix-length> | 使用CIDR表示法为接口设置IP地址和子网掩码。<prefix-length> 是子网掩码中1的位数。 |
broadcast <broadcast-address> | 为接口设置广播地址。然而,在许多现代网络中,广播地址是自动计算的,因此这个选项可能不常用。 |
mtu <size> | 设置接口的最大传输单元(MTU)大小。MTU是接口可以发送的最大数据包大小(以字节为单位)。 |
promisc | 将接口置于混杂模式(promiscuous mode)。在混杂模式下,接口将接收所有经过它的数据包,而不仅仅是发往它自己的数据包。这通常用于网络监控和分析。 |
-s 或 --statistics | 显示接口的统计信息,如接收和发送的数据包数量、错误等。 |
示例
-
查看所有网络接口的配置:
ifconfig
执行此命令将列出系统上所有已激活的网络接口及其配置信息。
-
查看特定网络接口的配置:
ifconfig <interface>
将
<interface>
替换为你想要查看的网络接口名称(如eth0
、wlan0
等)。 -
启用/禁用网络接口:
sudo ifconfig <interface> up sudo ifconfig <interface> down
这些命令用于启用或禁用指定的网络接口。请注意,这些操作通常需要管理员权限。
-
设置网络接口的IP地址和子网掩码:
sudo ifconfig <interface> <ip-address> netmask <netmask>
或者使用CIDR表示法(无类域间路由):
sudo ifconfig <interface> <ip-address>/<prefix-length>
这些命令用于为网络接口分配IP地址和子网掩码。注意,这些更改在重启后不会保留,仅对当前会话有效。
注意
- 由于
ifconfig
命令在某些系统中可能不被预装(特别是较新的Linux发行版),你可能需要使用包管理器(如apt
、yum
等)来安装它,或者改用ip
命令进行网络配置。 - 对于需要持久化网络配置的情况,你应该查看和编辑相应的网络配置文件(如
/etc/network/interfaces
、/etc/sysconfig/network-scripts/ifcfg-<interface>
等),具体取决于你的Linux发行版。
route-用于显示和操作IP路由表
在Linux系统中,route
命令用于显示和操作IP路由表,它允许用户查看当前系统的路由信息,添加新的路由、删除已有的路由等。
基本语法
route [-vneetC] [command [destination] [gateway] [netmask nm] [metric m] [if iface]]
其中,[options]
是可选参数,用于定制 route
命令的行为;command
是要执行的路由操作(如 add
、del
等);destination
是目标网络或主机;gateway
是下一跳网关的IP地址;netmask nm
是子网掩码;metric m
是路由的度量值;if iface
指定网络接口。
常用选项
选项 | 描述 |
---|---|
-v 或 --verbose | 显示详细信息模式,包括路由表的详细条目和额外的信息。 |
-n | 不解析主机名,直接以数字形式显示IP地址。这可以加快显示速度,因为不需要进行DNS解析。 |
-e 或 --extend | 显示扩展信息,包括路由表的一些额外属性。 |
-net | 指定目标地址为一个网络地址,后面需要跟子网掩码。 |
-host | 指定目标地址为一个主机地址,不需要跟子网掩码。 |
add | 添加一条新的路由记录。 |
del | 删除一条现有的路由记录。 |
default | 设置默认路由(默认网关)。 |
示例
-
显示当前路由表(以数字形式显示IP地址)
route -n
输出将包括目标网络、网关、子网掩码、标志、度量值、引用计数、使用计数和出接口等信息。
-
添加一条到特定网络的路由
假设要将所有发往192.168.1.0/24
网络的数据包通过网关192.168.0.1
发送,可以使用以下命令:sudo route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1
或者,在较新的系统中,可能更倾向于使用
ip route
命令:sudo ip route add 192.168.1.0/24 via 192.168.0.1
-
删除一条路由
要删除上面添加的路由,可以使用以下命令:sudo route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1
或者,使用
ip route
命令:sudo ip route del 192.168.1.0/24 via 192.168.0.1
-
设置默认路由(默认网关)
要将默认路由设置为192.168.0.1
,可以使用以下命令:sudo route add default gw 192.168.0.1
或者,使用
ip route
命令:sudo ip route add default via 192.168.0.1
注意:直接在命令行下执行route
命令来添加路由是临时的,不会永久保存。当系统重启或网络接口重启后,这些路由设置将失效。要永久保存路由设置,可以在系统启动时执行的脚本(如/etc/rc.local
或网络配置文件)中添加相应的route
或ip route
命令。
netstat-用于显示网络状态信息
Netstat(Network Statistics)是一个在Linux系统中用于显示网络状态信息的命令。它提供了TCP、UDP连接、监听端口、路由表、网络接口统计信息等详细数据,是系统管理员和网络管理员进行网络诊断和监控的重要工具。Netstat命令可以显示与IP、TCP、UDP和ICMP协议相关的统计数据,帮助用户了解网络连接的当前状态。
基本语法
netstat [选项]
常用选项
选项 | 描述 |
---|---|
-a 或 --all | 显示所有连接和监听端口 |
-t 或 --tcp | 仅显示TCP连接 |
-u 或 --udp | 仅显示UDP连接 |
-n 或 --numeric | 直接使用IP地址和端口号,而不是解析为主机名和服务名 |
-l 或 --listening | 仅显示处于监听状态的套接字 |
-p 或 --programs | 显示每个连接的进程ID和程序名称(需要root权限) |
-r 或 --route | 显示路由表 |
-s 或 --statistics | 显示网络接口的统计信息 |
-i 或 --interfaces | 显示网络接口信息 |
-c 或 --continuous | 持续列出网络状态 |
-v 或 --verbose | 显示详细输出信息 |
示例
- 显示所有连接和监听端口
此命令将列出系统上所有的TCP、UDP连接和监听端口。netstat -a
- 仅显示TCP连接
此命令将仅列出TCP连接,包括监听状态和非监听状态的连接。netstat -t
- 以数字形式显示所有TCP连接
此命令将列出所有的TCP连接,但使用IP地址和端口号的形式,而不是解析为主机名和服务名。netstat -tn
- 显示处于监听状态的TCP端口
此命令将仅列出处于监听状态的TCP端口。netstat -lt
- 显示每个连接的进程ID和程序名称
注意:此命令需要root权限来显示进程ID和程序名称。sudo netstat -tulpn
-tulpn
选项组合表示显示TCP(-t
)、UDP(-u
)监听端口(-l
)、以数字形式显示地址和端口号(-n
)以及显示进程ID和程序名称(-p
,注意这里的n
是可选的,但在实践中常与-p
一起使用以避免解析服务名)。 - 显示路由表
此命令将显示系统的路由表,包括目的网络、网关、子网掩码等信息。netstat -r
- 查看网络接口统计信息
此命令将显示网络接口的统计信息,包括接收和发送的数据包数量、错误数等。netstat -s
- 以数字形式显示地址和端口号,并尝试显示与每个连接相关联的进程信息
如果需要查询 UDP 连接,可以使用netstat -natp
-u
替换-t
。netstat -naup
ss-网络管理命令
Linux中的ss
命令是Socket Statistics的缩写,也被称为IPC(Inter-Process Communication)套接字统计。这是一个强大的网络管理命令,主要用于获取系统中socket的统计信息,可以帮助系统管理员诊断和排查网络问题,包括检查当前网络连接及端口状态、搜索网络问题、统计网络情况、过滤网络数据等。与netstat
命令相比,ss
命令具有更快的查询速度和更详细的显示信息。
ss命令介绍
ss
命令直接利用Linux内核中的信息,通过TCP协议栈中的tcp_diag
模块获取第一手的数据,因此在处理大量网络连接时表现出色。它的功能包括但不限于:
- 显示所有TCP和UDP连接。
- 显示所有监听状态的套接字。
- 显示与每个套接字相关联的进程信息。
- 实时监控网络连接状态。
基本语法
ss
命令的基本语法如下:
ss [options] [ FILTER ]
其中,options
是ss
命令的可选参数,用于指定不同的功能和输出格式;FILTER
是用于过滤结果的选项,可以根据不同的条件进行结果过滤。
常用选项
选项 | 描述 |
---|---|
-t, --tcp | 仅显示TCP套接字信息。 |
-u, --udp | 仅显示UDP套接字信息。 |
-l, --listening | 仅显示处于监听状态的套接字。 |
-a, --all | 显示所有套接字信息,包括监听和非监听状态的套接字。 |
-n, --numeric | 以数字格式显示地址和端口,避免域名解析。 |
-p, --processes | 显示与每个套接字相关联的进程信息(可能需要root权限)。 |
-r, --resolve | 尝试解析服务名为主机名(可能导致查询速度变慢)。 |
-s, --summary | 显示套接字统计摘要信息。 |
-i, --info | 显示内部TCP连接信息(包括更多TCP内部状态)。 |
-m, --memory | 显示套接字使用的内存信息。 |
-o, --options | 显示计时器信息。 |
-4, --ipv4 | 仅显示IPv4套接字信息。 |
-6, --ipv6 | 仅显示IPv6套接字信息。 |
-x, --unix | 显示Unix domain sockets信息。 |
基础用法示例
- 显示所有监听状态的TCP套接字,不解析服务名称和端口号:
ss -nlt
- 显示所有监听状态的TCP套接字,包括进程信息,不解析服务名称和端口号:
ss -nltp
- 显示指定端口的监听状态TCP套接字,不解析服务名称和端口号:
ss -nlt sport = :80
- 显示指定端口的监听状态TCP套接字,包括进程信息,不解析服务名称和端口号:
ss -nltp sport = :80
- 显示指定IP地址和端口的监听状态TCP套接字,不解析服务名称和端口号:
ss -nlt addr 192.168.1.1:80
- 显示指定IP地址和端口的监听状态TCP套接字,包括进程信息,不解析服务名称和端口号:
ss -nltp addr 192.168.1.1:80
- 查看所有连接:
ss -a
- 查看所有TCP连接:
ss -t
- 查看所有UDP连接:
ss -u
- 查看所有监听状态的套接字:
ss -l
- 查看所有处于ESTABLISHED状态的TCP连接:
ss -t state established
- 查看所有在指定端口(例如80端口)上的连接:
ss -t sport = :80
- 查看所有在指定IP地址和端口上的连接:
ss -t src 192.168.1.1:80
- 查看所有TCP连接的详细信息(包括用户、进程ID等):
ss -t -p
- 查看所有UDP连接的详细信息:
ss -u -p
- 查看指定进程ID的套接字信息:
ss -p <process_id>
- 显示所有TCP连接,不解析服务名称和端口号:
ss -nt
- 显示所有UDP连接,不解析服务名称和端口号:
ss -nu
- 显示所有监听状态的套接字,不解析服务名称和端口号:
ss -nl
- 显示所有处于ESTABLISHED状态的TCP连接,不解析服务名称和端口号:
ss -nt state established
- 显示指定IP地址和端口上的TCP连接,不解析服务名称和端口号:
ss -nt src 192.168.1.1:80
- 显示所有TCP连接的详细信息(包括用户、进程ID等),不解析服务名称和端口号:
ss -ntp
- 显示指定进程ID的套接字信息,不解析服务名称和端口号:
ss -np <process_id>
lsof-用于列出当前系统打开文件的实用工具
lsof
(List Open Files)是一个在 Linux 系统中用于列出当前系统打开文件的实用工具。它可以显示哪些进程打开了哪些文件,以及打开方式等信息。
基本语法
lsof [选项]
常用选项
选项 | 描述 |
---|---|
-a | 显示所有选项间的逻辑与(AND)关系(与其他选项组合使用时) |
-c <进程名> | 列出指定进程名所打开的文件 |
-d <文件描述符> | 列出指定文件描述符打开的文件 |
+d <目录> | 列出指定目录下被打开的文件(非递归) |
+D <目录> | 递归列出指定目录下被打开的文件 |
-g <GID> | 显示指定GID(组ID)的进程打开的文件 |
-i | 选择要显示的条件(如协议、端口、IP地址等) |
-i <条件> | 列出符合条件的文件(如指定端口或IP) |
-n | 不将网络地址转换成名称,直接显示数字形式的IP地址和端口号 |
-p <PID> | 列出指定PID(进程ID)的进程打开的文件 |
-u <UID> | 显示指定UID(用户ID)的用户打开的文件 |
-v | 显示版本信息 |
-h 或 -? | 显示帮助信息 |
示例
- 列出所有打开的文件
sudo lsof
- 列出特定进程(如PID为1234)打开的文件
sudo lsof -p 1234
- 递归列出特定目录(如/var/log)下被打开的文件
sudo lsof +D /var/log
- 列出特定用户(如用户名为john)打开的文件
sudo lsof -u john
- 列出占用特定端口(如8080)的进程
sudo lsof -i :8080
- 列出所有TCP网络连接
sudo lsof -i tcp
- 列出指定命令打开的文件:
lsof -c ssh
典型示例以及输出结果的反馈分析
假设想要查看进程ID为 1234 的进程打开的所有网络连接,可以使用以下命令:
lsof -i -a -p 1234
输出结果:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 1234 user 4u IPv4 12345 0t0 TCP *:80 (LISTEN)
httpd 1234 user 5u IPv4 12346 0t0 TCP 192.168.1.2:80->192.168.1.3:56789 (ESTABLISHED)
httpd 1234 user 6u IPv6 12347 0t0 TCP *:443 (LISTEN)
输出结果中各列的含义:
- COMMAND:进程名
- PID:进程ID
- USER:进程所属用户
- FD:文件描述符
- TYPE:文件类型(如 IPv4、IPv6、UDP 等)
- DEVICE:设备号
- SIZE/OFF:文件大小或偏移量
- NODE:索引节点号
- NAME:文件名或网络地址
根据上述输出结果,可以得知:
- 进程名为
httpd
,进程ID为1234
,所属用户为user
。 - 该进程打开了三个网络连接:
- 文件描述符为
4u
的连接是一个监听在端口80
的 IPv4 TCP 连接。 - 文件描述符为
5u
的连接是一个从192.168.1.2:80
到192.168.1.3:56789
的已建立的 IPv4 TCP 连接。 - 文件描述符为
6u
的连接是一个监听在端口443
的 IPv6 TCP 连接。
- 文件描述符为
ping-用于测试网络连接
ping命令是Linux系统中用于测试网络连接和诊断网络问题的常用工具。它通过发送ICMP(Internet控制消息协议)Echo请求包到目标主机,并等待接收回应包来工作。如果目标主机能够回应,则表示网络连接正常;如果请求超时或未收到回应,则可能表示网络连接存在问题。ping命令是iputils(或iputils-ping)程序包的一部分,该程序包已预先安装在绝大多数Linux发行版上。
基本语法
ping [options] destination
其中,options
是可选的命令行选项,用于定制ping命令的行为;destination
是目标主机的IP地址或主机名。
常用选项
选项 | 描述 |
---|---|
-c count | 指定发送ICMP回显请求的次数。例如,-c 5 将发送5个请求。 |
-i interval | 指定每个ICMP回显请求之间的时间间隔(以秒为单位)。默认值为1秒。 |
-s packetsize | 指定发送的数据包大小(以字节为单位)。默认值为56字节(加上ICMP头后,通常为64字节)。 |
-t ttl | 设置ICMP回显请求的生存时间(TTL)。TTL决定了数据包在可以丢弃之前可以通过的最大路由器数。默认值为系统默认TTL值,通常为64。 |
-q | 以安静模式运行,只显示最后的结果,不显示每个ping请求的详细信息。 |
-v | 以详细模式运行,显示每个ping请求的详细信息。 |
-I interface | 使用指定的网络接口发送数据包。如果不指定,系统将使用默认网络接口。 |
示例
- 测试网络连接是否通畅
该命令将向www.google.com发送ICMP回显请求,并显示每个请求的响应时间和丢包情况。默认情况下,ping命令会持续发送请求直到用户中断(通常是通过按Ctrl+C)。ping www.google.com
- 设置发送ICMP回显请求的次数
该命令将向www.google.com发送4个ICMP回显请求,并在发送完所有请求后自动停止。ping -c 4 www.google.com
- 设置ICMP回显请求的时间间隔
该命令将向www.google.com发送ICMP回显请求,并设置请求之间的时间间隔为2秒。ping -i 2 www.google.com
- 设置ICMP回显请求的数据包大小
该命令将向www.google.com发送ICMP回显请求,并设置数据包大小为1000字节(注意:由于ICMP头的大小,实际发送的数据包大小将稍大于1000字节)。但是,请注意,不是所有系统都允许发送大于标准大小(64字节)的ICMP数据包,且目标主机可能会忽略或拒绝接收过大的数据包。ping -s 1000 www.google.com
- 详细模式运行
该命令将以详细模式运行,显示每个ICMP回显请求的详细信息,包括时间戳、TTL值等。但请注意,不是所有版本的ping命令都支持ping -v www.google.com
-v
选项。如果不支持,该选项可能会被忽略或产生错误消息。
traceroute-跟踪数据包
traceroute命令是Linux系统中用于追踪数据包到目标主机之间路径的工具。它通过发送一系列的数据包(默认使用UDP协议,但也可以使用ICMP或TCP协议),并逐渐增加数据包的生存时间(TTL)值,从而探测数据包经过的每一个路由器(跳数)。该命令能够显示数据包经过的每一跳的IP地址和往返时间,对于诊断网络连接问题非常有用。
基本语法
traceroute [选项] 目标主机
其中,目标主机可以是IP地址或域名,选项用于定制traceroute命令的行为。
常用选项
选项 | 描述 |
---|---|
-I | 使用ICMP回应代替UDP数据报文来跟踪路径(有些系统可能默认使用ICMP) |
-U | 使用UDP协议进行探测(这是默认行为,但在某些系统中可能需要显式指定) |
-T | 使用TCP协议进行探测 |
-p <端口号> | 设置探测包的目标端口号(默认端口号随系统而异,通常是大于30000的端口) |
-q <数据包数量> | 设置每个TTL值发送的数据包数量(默认为3) |
-n | 直接使用IP地址而非尝试解析主机名 |
-m <最大跳数> | 设置数据包到达目标主机之前的最大跳数(默认为30) |
-w <超时时间> | 设置等待响应的超时时间(以秒为单位) |
-f <初始TTL值> | 设置数据包的初始TTL值(而不是从1开始) |
-g <网关> | 设置松散源路由网关,允许用户指定数据包必须通过的路由点 |
示例
- 基本使用
此命令将追踪到www.example.com的路径,并显示每一跳的IP地址和往返时间。traceroute www.example.com
- 指定最大跳数
此命令将追踪到www.example.com的路径,但最多只显示前5跳的信息。traceroute -m 5 www.example.com
- 不显示主机名
此命令将追踪到www.example.com的路径,但只显示IP地址,不显示通过DNS解析得到的主机名。traceroute -n www.example.com
- 设置UDP目标端口
此命令将UDP探测包的目标端口设置为80(HTTP服务的默认端口),然后追踪到www.example.com的路径。traceroute -p 80 www.example.com
- 使用ICMP协议
在某些系统中,可能需要显式指定使用ICMP协议:
但请注意,不是所有系统都支持traceroute -I www.example.com
-I
选项来指定ICMP协议,这取决于traceroute命令的具体实现。
nslookup-域名解析
nslookup
是一个用于查询 DNS(域名系统)记录的命令行工具。它可以用来获取域名对应的 IP 地址、查看 DNS 服务器的响应时间等。
基本语法
nslookup [options] [hostname]
常用选项
选项 | 描述 |
---|---|
-query=<type> | 查询指定类型的 DNS 记录,如 A、AAAA、CNAME、MX、NS、PTR、SOA、SRV 等 |
-timeout=<seconds> | 设置查询超时时间,默认为 5 秒 |
-retry=<count> | 设置查询失败时的重试次数,默认为 3 次 |
-server=<IP> | 使用指定的 DNS 服务器进行查询,默认为系统配置的 DNS 服务器 |
-type=<type> | 同 -query=<type> ,用于指定查询的 DNS 记录类型 |
-debug | 显示详细的调试信息 |
示例
- 查询域名为
example.com
的 A 记录:
nslookup -query=A example.com
- 查询域名为
example.com
的 MX 记录:
nslookup -query=MX example.php
- 使用指定的 DNS 服务器(如
8.8.8.8
)查询域名为example.com
的 A 记录:
nslookup -server=8.8.8.8 example.com
- 设置查询超时时间为 10 秒,查询域名为
example.com
的 A 记录:
ns霄lookup -timeout=10 -query=A example.com
- 显示详细的调试信息,查询域名为
example.com
的 A 记录:
nslookup -debug -query=A example.com
注意:nslookup
命令在某些 Linux 发行版中可能需要安装 bind-utils
软件包才能使用。例如,在 Ubuntu 系统中,可以使用以下命令安装:
sudo apt-get install bind9-utils
dig-查询DNS
dig
(Domain Information Groper)是一个用于查询 DNS(域名系统)记录的命令行工具。它提供了比 nslookup
更丰富的功能和更详细的输出信息。
基本语法
dig [@server] [options] {name} [type]
常用选项
选项 | 描述 |
---|---|
-t 或 @type | 查询指定类型的 DNS 记录,如 A、AAAA、CNAME、MX、NS、PTR、SOA、SRV 等 |
-c 或 @count | 设置查询返回的记录数,默认为 50 条 |
-f 或 @file | 从指定的文件中读取要查询的域名列表 |
-x 或 @reverse | 进行反向查询,将 IP 地址转换为域名 |
-b 或 @bind | 使用指定的 IP 地址作为本地地址进行查询 |
-p 或 @port | 使用指定的端口进行查询,默认为 53 端口 |
-k 或 @keyfile | 使用指定的密钥文件进行 TSIG(传输安全完整性)验证 |
-y 或 @keyname:keysecret | 使用指定的密钥名称和密钥进行 TSIG 验证 |
-v 或 @verbose | 显示详细的调试信息 |
-q 或 @query | 设置查询的域名,等同于 {name} 参数 |
示例
- 查询域名为
example.com
的 A 记录:
dig example.com
- 查询域名为
example.com
的 MX 记录:
dig example.com MX
- 使用指定的 DNS 服务器(如
8.8.8.8
)查询域名为example.com
的 A 记录:
dig @8.8.8.8 example.com
- 进行反向查询,将 IP 地址
192.168.1.1
转换为域名:
dig -x 192.168.1.1
- 显示详细的调试信息,查询域名为
example.com
的 A 记录:
dig -v example.com
注意:dig
命令在某些 Linux 发行版中可能需要安装 dnsutils
软件包才能使用。例如,在 Ubuntu 系统中,可以使用以下命令安装:
sudo apt-get install dnsutils
简单的配置实例
通过修改/etc/resolv.conf
文件配置DNS实例
在Linux系统中,/etc/resolv.conf
文件是用来配置域名解析服务器的关键文件。当你想要手动设置系统使用的DNS服务器时,可以编辑这个文件。以下是一个使用 vim
编辑 /etc/resolv.conf
文件来配置DNS域名解析服务器的实例。
步骤 1: 打开终端
首先,你需要打开一个终端窗口。
步骤 2: 使用 vim
编辑 /etc/resolv.conf
在终端中,输入以下命令来编辑 /etc/resolv.conf
文件:
sudo vim /etc/resolv.conf
步骤 3: 配置DNS服务器
在 vim
中,你将看到 /etc/resolv.conf
文件的当前内容。如果文件是空的或你想更改设置,你可以按照以下格式添加或修改DNS服务器地址:
nameserver 8.8.8.8
nameserver 8.8.4.4
这里,8.8.8.8
和 8.8.4.4
是Google提供的公共DNS服务器的IP地址。你可以根据需要替换成其他DNS服务器的地址。
步骤 4: 保存并退出 vim
在 vim
中,你可以通过以下方式保存并退出:
- 按下
Esc
键退出编辑模式。 - 输入
:wq
并按Enter
键保存更改并退出。
步骤 5: 测试DNS解析
为了确认你的DNS设置是否生效,你可以使用 dig
或 nslookup
命令来测试DNS解析。例如,使用 dig
命令查询 www.example.com
的IP地址:
dig www.example.com
或使用 nslookup
命令:
nslookup www.example.com
通过修改/etc/hosts
文件实现主机名与IP地址的静态映射
步骤 1: 打开终端
首先,你需要打开一个终端窗口。
步骤 2: 使用文本编辑器编辑 /etc/hosts
使用文本编辑器来编辑 /etc/hosts
文件,sudo
/ nano
:
sudo nano /etc/hosts
或者 vim
:
sudo vim /etc/hosts
步骤 3: 添加或修改主机名到 IP 地址的映射
在 /etc/hosts
文件中,每一行都包含一个 IP 地址和一个或多个与之关联的主机名。这些行遵循以下格式:
IP_address hostname1 [hostname2] ...
因此,如果想要将 IP 地址 192.168.1.100
映射到主机名 myserver
和 www.myserver.local
,可以添加以下行:
192.168.1.100 myserver www.myserver.local
步骤 4: 保存并退出编辑器
- 如果使用的是
nano
,可以通过Ctrl + O
保存更改,然后按Enter
确认文件名,最后按Ctrl + X
退出。 - 如果使用的是
vim
,可以通过Esc
键退出编辑模式,然后输入:wq
并按Enter
键来保存更改并退出。
步骤 5: 测试映射
使用 ping
命令来测试主机名是否解析为正确的 IP 地址:
ping myserver
或
ping www.myserver.local
如果一切设置正确,ping
命令将显示发送 ICMP ECHO_REQUEST 数据包到指定的 IP 地址(在这个例子中是 192.168.1.100
)的响应。