vpnc 连接但未在 /etc/resolv.conf 中设置名称服务器

vpnc 连接但未在 /etc/resolv.conf 中设置名称服务器

我不是 Ubuntu 的专家,运行的是 12.04 LTS 版本。我需要通过 vpnc 从大学连接到工作网络。登录正常,但是我无法访问 VPN 后面的任何机器。此外,即使我不设置工作代理,我的互联网仍然可用。非常感谢任何帮助!

这是我/etc/resolv.conf连接之前的样子:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
search [university-domain]

这是建立连接后的同一个文件:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
search [university-domain] [work-domain]

从查看同事机器上的其他 resov.conf 内容来看,名称服务器未更新为工作网络内的名称服务器。这是我同事的 resolv.conf 的样子:

# Generated by NetworkManager
domain [work-domain]
search [work-domain]
nameserver 147.243.4.86
nameserver 147.243.4.70
nameserver 147.243.1.52
# NOTE: the libc resolver may not support more than 3 nameservers.
# The nameservers listed below may not be recognized.
nameserver 147.243.1.53
nameserver 147.243.128.216
nameserver 147.243.128.217

我的同事运行的是旧版本的 Ubuntu(我猜是 11.04)。

请告诉我!

答案1

假设您有一个本地转发名称服务器正在运行,该服务器监听 127.0.0.1,则 /etc/resolv.conf 在连接之前和之后看起来都是正确的。在 Ubuntu 12.04 Desktop 中,默认情况下会运行此类名称服务器。要查看名称服务器进程,请运行

ps -elf|grep dnsmasq

您同事的 /etc/resolv.conf 看起来不同的原因是您的同事没有运行本地转发名称服务器。此外,您的同事没有安装 resolvconf 包,因此您的同事的 NetworkManager 进程直接写入 /etc/resolv.conf,而不是使用 resolvconf 来实现此目的。

在您的机器上,工作局域网名称服务器的地址不应出现在 /etc/resolv.conf 中。这应该继续只显示“nameserver 127.0.0.1”(或 Ubuntu 12.10 中的“nameserver 127.0.1.1”)。工作局域网名称服务器地址应由 NetworkManager 发送到本地转发解析器以用作转发地址。要查看已发送的地址,请执行

nmcli -f IP4 dev list | grep DNS

在 Ubuntu 12.04 中,地址也可以在 /run/nm-dns-dnsmasq.conf 中看到,但在 Ubuntu 12.10 中,地址是通过 D-Bus 从 NM 发送到 dnsmasq 的,因此无法通过这种方式进行检查。

在原始问题中,甚至不清楚问题是否特定于 DNS。提问者与工作 LAN 有任何网络连接吗?提问者可以在工作 LAN 上 ping 通 IP 地址吗?

相关内容