當我在工作時用電纜連接筆記型電腦時,我立即進入了我們的內部網路。所以我可以直接連接到裡面的計算機,沒有域名,如: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 查找),並且可以更快地體驗網路的其餘部分(我認為)。
我一直在擺弄一些決心,但還沒有弄清楚如何讓它
發揮作用。我試著指出/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 介面。