Vpn

TLS 錯誤:TLS 密鑰協商失敗

  • August 9, 2020

我有一個 OpenVPN 伺服器。我無法連接到它。

我已逐步(幾次)按照如何在 Ubuntu 18.04 上設置 OpenVPN 伺服器的說明進行操作。但是,當我跑步時

sudo openvpn --config client1.ovpn

我得到:

Sat Aug  8 21:45:34 2020 OpenVPN 2.4.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on May 14 2019
Sat Aug  8 21:45:34 2020 library versions: OpenSSL 1.1.1  11 Sep 2018, LZO 2.08
Sat Aug  8 21:45:34 2020 Outgoing Control Channel Authentication: Using 256 bit message hash 'SHA256' for HMAC authentication
Sat Aug  8 21:45:34 2020 Incoming Control Channel Authentication: Using 256 bit message hash 'SHA256' for HMAC authentication
Sat Aug  8 21:45:34 2020 TCP/UDP: Preserving recently used remote address: [AF_INET]185.2.52.91:1194
Sat Aug  8 21:45:34 2020 Socket Buffers: R=[212992->212992] S=[212992->212992]
Sat Aug  8 21:45:34 2020 UDP link local: (not bound)
Sat Aug  8 21:45:34 2020 UDP link remote: [AF_INET]185.2.52.91:1194
Sat Aug  8 21:46:34 2020 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Sat Aug  8 21:46:34 2020 TLS Error: TLS handshake failed
Sat Aug  8 21:46:34 2020 SIGUSR1[soft,tls-error] received, process restarting
Sat Aug  8 21:46:34 2020 Restart pause, 5 second(s)
Sat Aug  8 21:46:39 2020 TCP/UDP: Preserving recently used remote address: [AF_INET]185.2.52.91:1194
Sat Aug  8 21:46:39 2020 Socket Buffers: R=[212992->212992] S=[212992->212992]
Sat Aug  8 21:46:39 2020 UDP link local: (not bound)
Sat Aug  8 21:46:39 2020 UDP link remote: [AF_INET]185.2.52.91:1194
Sat Aug  8 21:47:39 2020 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Sat Aug  8 21:47:39 2020 TLS Error: TLS handshake failed
Sat Aug  8 21:47:39 2020 SIGUSR1[soft,tls-error] received, process restarting
Sat Aug  8 21:47:39 2020 Restart pause, 5 second(s)

這是從伺服器所在的同一網路嘗試過的。我還嘗試從另一個網路的 Android 設備進行連接,但運氣不佳。

問題

  1. 出於測試目的,我可以從本地網路連接到伺服器嗎?
  2. 需要引入的 IP 是否client.conf必須是可以從https://api.ipify.org/獲得的公共 IP ?
  3. 既然有多台機器連接到這個網路,那麼如何簡單地通過公網IP建立連接呢?難道我不需要在某處指定伺服器在網路上的私有 IP 嗎?
  4. 的內容client.ovpn似乎是client.conf、 key、 cert 和 ca 文件的串聯。這是正確的嗎?我期待客戶端配置看起來更像一個 ssh 密鑰。

你的問題:

  1. 當然,您可以從本地網路連接。
  2. 您可以將任何 IP 放入您的客戶端配置中——公共的、私有的,等等——只要它是連接到伺服器的正確 IP!因此,如果您的客戶端在本地網路中,您應該將私有 IP 放在 client.conf 中,而不是公共 IP!
  3. 如果您希望您的 openvpn 伺服器可用於公共網際網路,您需要埠轉發 - 您需要告訴您的路由器“偵聽 udp 埠​​ 1194 並將其轉發到 udp <private ip>:1194”(假設您的伺服器偵聽 udp 1194 !)
  4. 這取決於配置。通常,cacertkey選項需要一個文件名 - 但您可以內聯指定一些選項。摘自手冊頁:
INLINE FILE SUPPORT
      OpenVPN allows including files in the main configuration for the --ca, --cert,
      --dh, --extra-certs, --key, --pkcs12, --secret, --crl-verify, --http-proxy-user-pass, 
      --tls-auth and --tls-crypt options.
      Each inline file started by the line <option> and ended by the line </option>

PS:您的客戶端日誌只顯示您的客戶端沒有收到來自指定 ip & port 的回复(可能是缺少埠轉發?)

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