
當我透過 RDP 連接到客戶端網路上的一台電腦時,網路上有一堆我可以透過名稱存取的 PC(例如 SVN 伺服器、Jenkins 等)。
然而,當我在本機 PC 上透過 VPN 連線時,這些電腦名稱都無法解析,但我可以毫無問題地 ping 通它們的 IP 位址。
這是我需要手動設定的問題還是 VPN 設定的問題?
答案1
我不是 IT 專業人士,但這在我的公司很有效。
在 Windows 10 上,如果您有內部 DNS 伺服器,則應將其新增至 VPN 提供的 DNS 伺服器。在 Windows Server 上,您可以設定具有本機名稱權限的 DNS 伺服器,google 則是您的朋友。
或者,用戶端可以在其 VPN 連線上執行此操作:
- 開啟控制面板、網路和共用中心、變更適配器設置
- 右鍵單擊您的 VPN 連線、屬性、網絡
- 選擇 TCP/IPv4 選項(無論您所在區域的名稱是什麼)
- 點選屬性、進階...
- 轉到 DNS 選項卡
- 新增您的內部 LAN 伺服器 DNS 位址,例如 10.0.10.1
- 可選:在編輯框中「此連線的 DNS 後綴:」新增 DNS 後綴,例如 yourcompany.local
- 申請並退出
- 中斷並重新連接 VPN(如果已連線)
Now, you can access an internal pc with computername.yourcompany.local or, if you added the suffix before, just computername, for instance \\computername in windows explorer, or computername:8080 in the browser for a service on 8080, or with遠端桌面.
答案2
在 VPN 屬性內,您需要在 DNS 中指定伺服器。或編輯主機文件,將 IP 位址與主機名稱關聯起來。
答案3
您的/etc/resolv.conf
檔案定義您的電腦應在何處將主機名稱解析為 IP 位址。基本問題是預設/etc/resolv.conf
運行時不會更新。openvpn
以下是您需要執行的操作來解決該問題。
1.) 將下列內容附加到server.conf
OpenVPN 伺服器電腦上的檔案中(通常位於/etc/openvpn/server.conf
),以使伺服器連接到用戶端,以將主機名稱轉換為 IP 位址。
push "dhcp-option DNS 192.168.1.1"
push "dhcp-option DOMAIN mylocaldomain.lan"
2.) 在您的客戶端電腦上安裝並使用以下命令resolvconf
將標準連結resolv.conf
到的版本,以具有能夠修改的功能resolvconf
resolv.conf
sudo apt install resolvconf
sudo mv /etc/resolv.conf /etc/resolv.conf.orig
sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf
3.) 將下列內容附加到檔案底部,以便在 OpenVPN 伺服器連線或中斷連線時client.ovpn
運作。resolvconf
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
4.) 每當您運行時,openvpn
您都必須使用-script-security 2
允許openvpn
運行的標誌來執行此操作resolvconf
。這是一個呼叫範例
sudo openvpn --script-security 2 --config /path/to/client.ovpn
您可以在此處閱讀上述說明的更詳細版本以及我的(正在運行的)OpenVPN 伺服器的一些範例程式碼:https://steamforge.net/wiki/index.php/How_to_configure_OpenVPN_to_resolve_local_DNS_%26_hostnames