如何解决 Linux 上的unknown host问题 (linux unknown host)

在进行网络连接时,我们都希望能够迅速地建立与目标服务器的连接,但是有时会遇到无法解析目标主机的情况,这就是“unknown host”问题。在 Linux 操作系统中,这种现象很常见,主要由以下几种原因引起的:DNS 缓存配置问题、DNS 服务器故障、网络配置错误等等。本文将介绍一些方法,帮助您快速解决 Linux 上的“unknown host”问题。

方法一:检查 DNS 配置

当 Linux 系统无法解析主机名时,您应该首先检查主机的 DNS 配置,以确保其正确有效。在终端中,输入以下命令即可查看当前主机的 DNS 服务器:

$ cat /etc/resolv.conf

如果输出结果为空,则说明您的系统没有正确配置 DNS。在这种情况下,您可以使用以下命令编辑该文件以添加 DNS 服务器:

$ sudo nano /etc/resolv.conf

在文件中,您可以添加以下内容:

nameserver 8.8.8.8 //设置 Google 的 DNS 服务器

nameserver 8.8.4.4

添加完成后保存并退出该文件,即可重启网络服务,重新尝试解析主机名。

方法二:清除 DNS 缓存

当您在 Linux 上浏览网站或连接服务器时,系统会自动将 DNS 地址缓存到本地。如果缓存中的信息不正确,系统将无法解析 DNS,导致“unknown host”问题。在这种情况下,您可以使用以下命令清除缓存:

$ sudo systemd-resolve –flush-caches

然后您可以尝试重新连接主机,以测试是否已成功解析 DNS。

方法三:检查网络配置

如果您的网络配置不正确,系统也可能无法解析主机名。在这种情况下,您可以使用以下命令检查当前网络配置:

$ ifconfig

运行此命令后,您应该能够看到当前网络接口的 IP 地址和配置信息。确保您的网络配置正确,例如正确配置子网掩码、网关地址以及 DNS 服务器。

方法四:替换 DNS 服务器

如果您的主机在解析 DNS 时出现问题,可能是因为您的 DNS 服务器遇到了故障。在这种情况下,您可以考虑更换 DNS 服务器。常用的 DNS 服务器有 Google DNS、OpenDNS、Cloudflare DNS 等。您可以在您的系统上使用以下命令更改 DNS 服务器:

$ sudo nano /etc/resolv.conf

然后添加您想要使用的 DNS 服务器地址,例如:

nameserver 1.1.1.1 // Cloudflare DNS

nameserver 1.0.0.1

保存并关闭该文件后,您可以尝试重新连接主机,检查是否成功解析 DNS。

方法五:检查主机名拼写

当您认为您已正确配置 DNS 服务器和网络信息时,但系统仍然无法解析主机名时,您可以检查您连接的主机名是否拼写错误。确保主机名正确,应用程序或服务器是否处于运行状态。

结论

在 Linux 操作系统中,解决“unknown host”问题可能涉及许多方面。在本文中,我们介绍了几种方法解决这个问题,包括检查 DNS 配置、清除 DNS 缓存、检查网络配置、替换 DNS 服务器和检查主机名拼写等。希望这些方法可以帮助您解决 Linux 上的“unknown host”问题。

相关问题拓展阅读:

win7下centos6.5虚拟机安装greenplum。初始化时Unknown host sdw Script Exiting!

VM tools是在界面上选择之后,VM自己给你挂载到虚拟机里面的态唤。。。不用下载。实际上是你安装VM 程序的时候,安装到你win里面的。只要从VM菜单里面选择安装VM Tools,VM自己给你挂载到瞎举虚拟机里面,直接运行就行,帆神凯不过,这个程序包需要linux内核头文件,这个一般系统里面只有一部分,需要下载安装。

PING值是什么???高手讲一下

用来察看网络ip地址的计算机语言。

ping …(代表ip地址)

回车后如果回答

request time out表示没有ping通,就是说网络有问题。

