Openvpn
使用 OpenVPN 時 RDP 不可用
我已經被這個問題困擾了好幾天了。
我目前在自託管伺服器上執行 OpenVPN 伺服器。我們的員工使用此功能,以便在從遠端位置登錄 VPN 後,他們能夠訪問我們辦公室網路中的資源。其主要用途是使用 RDP 連接到 Windows 機器。
我們需要將其遷移到雲端。我們已經建立了一個測試環境,AWS VPNs 從我們的辦公室連接到一個 Transit Gateway,該網關連接到各種 VPC。其中一個 VPC 包含一個實例,我在該實例上執行一個 OpenVPN 伺服器,該伺服器幾乎與目前 VPN 的配置相匹配,只是做了一些小改動。然而,雖然 RDP 使用目前的 OpenVPN 安裝工作得非常好,但使用雲託管的 OpenVPN 安裝卻無法使用。無法使用我的意思是:
- 嘗試播放 YouTube 剪輯以便我們可以測試幀速率,播放立即凍結長達 10 秒,然後 RDP 會話斷開連接
- 當做任何不涉及影片的事情時,它通常會工作一兩分鐘,然後一切都凍結,一段時間後會話斷開
所以我們能夠很好地連接,但顯然有些東西沒有按應有的方式執行,我已經嘗試了我能想到的一切。這些是目前可用的自託管 OpenVPN 伺服器的詳細資訊。
- CentOS 6.10
- 開放VPN 2.4.7
和內容
server.conf:
local 192.168.1.103 port 1194 proto tcp dev tun cert /etc/openvpn/keys2/mycert key /etc/openvpn/keys2/mykey dh /etc/openvpn/keys2/dh.pem server 10.8.0.0 255.255.255.0 topology subnet route 192.168.2.0 255.255.255.0 push "route 10.8.0.0 255.255.255.0" push "route 192.168.1.0 255.255.255.0" push "dhcp-option DNS 192.168.1.1" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" client-config-dir /etc/openvpn/ccd client-to-client duplicate-cn keepalive 20 600 cipher AES-128-CBC max-clients 100 user nobody group nobody persist-key persist-tun status /var/log/openvpn/openvpn-status.log log /var/log/openvpn/openvpn.log verb 4 username-as-common-name plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn reneg-sec 0 management localhost 17505 compress lz4 mssfix 1432 mute 10 ifconfig-pool-persist ipp.txt key-direction 0 tcp-queue-limit 256 verify-client-cert none
雲 OpenVPN 伺服器的詳細資訊:
- CentOS 7.6.1810
- 開放VPN 2.4.7
以及內容
server.conf:
port 1194 proto udp dev tun username-as-common-name ca /etc/certs/ca.crt cert /etc/certs/server.crt key /etc/certs/server.key dh /etc/certs/dh2048.pem server 10.8.0.0 255.255.255.0 topology subnet push "route 10.8.0.0 255.255.255.0" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" client-config-dir /etc/openvpn/ccd client-to-client duplicate-cn keepalive 20 600 tcp-queue-limit 256 cipher AES-256-CBC auth SHA256 max-clients 100 user nobody group nobody persist-key persist-tun status /var/log/openvpn/openvpn-status.log log /var/log/openvpn/openvpn.log verb 4 plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn reneg-sec 0 compress lz4 mssfix 1432 mute 10 ifconfig-pool-persist ipp.txt key-direction 0 verify-client-cert none
您可以看到某些路由是必要的。此外,雖然目前新伺服器正在使用 UDP,如下所述,這是因為我已更改此設置以嘗試解決問題。
這是我嘗試過的:
- 嘗試了 TCP 和 UDP(UDP 在辦公室裡對我們來說從來都不是很好,所以我們已經使用 TCP 多年了)
- MTU 設置的許多變化,從 500 到 2500,以許多增量
- 將密碼更改為 AES-128-CBC
- 所有可用的 RDP 顏色和頻寬設置
- 各種 RDP 顯示尺寸設置
- TightVNC,效果很好,但不幸的是不是一個解決方案。我只是想確定這個問題是 RDP 特有的
將不勝感激任何想法,因為我沒有他們。
這裡的問題是路由器中的 DoS 防禦設置,我們試圖 RDP 到的客戶端正在使用該設置 - 特別是 UDP 洪水防禦設置(我們使用 DrayTek Vigor 2926)。門檻值設置為每秒 50 個數據包。禁用此功能會大大改善體驗,因此在進行了一些試驗後,我們確定了 5000 個數據包/秒。現在工作得很好。