如何讓 DNS 和 VPN 完美搭配?

如何讓 DNS 和 VPN 完美搭配?

當我在工作時用電纜連接筆記型電腦時,我立即進入了我們的內部網路。所以我可以直接連接到裡面的計算機,沒有域名,如:ssh host1,有域名:ssh host1.example.com或直接透過IP ssh 192.168.100.101:。

但在家時我需要先登入我們的 VPN。之後我就可以安全地
連接ssh host1.example.comssh 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 查找),並且可以更快地體驗網路的其餘部分(我認為)。

我一直在擺弄一些決心,但還沒有弄清楚如何讓它
發揮作用。我試著指出/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 介面。

相關內容