我的私有网络中有一个设备,我们称之为“网络服务器”。当我直接连接到家里的私有网络时,我可以使用其主机名访问该服务器,例如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 和名称更改为实际名称)