reply from….代表成功了。

ping是一个很常用的小工具,它主要用于确定网络的连通性问题。使用ping命令后,常见的出错信息通常分为3种:

1、Unknown host:不知名主机这种出错信息的意思是,该远程主机的名字不能被域名服务器(DNS)转换成IP地址。

故障原因可能是域名服务器有故障,或者其名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。 飞

2、Noanswer:无响应这种故障说明本地系统有一条通向中心主机的路由,但却接收不到它发给该中心主机的任何信·

息。故障原因可能是下列之一:中心主机没有工作;本地或中心主机网络配置不正确:本地或中心的路由器没有;1::作:

通信线路有故障;中心主机存在路由选择问题。 1

3、Request timbd out:超时工作站与中心主机的连接超时,数据包全部丢失of原因:可能是到路由器的连接出现

问题,或路由器不能通过,也可能是中心主机已经关机或死机。

如何用ping命令查找无法上网的原因?

1.Ping命令的语法格式:

有必要先给不了解Ping命令的人介绍一卜Ping命令的具体语法格式:ping目的地址……

其中目的地址是指被测试计算机的IP地址或域名。主要参数有:

a:解析主机地址。

n:数据:发出的测试包的个数,缺省值为4。

l:数值:所发送缓冲区的大小。

t:继续执行Ping命令,直到用户按Ctrl/C终上。

有关hng的其他参数,可通过在MS-DOS提示符—卜运行Ping或Ping—?命令来查看。

2.hng命令的应用技巧:

用Ping::二作情况时,只要在网络中其他任何一台计算机上Ping

该计算机的IP地址即可。例如要检查网络文件服务器192.192.225.225HPQW上的TCP/IP协议二

开始菜单下的“运行”子项中键入Ping 192.192.225.225就可以了。如果HPQW的TCP/IP协议:

屏幕方式显示如下所示的信息:

Pinging 192.192.225.225 with 32 byteS of dara:

Reply from 192.192.225,225:bytes=32 time=lms TTL二128

Reply from 192.192,225.225:bytes=32 timeping 61.152.93.131

Pinging 61.152.93.131 with 32 bytes of data:

Reply from 61.152.93.131: bytes=32 time=21ms TTL=118

Reply from 61.152.93.131: bytes=32 time=19ms TTL=118

Reply from 61.152.93.131: bytes=32 time=18ms TTL=118

Reply from 61.152.93.131: bytes=32 time=22ms TTL=118

Ping statistics for 61.152.93.131:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss

Approximate round trip times in milli-seconds:

Minimum = 18ms, Maximum = 22ms, Average = 20ms

D:Documents and Settingshx>ping 61.152.104.40

Pinging 61.152.104.40 with 32 bytes of data:

Reply from 61.152.104.40: bytes=32 time=28ms TTL=54

Reply from 61.152.104.40: bytes=32 time=18ms TTL=54

Reply from 61.152.104.40: bytes=32 time=18ms TTL=54

Reply from 61.152.104.40: bytes=32 time=13ms TTL=54

Ping statistics for 61.152.104.40:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss

Approximate round trip times in milli-seconds:

Minimum = 13ms, Maximum = 28ms, Average = 19ms

之一台TTL为118,则基本可以判断这是一台Windows机器,从我的机器到这台机器经过了10个节点,因为=10。而第二台应该是台Linux,理由一样64-54=10。

了解了上面的东西,可能有人会有一些疑问,例如以下:

1,不是说包可能走很多路径吗,为什么我看到的4个包TTL都是一样的,没有出现不同?

这是由于包经过的路径是经过了一些更优选择算法来定下来的,在网络拓扑稳定一段时间后,包的路由路径也会相对稳定在一个最短路径上。具体怎么算出来的要去研究路由算法了,不在讨论之列。

2,对于上面例子第二台机器,为什么不认为它是经过了74个节点的Windows机器?因为128-74=54。

