[GH-ISSUE #490] env定义参数格式 #458

Closed
opened 2026-03-02 08:19:04 +03:00 by kerem · 8 comments
Owner

Originally created by @lexin8 on GitHub (Dec 10, 2025).
Original GitHub issue: https://github.com/hwdsl2/docker-ipsec-vpn-server/issues/490

VPN_IPSEC_PSK=your_ipsec_pre_shared_key
VPN_USER=your_vpn_username
VPN_PASSWORD=your_vpn_password

VPN_ADDL_USERS=additional_username_1 additional_username_2
VPN_ADDL_PASSWORDS=additional_password_1 additional_password_2

这两段的定义都不一致,添加多个用户是什么格式?
支持新的IOS里的IKEv2?跟安卓参数不同,ios是需要填远程ID,这个env 里并没有吧

//////////////////////////////////////////////////////////////////////////////////
避坑说明,
第一:添加用户格式,原格式带有引号'' 按照引号''格式添加,并不是文档说明那样注: 在你的 env 文件中,不要为变量值添加 "" 或者 '',或在 = 两边添加空格。不要在值中使用这些字符: \ " '。
第二:ikev2不管是IOS或者 Android 内置客户端配置都需要导入描述文件或者证书 Android 是IKEv2/IPSec RSA,不支持IKEv2/IPsec MSCHAPv2 psk好像也不支持

Originally created by @lexin8 on GitHub (Dec 10, 2025). Original GitHub issue: https://github.com/hwdsl2/docker-ipsec-vpn-server/issues/490 VPN_IPSEC_PSK=your_ipsec_pre_shared_key VPN_USER=your_vpn_username VPN_PASSWORD=your_vpn_password VPN_ADDL_USERS=additional_username_1 additional_username_2 VPN_ADDL_PASSWORDS=additional_password_1 additional_password_2 这两段的定义都不一致,添加多个用户是什么格式? 支持新的IOS里的IKEv2?跟安卓参数不同,ios是需要填远程ID,这个env 里并没有吧 ////////////////////////////////////////////////////////////////////////////////// 避坑说明, 第一:添加用户格式,原格式带有引号'' 按照引号''格式添加,并不是文档说明那样`注: 在你的 env 文件中,不要为变量值添加 "" 或者 '',或在 = 两边添加空格。不要在值中使用这些字符: \ " '。` 第二:ikev2不管是IOS或者 Android 内置客户端配置都需要导入描述文件或者证书 Android 是IKEv2/IPSec RSA,不支持IKEv2/IPsec MSCHAPv2 psk好像也不支持
kerem closed this issue 2026-03-02 08:19:04 +03:00
Author
Owner

@hwdsl2 commented on GitHub (Dec 10, 2025):

@lexin8 你好!对于 IKEv2,你可以使用命令(而不是 env 文件)管理多个用户证书,请参见:

https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/README-zh.md#%E9%85%8D%E7%BD%AE%E5%B9%B6%E4%BD%BF%E7%94%A8-ikev2-vpn

IKEv2使用mobileconfig配置文件,不需要手动填写远程ID。你所说的部分是适用于IPsec/L2TP和Cisco IPsec模式:

https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/README-zh.md#%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F

<!-- gh-comment-id:3637207140 --> @hwdsl2 commented on GitHub (Dec 10, 2025): @lexin8 你好!对于 IKEv2,你可以使用命令(而不是 env 文件)管理多个用户证书,请参见: https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/README-zh.md#%E9%85%8D%E7%BD%AE%E5%B9%B6%E4%BD%BF%E7%94%A8-ikev2-vpn IKEv2使用mobileconfig配置文件,不需要手动填写远程ID。你所说的部分是适用于IPsec/L2TP和Cisco IPsec模式: https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/README-zh.md#%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F
Author
Owner

@lexin8 commented on GitHub (Dec 10, 2025):

IPsec/L2TP和Cisco IPsec模式

VPN_IPSEC_PSK='jsisSp3tF2eYYrUDcaUt'
VPN_USER='vpnuser'
VPN_PASSWORD='RuZ2Z4ciyGJz536i'


VPN_IPSEC_PSK=your_ipsec_pre_shared_key
VPN_USER=your_vpn_username
VPN_PASSWORD=your_vpn_password

VPN_ADDL_USERS=additional_username_1 additional_username_2
VPN_ADDL_PASSWORDS=additional_password_1 additional_password_2

这三段都不是同样的格式,示例也不对吧,系统默认生成的带有''

注: 在你的 env 文件中,不要为变量值添加 "" 或者 '',或在 = 两边添加空格。不要在值中使用这些字符: \ " '。一个安全的 IPsec PSK 应该至少包含 20 个随机字符。

然后突然来一个VPN_ADDL_USERS VPN_PASSWORD

并且https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/vpn.env.example里的例子也是等于没说

# Define IPsec PSK, VPN username and password
# - DO NOT put "" or '' around values, or add space around =
# - DO NOT use these special characters within values: \ " '
# VPN_IPSEC_PSK=your_ipsec_pre_shared_key
# VPN_USER=your_vpn_username
# VPN_PASSWORD=your_vpn_password

# Define additional VPN users
# - DO NOT put "" or '' around values, or add space around =
# - DO NOT use these special characters within values: \ " '
# - Usernames and passwords must be separated by spaces
# VPN_ADDL_USERS=additional_username_1 additional_username_2
# VPN_ADDL_PASSWORDS=additional_password_1 additional_password_2

我的理解是
VPN_USER='m1 m2 m3'
VPN_PASSWORD='pas1 pas2 pas3'
可并不对,把''去掉也不对,然后加
VPN_ADDL_USERS=m4 m5
VPN_ADDL_PASSWORDS=pas4 pas5
这样也不对,例子就没有说清楚到底是个什么格式

<!-- gh-comment-id:3637279943 --> @lexin8 commented on GitHub (Dec 10, 2025): IPsec/L2TP和Cisco IPsec模式 ``` VPN_IPSEC_PSK='jsisSp3tF2eYYrUDcaUt' VPN_USER='vpnuser' VPN_PASSWORD='RuZ2Z4ciyGJz536i' VPN_IPSEC_PSK=your_ipsec_pre_shared_key VPN_USER=your_vpn_username VPN_PASSWORD=your_vpn_password VPN_ADDL_USERS=additional_username_1 additional_username_2 VPN_ADDL_PASSWORDS=additional_password_1 additional_password_2 ``` 这三段都不是同样的格式,示例也不对吧,系统默认生成的带有'' 注: 在你的 env 文件中,不要为变量值添加 "" 或者 '',或在 = 两边添加空格。不要在值中使用这些字符: \ " '。一个安全的 IPsec PSK 应该至少包含 20 个随机字符。 然后突然来一个VPN_ADDL_USERS VPN_PASSWORD 并且[https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/vpn.env.example](url)里的例子也是等于没说 ``` # Define IPsec PSK, VPN username and password # - DO NOT put "" or '' around values, or add space around = # - DO NOT use these special characters within values: \ " ' # VPN_IPSEC_PSK=your_ipsec_pre_shared_key # VPN_USER=your_vpn_username # VPN_PASSWORD=your_vpn_password # Define additional VPN users # - DO NOT put "" or '' around values, or add space around = # - DO NOT use these special characters within values: \ " ' # - Usernames and passwords must be separated by spaces # VPN_ADDL_USERS=additional_username_1 additional_username_2 # VPN_ADDL_PASSWORDS=additional_password_1 additional_password_2 ``` 我的理解是 VPN_USER='m1 m2 m3' VPN_PASSWORD='pas1 pas2 pas3' 可并不对,把''去掉也不对,然后加 VPN_ADDL_USERS=m4 m5 VPN_ADDL_PASSWORDS=pas4 pas5 这样也不对,例子就没有说清楚到底是个什么格式
Author
Owner

@hwdsl2 commented on GitHub (Dec 10, 2025):

@lexin8 在使用 --env-file 选项的时候,文件中的变量值不需要加引号。加引号会导致 Docker 读取的变量值包含引号。不过脚本中有对变量检测并移除引号,所以加上也不一定导致问题。

对于 VPN_USER 和 VPN_PASSWORD 变量,它们只定义一个 VPN 用户。所以你可以把例子中的 m1 放进去。其他的用户放在 VPN_ADDL_USERS 和 VPN_ADDL_PASSWORDS。

<!-- gh-comment-id:3637400529 --> @hwdsl2 commented on GitHub (Dec 10, 2025): @lexin8 在使用 --env-file 选项的时候,文件中的变量值不需要加引号。加引号会导致 Docker 读取的变量值包含引号。不过脚本中有对变量检测并移除引号,所以加上也不一定导致问题。 对于 VPN_USER 和 VPN_PASSWORD 变量,它们只定义一个 VPN 用户。所以你可以把例子中的 m1 放进去。其他的用户放在 VPN_ADDL_USERS 和 VPN_ADDL_PASSWORDS。
Author
Owner

@lexin8 commented on GitHub (Dec 10, 2025):

IKEv2:
看了下使用方法,IOS需要导入描述文件,Android需要下载客户端。也只是说IKEv2不支持原生配置。如果需要导入描述文件或者需要下载客户端这种方式,个人觉得openvpn或者更好。

<!-- gh-comment-id:3637415380 --> @lexin8 commented on GitHub (Dec 10, 2025): IKEv2: 看了下使用方法,IOS需要导入描述文件,Android需要下载客户端。也只是说IKEv2不支持原生配置。如果需要导入描述文件或者需要下载客户端这种方式,个人觉得openvpn或者更好。
Author
Owner

@lexin8 commented on GitHub (Dec 10, 2025):

@lexin8 在使用 --env-file 选项的时候,文件中的变量值不需要加引号。加引号会导致 Docker 读取的变量值包含引号。不过脚本中有对变量检测并移除引号,所以加上也不一定导致问题。

对于 VPN_USER 和 VPN_PASSWORD 变量,它们只定义一个 VPN 用户。所以你可以把例子中的 m1 放进去。其他的用户放在 VPN_ADDL_USERS 和 VPN_ADDL_PASSWORDS。

没有--env-file 选项

docker run
--name ipsec-vpn-server
--restart=always
-v ikev2-vpn-data:/etc/ipsec.d
-v /lib/modules:/lib/modules:ro
-p 500:500/udp
-p 4500:4500/udp
-d --privileged
hwdsl2/ipsec-vpn-server
原代码套进去默认就是这样

<!-- gh-comment-id:3637439087 --> @lexin8 commented on GitHub (Dec 10, 2025): > [@lexin8](https://github.com/lexin8) 在使用 --env-file 选项的时候,文件中的变量值不需要加引号。加引号会导致 Docker 读取的变量值包含引号。不过脚本中有对变量检测并移除引号,所以加上也不一定导致问题。 > > 对于 VPN_USER 和 VPN_PASSWORD 变量,它们只定义一个 VPN 用户。所以你可以把例子中的 m1 放进去。其他的用户放在 VPN_ADDL_USERS 和 VPN_ADDL_PASSWORDS。 没有--env-file 选项 docker run \ --name ipsec-vpn-server \ --restart=always \ -v ikev2-vpn-data:/etc/ipsec.d \ -v /lib/modules:/lib/modules:ro \ -p 500:500/udp \ -p 4500:4500/udp \ -d --privileged \ hwdsl2/ipsec-vpn-server 原代码套进去默认就是这样
Author
Owner

@hwdsl2 commented on GitHub (Dec 10, 2025):

@lexin8 参见这里。IKEv2 可以使用 Android 内置客户端配置,具体参见项目文档。

<!-- gh-comment-id:3637463832 --> @hwdsl2 commented on GitHub (Dec 10, 2025): @lexin8 参见[这里](https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/README-zh.md#%E8%BF%90%E8%A1%8C-ipsec-vpn-%E6%9C%8D%E5%8A%A1%E5%99%A8)。IKEv2 可以使用 Android 内置客户端配置,具体参见项目文档。
Author
Owner

@lexin8 commented on GitHub (Dec 10, 2025):

@lexin8 参见这里。IKEv2 可以使用 Android 内置客户端配置,具体参见项目文档。

Android 内置客户端配置需要填IPsec标识符。docker logs ipsec-vpn-server里面并没有只有
VPN server address: IP
VPN client name: vpnclient

<!-- gh-comment-id:3637533801 --> @lexin8 commented on GitHub (Dec 10, 2025): > [@lexin8](https://github.com/lexin8) 参见[这里](https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/README-zh.md#%E8%BF%90%E8%A1%8C-ipsec-vpn-%E6%9C%8D%E5%8A%A1%E5%99%A8)。IKEv2 可以使用 Android 内置客户端配置,具体参见项目文档。 Android 内置客户端配置需要填IPsec标识符。docker logs ipsec-vpn-server里面并没有只有 VPN server address: IP VPN client name: vpnclient
Author
Owner

@hwdsl2 commented on GitHub (Dec 10, 2025):

@lexin8 对于该用例,IPsec 标识符填任意内容即可。参见这里

<!-- gh-comment-id:3637581654 --> @hwdsl2 commented on GitHub (Dec 10, 2025): @lexin8 对于该用例,IPsec 标识符填任意内容即可。参见[这里](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto-zh.md#android)。
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#458
No description provided.