我已经正确设置并运行了 OpenVPN。问题是我想为 VPN 上的某些用户分配静态 IP,这样他们每次都会获得完全相同的 IP。
我的设置用于 PAM 身份验证,运行正常:
client-cert-not-required
plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so login
我的用户名是joel
,而且它工作正常,因为我可以使用这个用户名从任何电脑登录 VPN。这是我的server.conf
IP 静态配置文件:
client-config-dir /etc/openvpn/ccd
nobody
当我的进程运行时,CCD 目录和用户文件均归它们所有:
用户文件的内容:
即使如此,当我以用户身份连接时,我仍然没有静态 IP joel
。我每次都会获得不同的 IP,从.6
到.10
,但从来没有.4
。
答案1
首先,您是否已client-connect
准备好脚本?如果已准备好,则其中的任何 IP 指令均优先。
其次,根据 OpenVPN 文档,client-config-dir
仅使用客户端的 X.509 通用名称来确定要使用哪个文件。您可以joel
通过创建 DEFAULT 文件来验证文件是否不匹配。看来您根本没有使用客户端证书,这可能会妨碍使用该client-config-dir
选项。
答案2
使用用户名/密码验证会禁用 OpenVPN 使用的任何通用名称。因此它在登录时不会设置客户端通用名称。
解决方案是在文件中设置以下标志server.conf
并重新启动 OpenVPN 服务器:
username-as-common-name
这告诉 OpenVPN 在连接时将用户名设置为客户端的通用名称。由于文件以通用名称命名,因此这是必需的,否则 OpenVPN 不知道要检查哪个文件。