对于这个问题,我们要引入另外一个很好的ICMP协议工具。不过首先要声明的是,一个包经过74个节点这个有些恐怖,这样的路径还是不用为好。

要介绍的这个工具是tracert(*nix下为traceroute),让我们来看对上面的第二台机器用这个命令的结果

D:Documents and Settingshx>tracert 61.152.104.40

Tracing route to 61.152.104.40 over a maximum of 30 hops

1 13 ms 16 ms 9 ms 10.120.32.1

2 9 ms 9 ms 11 ms 219.233.244.105

3 12 ms 10 ms 10 ms 219.233.238.173

4 15 ms 15 ms 17 ms 219.233.238.13

5 14 ms 19 ms 19 ms 202.96.222.73

6 14 ms 17 ms 13 ms 202.96.222.121

7 14 ms 15 ms 14 ms 61.152.81.86

8 15 ms 14 ms 13 ms 61.152.87.162

9 16 ms 16 ms 28 ms 61.152.99.26

10 12 ms 13 ms 18 ms 61.152.99.94

11 14 ms 18 ms 16 ms 61.152.104.40

Trace complete.

从这个命令的结果能够看到从我的机器到服务器所走的路由,确实是11个节点(上面说10个好像是我犯了忘了算0的错误了,应该是64-54+1,嘿嘿),而不是128的TTL经过了70多个节点。

既然已经说到这里了,不妨顺便说说关于这两个ICMP命令的高级一点的东西。

首先是ping命令,其实ping有这样一个参数,可以无视操作系统默认TTL值而使用自己定义的值来发送ICMP Request包。

例如还是用那台Linux机器,用以下命令:

D:Documents and Settingshx>ping 61.152.104.40 -i 11

Pinging 61.152.104.40 with 32 bytes of data:

Reply from 61.152.104.40: bytes=32 time=10ms TTL=54

Reply from 61.152.104.40: bytes=32 time=13ms TTL=54

Reply from 61.152.104.40: bytes=32 time=10ms TTL=54

Reply from 61.152.104.40: bytes=32 time=13ms TTL=54

Ping statistics for 61.152.104.40:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 10ms, Maximum = 13ms, Average = 11ms

D:Documents and Settingshx>

这个命令我们定义了发包的TTL为11,而前面我们知道,我到这台服务器是要经过11个节点的,所以这个输出和以前没什么不同。现在再用这个试试看:

D:Documents and Settingshx>ping 61.152.104.40 -i 10

Pinging 61.152.104.40 with 32 bytes of data:

Reply from 61.152.99.94: TTL expired in transit.

Reply from 61.152.99.94: TTL expired in transit.

Reply from 61.152.99.94: TTL expired in transit.

Reply from 61.152.99.94: TTL expired in transit.

Ping statistics for 61.152.104.40:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 0ms, Maximum = 0ms, Average = 0ms

D:Documents and Settingshx>

可以看到,结果不一样了,我定义了TTL为10来发包,结果是TTL expired in transit.就是说在到达服务器之前这个包的生命周期就结束了。注意看这句话前面的ip,这个ip恰好是我们前面tracert结果到服务器之前的最后1个ip,包的TTL就是在这里减少到0了,根据我们前面的讨论,当TTL减为0时设备会丢弃包并发送一个TTL过期的ICMP反馈给源地址,这里的结果就是更好的证明。

通过这里再次又证明了从我机器到服务器是经过了11个节点而不是70多个,呵呵。

最后再巩固一下知识,有人可能觉得tracer这个命令很神奇,可以发现一个包所经过的路由路径。其实这个命令的原理就在我们上面的讨论中。

想象一下,如果我给目的服务器发送一个TTL为1的包,结果会怎样?

根据前面的讨论,在包港出发的之一个节点,TTL就会减少为0,这时这个节点就会回应TTL失效的反馈,这个回应包含了设备本身的ip地址,这样我们就得到了路由路径的之一个节点的地址。

因此,我们继续发送TTL=2的包,也就受到第二个节点的TTL失效回应

