我一直在关注这个教程 – 如何在 Ubuntu 15.04 上配置 OpenVPN 服务器客户端– 在我的 Ubuntu 15.04 VM 上设置 OpenVPN。我一直遵循它,并且有点坚持客户端配置文件。
以下是示例中给出的 client.conf 文件:
dev tun
proto udp
# IP and Port of remote host with OpenVPN server
remote 111.222.333.444 1194
resolv-retry infinite
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/client.crt
key /etc/openvpn/keys/client.key
tls-client
tls-auth /etc/openvpn/keys/ta.key 1
auth SHA1
cipher BF-CBC
remote-cert-tls server
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log /var/log/openvpn.log
verb 3
mute 20
所以我猜测远程 IP 将是我的服务器的公共 IP,并且我需要在路由器上转发端口 1194。但是,如果我在 conf 文件中定义 ca、cert 和 key,如果我在 Android 设备上使用它,我是否需要更改路径以反映这些文件在 Android 设备上的位置,或者给出的示例是否正确?
我将使用 OpenVPN 客户端生成要在 Android 和 iOS 设备上使用的客户端密钥。这也适用于 Windows 吗?
答案1
当作为 Android 和 iPhone 上的客户端安装证书、VPN 配置文件等时,您无需担心配置文件中的位置,应用程序会处理它。例如,在 Windows 上,情况略有不同,在 macOS 上,使用tunnelblick,只需将文件放入tunnelblick,它就会处理路径。
希望有帮助。
答案2
配置文件中证书的位置必须反映它们在客户端中的安装位置。就我而言,证书已嵌入客户端配置文件中:
client
dev tun
proto udp
remote myserver.ddns.com 443
float
comp-lzo adaptive
keepalive 15 60
auth-user-pass
ns-cert-type server
<ca>
-----BEGIN CERTIFICATE-----
...HERE I HAVE A FEW LINES OF SYMBOLS REPRESENTING MY CERTIFICATE...
-----END CERTIFICATE-----
</ca>
resolv-retry infinite
nobind
一些热点会阻止大多数端口,但端口 443 将在大多数地方开放。这就是为什么我倾向于使用它,从任何地方访问我的家庭云。
最后我还得添加一个永久静态路由到我家庭 LAN 中的某些设备(主要是树莓派),以便能够从外部通过 VPN 访问它们。必须将此行添加到/etc/network/interfaces
:
up route add 10.8.0.0/24 via 192.168.1.1 dev eth0