Vpn
TLS 錯誤:TLS 密鑰協商失敗
我有一個 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 設備進行連接,但運氣不佳。
問題:
- 出於測試目的,我可以從本地網路連接到伺服器嗎?
- 需要引入的 IP 是否
client.conf
必須是可以從https://api.ipify.org/獲得的公共 IP ?- 既然有多台機器連接到這個網路,那麼如何簡單地通過公網IP建立連接呢?難道我不需要在某處指定伺服器在網路上的私有 IP 嗎?
- 的內容
client.ovpn
似乎是client.conf
、 key、 cert 和 ca 文件的串聯。這是正確的嗎?我期待客戶端配置看起來更像一個 ssh 密鑰。
你的問題:
- 當然,您可以從本地網路連接。
- 您可以將任何 IP 放入您的客戶端配置中——公共的、私有的,等等——只要它是連接到伺服器的正確 IP!因此,如果您的客戶端在本地網路中,您應該將私有 IP 放在 client.conf 中,而不是公共 IP!
- 如果您希望您的 openvpn 伺服器可用於公共網際網路,您需要埠轉發 - 您需要告訴您的路由器“偵聽 udp 埠 1194 並將其轉發到 udp
<private ip>:1194
”(假設您的伺服器偵聽 udp 1194 !)- 這取決於配置。通常,
ca
、cert
和key
選項需要一個文件名 - 但您可以內聯指定一些選項。摘自手冊頁: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 的回复(可能是缺少埠轉發?)