OpenVPN 服务器 IP 已更改

问题描述 投票:0回答:3

我刚刚尝试在 AWS ec2 上设置 OpenVPN。但是,每次启动 ec2 时,公共 IP 地址都会发生变化,并且我无法使用 Windows PC 上的连接客户端软件连接到 OpenVPN。关于如何更新“OpenVPN Connect”有什么想法吗?

amazon-web-services openvpn
3个回答
1
投票

由于每次重新启动都会为您提供一个“新”IP 地址,因此您可以在 @reboot 上有一个 cron 脚本来重新配置 openvpn 服务器

@reboot at now + 1 min -f /path/to/script.sh

/path/to/script.sh

# gets the current public ip assigned to your instance 
INSTANCE_PUBLIC_IP=$(curl http://169.254.169.254/latest/meta-data/public-ipv4)


cd /usr/local/openvpn_as/scripts

# updates the server hostname with your public IP
./sacli --key "host.name" --value $INSTANCE_PUBLIC_IP ConfigPut

# restart the server
./sacli start

0
投票

当 Amazon EC2 实例启动时,可以为其分配一个公共 IP 地址。这将是一个随机地址。因此,每当实例停止和启动时,它都会更改其公共 IP 地址。

如果您想保持公共IP地址相同,那么您应该:

  • 创建一个弹性IP地址(静态)
  • 将弹性 IP 地址关联到 Amazon EC2 实例

EC2 实例将保留相同的公共 IP 地址,即使在停止和启动时也是如此。


0
投票

我无法让上面的@reboot解决方案工作,但发现了另一个解决方案。

基本上,我认为当您重新启动实例时,OpenVPN 服务器实际上正在处理 IPv4 的更改。

主机名设置为实例在部署时拥有的 IPv4 地址

OpenVPN Connect 上有参数可以帮助处理此问题(服务器覆盖)。

当您想要连接 VPN 时,请在 OpenVPN Connect 中编辑相关配置文件,以便:

用户:[用户名]

密码:[密码]

服务器主机名: [部署时的公共 ipv4](仍然是服务器上的主机名。您可以通过登录 VPN 管理面板并转到网络设置来找到它)

服务器覆盖: [当前 public-ipv4](实例启动时的实际 IP 地址)

端口:(大概)943

您必须在每个实例启动时将新的 IPv4 放入服务器覆盖,但这肯定是最简单的方法。

© www.soinside.com 2019 - 2024. All rights reserved.