Openvpn

使用 OpenVPN 時 RDP 不可用

  • September 22, 2019

我已經被這個問題困擾了好幾天了。

我目前在自託管伺服器上執行 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 個數據包/秒。現在工作得很好。

引用自:https://serverfault.com/questions/968924