依次类推,我们一个一个的发现,当最终返回的结果不是TTL失效而是ICMP Response的时候,我们的tracert也就结束了,就是这么简单。

顺便补一句ping命令还有个-n的参数指定要发包的数量,指定了这个数字就会按照你的要求来发包了而不是默认的4个包。如果使用-t参数的话,命令会一直发包直到你强行中止它。

已经有人回答过了

答案如下:

网际网络封包摸索器(Ping)是种内建于Linux、Unix、及微软Windows中的故障排除功能命令。

通过传送资料包到特定IP地址,并等待响应.

如果得到快速回复,就可知道网站寄出与接收等通讯功能正常;

如果回复时间慢,可能是网络塞车。

你可在自己的局域网络使用Ping,或是在网络上Ping特定的网址。

Windows操作系统中,点选“开始”菜单中的“运行”,然后键入Ping,接着输入IP地址。

也可下载免费或共享的Ping工具。

举例:

ping

www.baidu.com

-t

得到:

Reply from 220.181.27.5: bytes=32 time=54ms TTL=53

Reply from 220.181.27.5: bytes=32 time=54ms TTL=53

Reply from 220.181.27.5: bytes=32 time=54ms TTL=53

Reply from 220.181.27.5: bytes=32 time=54ms TTL=53

(其中 -t 可以得到连续的检测)

ping │ destination-list

Options:

-t Ping the specified host until stopped.To see statistics and continue – type Control-Break;To stop – type Control-C.

不停的ping地方主机,直到你按下Control-C。

此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。

-a Resolve addresses to hostnames.

解析计算机NetBios名。

示例:

C:\>ping -a 192.168.1.21

Pinging iceblood.yofor.com with 32 bytes of data:

Reply from 192.168.1.21: bytes=32 timeping -n.103.96.68

Pinging 202.103.96.68 with 32 bytes of data:

Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

Request timed out.

………………

Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

Ping statistics for 202.103.96.68:

Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip times in milli-seconds:

Minimum = 40ms, Maximum = 51ms, Average = 46ms

从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。

-l size Send buffer size.

定义echo数据包大小。

在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是更大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)

C:\>ping -lt 192.168.1.21

Pinging 192.168.1.21 withbytes of data:

Reply from 192.168.1.21: bytes=65500 timeping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)

Pinging 202.96.105.101 with 32 bytes of data:

Reply from 202.96.105.101: bytes=32 time=10ms TTL=249

Route: 202.107.208.187 ->

202.107.210.214 ->

61.153.112.70 ->

61.153.112.89 ->

202.96.105.149 ->

202.96.105.97 ->

202.96.105.101 ->

202.96.105.150 ->

61.153.112.90

Ping statistics for 202.96.105.101:

Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 10ms, Maximum = 10ms, Average = 10ms

从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,202.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.97这几个路由。

-s count Timestamp for count hops.

指定 count 指定的跃点数的时间戳。

此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。

-j host-list Loose source route along host-list.

利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的更大数量为 9。

-k host-list Strict source route along host-list.

利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的更大数量为 9。

-w timeout Timeout in milliseconds to wait for each reply.

指定超时间隔,单位为毫秒。

此参数没有什么其他技巧。

ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在之间,而UNIX/Linux系列的系统返回的TTL值在之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:

“DefaultTTL”=dword:000000ff

FF

用来察看网络ip地址的计算机语言。

ping …(代表ip地址)

回车后如果回答

request time out表示没有ping通,就是说网络有问题。

reply from….代表成功了

测试网络的连通性的还有看一下网络的性能的。

具体参数自己去看吧

linux unknown host的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux unknown host,如何解决 Linux 上的unknown host问题,win7下centos6.5虚拟机安装greenplum。初始化时Unknown host sdw Script Exiting!,PING值是什么???高手讲一下的信息别忘了在本站进行查找喔。


数据运维技术 » 如何解决 Linux 上的unknown host问题 (linux unknown host)