我有一个 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
必须是可以从中获取的公共 IPhttps://api.ipify.org/? - 由于有多台机器连接到此网络,如何仅通过公共 IP 建立连接?我是否必须在网络上的某个地方指定服务器的私有 IP?
- 的内容
client.ovpn
似乎是 、密钥、证书和 ca 文件的串联client.conf
。是这样吗?我原本以为客户端配置看起来更像 ssh 密钥。
答案1
你的问题:
- 当然,您可以从本地网络连接。
- 您可以在客户端配置中输入任何 IP - 公共、私有或任何 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 和端口的回复(可能缺少端口转发?)