通过 OpenVPN 连接互联网上的服务器

通过 OpenVPN 连接互联网上的服务器

我正在尝试在互联网上连接多台服务器(Ubuntu Server 20.04),以便它们位于同一个专用网络中,并且可以共享只能通过此专用网络访问的服务(例如服务器管理等)。我之前进行了一些搜索,但没有答案能满足我的情况。

场景是:我让一台服务器启动并运行 OpenVPN 服务器,并为另外两台服务器生成客户端证书以连接到 OpenVPN 服务器。

我为此使用的脚本是在 github 上。这个很好用。

现在的问题是,我能够将客户端连接到 OpenVPN 服务器,但无法通过 SSH 或其他方式连接到其中一个客户端。通过 VPN 则没有问题。

问题:如何让客户端通过互联网访问?据我所知,问题似乎是 OpenVPN 服务器为客户端传播了一个新的默认网关,因此流量只能通过 VPN 进行。谢谢您的建议。配置如下:

服务器配置文件

port 1194
proto udp6
dev tun
user nobody
group nogroup
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 1.0.0.1"
push "dhcp-option DNS 1.1.1.1"
push "redirect-gateway def1 bypass-dhcp"
server-ipv6 fd42:42:42:42::/112
tun-ipv6
push tun-ipv6
push "route-ipv6 2000::/3"
push "redirect-gateway ipv6"
dh none
ecdh-curve prime256v1
tls-crypt tls-crypt.key 0
crl-verify crl.pem
ca ca.crt
cert server.crt
key server.key
auth SHA256
cipher AES-128-GCM
ncp-ciphers AES-128-GCM
tls-server
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
client-config-dir /etc/openvpn/ccd
status /var/log/openvpn/status.log
verb 3

客户端配置文件

client
proto udp
explicit-exit-notify
remote {server IP} 1194
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
verify-x509-name {server name} name
auth SHA256
auth-nocache
cipher AES-128-GCM
tls-client
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
ignore-unknown-option block-outside-dns
setenv opt block-outside-dns # Prevent Windows 10 DNS leak
verb 3

答案1

听起来您想推送 VPN 可访问系统的路由,而不是默认路由。为此,请删除从服务器推送网关的语句 -

  push "redirect-gateway ipv6"

  push "redirect-gateway def1 bypass-dhcp"

您可能需要为其他客户端推送路线,例如添加

 push "10.8.0.0 255.255.0.0"

答案2

添加client-to-client到您的服务器配置文件。

答案3

setenv opt block-outside-dns # Prevent Windows 10 DNS leak

也许您使用服务器名称进行连接,并且您的脚本阻止了该地址(DNS)。

尝试将其删除。

相关内容