我不是 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 地址吗?