当我在工作时,用电缆连接笔记本电脑,我立即进入了我们的内部网络。因此,我可以直接连接到内部计算机,无需域名:ssh host1
,使用域名:ssh host1.example.com
或直接通过 IP ssh 192.168.100.101
:。
但在家时我需要先登录我们的 vpn。之后我就可以安全地
连接ssh host1.example.com
和ssh 192.168.100.101
。但是我怎样才能去ssh host1
上班呢?
我在 Ubuntu 18.04.3 LTS 上,我使用 OpenVPN 2.4.4 连接到 VPN。
直到最近我才开始使用它,但事实证明我已经全部我的流量通过 VPN 路由,这当然让我感觉好像在办公室,但它也为非
办公室流量增加了一些额外的往返。因此,在 NetworkManager->编辑 VPN 连接->“IPv4
设置”->“路由...”中有一个复选框“仅将此连接用于其网络上的资源”。
如果未选中,我会得到一条将所有流量导向 vpn 接口(tun0)的默认路由:
$ ip route
default via 172.30.0.25 dev tun0 proto static metric 50
default via 192.168.1.1 dev enxc8f750cc2555 proto dhcp metric 100
...
如果选中,第一个默认规则就会消失:
$ ip route
default via 192.168.1.1 dev enxc8f750cc2555 proto dhcp metric 100
...
当然还有其他路由规则可以完成 vpn 配置,但我认为对于问题描述来说这里不需要这些规则。
因此,选中该框后,我可以使一切正常工作(DNS查找除外),并且网络的其余部分可以获得更快的体验(我认为)。
我一直在摆弄 resolve,但还没有弄清楚如何让它
工作。我尝试指出/etc/resolve.conf
以下两个方面:
/run/systemd/resolve/resolv.conf
/run/systemd/resolve/stub-resolv.conf
但行为上似乎没有任何改变。
search
我猜想这与设置有关,resolve.conf
但我无法弄清楚具体是如何有关的。
所以我想要的(我认为)是:
- 无论我在哪里连接,都可以通过 DHCP 获取网络配置(有效)
- 如果我登录到 VPN,VPN 内的 DNS 应该是默认的。
我可以如何更改、检查和验证哪些内容?有什么建议?有疑问吗?
或者我在这里问错了问题?
答案1
VPN 接口需要添加本地工作 DNS 地址和搜索域。通过 VPN 远程连接到您的主站点的机器并检查 DNS 地址。您还需要您的 DNS 后缀,也称为搜索域。(例如,如果您的完全合格域名是 computer1.xyz.com 或 comp1.abc.local,则搜索域/后缀将是 xyz.com 或 abc.local)
获得此信息后,更改 netplan 中的设置,添加名称服务器(dns 服务器)和 dns 搜索后缀。如下所示:
$ sudo vi /etc/netplan/50-cloud-init.yaml
ethernets:
vpn0:
addresses: [192.168.86.30/24]
dhcp4: no
dhcp6: no
gateway4: 192.168.86.1
nameservers:
addresses: [192.168.86.10] #dns server address goes here
search: [xyz.com] #end of FQDN goes here
$ sudo netplan apply
仅添加名称服务器/地址/搜索值。忽略其他。此后可能必须打开和关闭 VPN 接口。