[GH-ISSUE #350] 关于静态IP所需的额外账户密码添加无效的问题 #324

Closed
opened 2026-03-02 08:01:22 +03:00 by kerem · 1 comment
Owner

Originally created by @mtazrael on GitHub (Feb 19, 2023).
Original GitHub issue: https://github.com/hwdsl2/docker-ipsec-vpn-server/issues/350

任务列表

问题描述
使用清楚简明的语言描述这个 bug。
您好,首先非常感谢您提供的这个docker镜像,我使用的是debian的镜像版本。在实际使用中我发现例子中的VPN_ADDL_USERS=user1 user2,无效

重现步骤
重现该 bug 的步骤:

  1. 在env文件内加入VPN_ADDL_USERS=user1 user2 ,VPN_ADDL_PASSWORDS=pass1 pass2
  2. 重启DOCKER docker restart ipsec-vpn-server
  3. 进入容器 docker exec -it ipsec-vpn-server env TERM=xterm bash -l
  4. cat /etc/ppp/chap-secrets
  5. VPN_ADDL_USERS里面的账号均未添加到chap-secrets
  6. 额外账户无法登录

期待的正确结果
简要地描述你期望的正确结果。

日志
启用日志,检查 VPN 状态,并且添加错误日志以帮助解释该问题(如果适用)。

服务器信息(请填写以下信息)

  • Docker 主机操作系统: Debian11

客户端信息(请填写以下信息)

  • 设备: PC
  • 操作系统: Win10
  • VPN 模式: IPsec/L2TP

其它信息
由于额外账户一直未能如愿的添加到chap-secrets内,我便进入run.sh脚本,使用echo输出了原始变量值,发现VPN_ADDL_USERS、VPN_ADDL_PASSWORDS、VPN_ADDL_IP_ADDRS均显示空白,而其余变量字符串可以正常显示。我怀疑是不是因为分割字符为Space的问题,于是我将space换成了',',再次echo,能够正常输出字符串了,随后我将脚本内涉及到VPN_ADDL_X 相关的cut部分的space全部换成了',',重新启动容器后,chap-secrets内正常添加了额外的账户、密码以及分配的静态IP,至此额外账号添加成功。

before:使用space
VPN_ADDL_USERS=user1 user2
VPN_ADDL_PASSWORDS=pass1 pass2
echo printf 'vpn_addl_users' "$VPN_ADDL_USERS"
echo printf 'vpn_addl_passwords' "$VPN_ADDL_PASSWORDS"
输出
vpn_addl_users
vpn_addl_passwords

after:使用逗号
VPN_ADDL_USERS=user1,user2
VPN_ADDL_PASSWORDS=pass1,pass2
echo printf 'vpn_addl_users' "$VPN_ADDL_USERS"
echo printf 'vpn_addl_passwords' "$VPN_ADDL_PASSWORDS"
输出
vpn_addl_users user1,user2
vpn_addl_passwords pass1,pass2

Originally created by @mtazrael on GitHub (Feb 19, 2023). Original GitHub issue: https://github.com/hwdsl2/docker-ipsec-vpn-server/issues/350 **任务列表** - [x] 我已阅读 [自述文件](https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/README-zh.md) - [x] 我已阅读 [重要提示](https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/README-zh.md#重要提示) - [x] 我已按照说明 [配置 VPN 客户端](https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/README-zh.md#下一步) - [x] 我检查了 [IKEv1 故障排除](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-zh.md#ikev1-故障排除),[IKEv2 故障排除](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto-zh.md#ikev2-故障排除),[启用日志](https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/docs/advanced-usage-zh.md#启用-libreswan-日志) 并查看了 [VPN 状态](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-zh.md#检查日志及-vpn-状态) - [x] 我搜索了已有的 [Issues](https://github.com/hwdsl2/docker-ipsec-vpn-server/issues?q=is%3Aissue) - [x] 这个 bug 是关于 IPsec VPN 服务器 Docker 镜像,而不是 IPsec VPN 本身 <!--- 如果你发现了 IPsec VPN 的一个可重复的程序漏洞,请在 https://github.com/libreswan/libreswan 提交一个错误报告。VPN 的相关问题可在 [Libreswan](https://lists.libreswan.org/mailman/listinfo/swan) 或 [strongSwan](https://lists.strongswan.org/mailman/listinfo/users) 用户邮件列表提问,或者搜索比如 [Stack Overflow](https://stackoverflow.com/questions/tagged/vpn) 等网站。 ---> **问题描述** 使用清楚简明的语言描述这个 bug。 您好,首先非常感谢您提供的这个docker镜像,我使用的是debian的镜像版本。在实际使用中我发现例子中的VPN_ADDL_USERS=user1 user2,无效 **重现步骤** 重现该 bug 的步骤: 1. 在env文件内加入VPN_ADDL_USERS=user1 user2 ,VPN_ADDL_PASSWORDS=pass1 pass2 2. 重启DOCKER docker restart ipsec-vpn-server 3. 进入容器 docker exec -it ipsec-vpn-server env TERM=xterm bash -l 4. cat /etc/ppp/chap-secrets 5. VPN_ADDL_USERS里面的账号均未添加到chap-secrets 6. 额外账户无法登录 **期待的正确结果** 简要地描述你期望的正确结果。 **日志** [启用日志](https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/docs/advanced-usage-zh.md#启用-libreswan-日志),检查 [VPN 状态](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-zh.md#检查日志及-vpn-状态),并且添加错误日志以帮助解释该问题(如果适用)。 **服务器信息(请填写以下信息)** - Docker 主机操作系统: Debian11 **客户端信息(请填写以下信息)** - 设备: PC - 操作系统: Win10 - VPN 模式: IPsec/L2TP **其它信息** 由于额外账户一直未能如愿的添加到chap-secrets内,我便进入run.sh脚本,使用echo输出了原始变量值,发现VPN_ADDL_USERS、VPN_ADDL_PASSWORDS、VPN_ADDL_IP_ADDRS均显示空白,而其余变量字符串可以正常显示。我怀疑是不是因为分割字符为Space的问题,于是我将space换成了',',再次echo,能够正常输出字符串了,随后我将脚本内涉及到VPN_ADDL_X 相关的cut部分的space全部换成了',',重新启动容器后,chap-secrets内正常添加了额外的账户、密码以及分配的静态IP,至此额外账号添加成功。 before:使用space VPN_ADDL_USERS=user1 user2 VPN_ADDL_PASSWORDS=pass1 pass2 echo printf 'vpn_addl_users' "$VPN_ADDL_USERS" echo printf 'vpn_addl_passwords' "$VPN_ADDL_PASSWORDS" 输出 vpn_addl_users vpn_addl_passwords after:使用逗号 VPN_ADDL_USERS=user1,user2 VPN_ADDL_PASSWORDS=pass1,pass2 echo printf 'vpn_addl_users' "$VPN_ADDL_USERS" echo printf 'vpn_addl_passwords' "$VPN_ADDL_PASSWORDS" 输出 vpn_addl_users user1,user2 vpn_addl_passwords pass1,pass2
kerem closed this issue 2026-03-02 08:01:22 +03:00
Author
Owner

@hwdsl2 commented on GitHub (Feb 19, 2023):

@mtazrael 你好!首先感谢你的反馈。关于你所说的额外账户添加无效的问题:我测试了该用例,没有发现问题。在修改 env 文件(比如添加额外账户)之后,必须重新创建 Docker 容器才能生效,而不是重新启动 Docker 容器。要重新创建容器,首先在纸上记下你所有的 VPN 登录信息。然后删除 Docker 容器:docker rm -f ipsec-vpn-server。最后按照 如何使用本镜像 的说明来重新创建它。

作为 --env-file 选项的替代方案,高级用户可以 绑定挂载 env 文件。该方法的好处是你在更新 env 文件之后可以重启 Docker 容器以生效,而不需要重新创建它。

<!-- gh-comment-id:1436037496 --> @hwdsl2 commented on GitHub (Feb 19, 2023): @mtazrael 你好!首先感谢你的反馈。关于你所说的额外账户添加无效的问题:我测试了该用例,没有发现问题。在修改 env 文件(比如添加额外账户)之后,必须重新创建 Docker 容器才能生效,而不是重新启动 Docker 容器。要重新创建容器,首先在纸上记下你所有的 [VPN 登录信息](https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/README-zh.md#%E8%8E%B7%E5%8F%96-vpn-%E7%99%BB%E5%BD%95%E4%BF%A1%E6%81%AF)。然后删除 Docker 容器:`docker rm -f ipsec-vpn-server`。最后按照 [如何使用本镜像](https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/README-zh.md#%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E6%9C%AC%E9%95%9C%E5%83%8F) 的说明来重新创建它。 作为 --env-file 选项的替代方案,高级用户可以 [绑定挂载 env 文件](https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/docs/advanced-usage-zh.md#%E7%BB%91%E5%AE%9A%E6%8C%82%E8%BD%BD-env-%E6%96%87%E4%BB%B6)。该方法的好处是你在更新 env 文件之后可以重启 Docker 容器以生效,而不需要重新创建它。
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/docker-ipsec-vpn-server#324
No description provided.