通过 Ubuntu(20.04.1)vpnc(0.5.3r550-3.1)连接到 fritzbox VPN 时 DNS 解决问题

通过 Ubuntu(20.04.1)vpnc(0.5.3r550-3.1)连接到 fritzbox VPN 时 DNS 解决问题

我的私有网络中有一个设备,我们称之为“网络服务器”。当我直接连接到家里的私有网络时,我可以使用其主机名访问该服务器,例如http://webserver:1337。但是,如果我通过 VPN 从其他网络(例如从工作或图书馆)连接到该网络,我的浏览器(firefox 和 chrome)无法解析该主机名(两者均仅使用系统网络配置)。如果我运行

dig webserver +short

i,没有返回 IP 地址。但是其他主机名,例如fritz.box(我的路由器)确实返回了正确的 IP 地址。

dig fritz.box +short
192.168.178.1

所以这让我认为我的 VPN 和 DNS 配置是错误的,我需要更改它们,因为如果我专门询问 VPN 网络内的 DNS 服务器,对于该主机名,我实际上会得到正确的 IP

> watch dig webserver @192.168.178.1 +short
192.168.178.46

在我的 VPN 配置中,DNS 服务器地址设置为,automatic因此我假设它只会检索正确的 IP,这看起来应该可以工作,当我运行

> systemd-resolve --status

[...]

Link 5 (tun0)
      Current Scopes: DNS          
DefaultRoute setting: yes          
       LLMNR setting: yes          
MulticastDNS setting: no           
  DNSOverTLS setting: no           
      DNSSEC setting: no           
    DNSSEC supported: no           
  Current DNS Server: 192.168.178.1
         DNS Servers: 192.168.178.1
          DNS Domain: ~.           

Link 3 (wlp3s0)
      Current Scopes: none
DefaultRoute setting: no  
       LLMNR setting: yes 
MulticastDNS setting: no  
  DNSOverTLS setting: no  
      DNSSEC setting: no  
    DNSSEC supported: no  

我的本地/etc/resolv.conf也没有显示任何特殊配置:

nameserver 127.0.0.53
options edns0

如果我运行,ip r我还可以看到到名称服务器的子网的路由看起来设置正确:

default dev tun0 proto static scope link metric 50 
default via 192.168.0.1 dev wlp3s0 proto dhcp metric 600 
169.254.0.0/16 dev wlp3s0 scope link metric 1000 
192.168.0.0/24 dev wlp3s0 proto kernel scope link src 192.168.0.236 metric 600 
192.168.0.1 dev wlp3s0 proto static scope link metric 600 
192.168.178.0/24 dev tun0 proto kernel scope link src 192.168.178.201 metric 50 

这是我的 VPN 配置文件/etc/NetworkManager/system-connections/

[connection]
id=**redacted**
uuid=**redacted**
type=vpn
autoconnect=false
permissions=user:**redacted**:;
timestamp=1604833427

[vpn]
IKE DH Group=dh2
IPSec ID=**redacted**
IPSec gateway=**redacted**
IPSec secret-flags=1
Local Port=0
NAT Traversal Mode=natt
Perfect Forward Secrecy=server
Vendor=cisco
Xauth password-flags=1
Xauth username=**redacted**
ipsec-secret-type=save
xauth-password-type=save
service-type=org.freedesktop.NetworkManager.vpnc

[ipv4]
dns-search=
method=auto

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto

[proxy]

ifconfig tun0给我:

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1412
        inet 192.168.178.201  netmask 255.255.255.0  destination 192.168.178.201
        inet6 **redacted**  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
        RX packets 3334  bytes 3091010 (3.0 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2980  bytes 635324 (635.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

我的systemd-resolved日志大部分是这样的:

Dez 08 15:35:52 **redacted** systemd-resolved[1040]: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001, retrying transaction with reduced feature level UDP.
Dez 08 15:35:52 **redacted** systemd-resolved[1040]: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001, retrying transaction with reduced feature level UDP.

这里值得注意的是/etc/resolv.conf指向/run/systemd/resolve/stub-resolv.conf,其中包含

nameserver 127.0.0.53
options edns0

有人建议让它指向/run/systemd/resolve/resolv.conf,其中包含:

nameserver 192.168.178.1

这是正确的名称服务器。但这会绕过resolved并且不能解决问题。

我很感激得到一些关于如何进一步解决此问题的指点。提前谢谢!

答案1

我的本地/etc/resolv.conf也没有显示任何特殊配置:

nameserver 127.0.0.53

您是否尝试将其更改为192.168.178.1(据我所知,这是您的内部 DNS 服务器)。您是否尝试更改您的设置,/etc/hosts只是作为测试并输入如下一行:

192.168.178.1 webserver

(将 IP 和名称更改为实际名称)

相关内容