[GH-ISSUE #220] 最新版本报 stderr: Error: Cannot detect this server's public IP 的问题 #205

Closed
opened 2026-03-02 07:44:45 +03:00 by kerem · 1 comment
Owner

Originally created by @hedahong on GitHub (Jan 7, 2021).
Original GitHub issue: https://github.com/hwdsl2/docker-ipsec-vpn-server/issues/220

问题描述
无法启动,报如下个错误。以前的版本是好的(我另一台机器是2020-10月左右拉取的镜像就没有问题,这台机器我想验证一下我的结论,但拉取不到之前的镜像了,俩机器配置和部署过程一样的,就是镜像版本不一样)

另外还发现一个现象:
最新有问题的版本,如果 网络不指定 “bridge|bridge|192.168.200.1/24”,而指定host,容器可以启动,但是否会有其它问题还没验证。

stdout:
stdout: VPN credentials not set by user. Generating random PSK and password...
stdout:
stdout: Trying to auto discover IP of this server...
stderr: Error: Cannot detect this server's public IP. Define it in your 'env' file as 'VPN_PUBLIC_IP'.
stdout:
stdout: Retrieving previously generated VPN credentials...
stdout:
stdout: Trying to auto discover IP of this server...
stderr: Error: Cannot detect this server's public IP. Define it in your 'env' file as 'VPN_PUBLIC_IP'.

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

我在 openwrt(x84)最新版本中,vpn部署过程如下:

(一)修改docker0网段

#修改docker0 的172.12的网段为192.168.200.*
#备注:以前不改网段好像有问题,具体是什么原因要改网段我忘了。。。。
vim /etc/docker/daemon.json ,内容如下:
#-------------------------------------------------
{
"data-root": "/opt/docker",
"log-level": "warn",
"bip": "192.168.200.1/24"
}

(二)准备环境变量文件
vim /etc/docker-vpn.env,内容如下:
#-------------------------------------------------
VPN_IPSEC_PSK=testtestVPN
VPN_USER=test
VPN_PASSWORD=test

VPN_ADDL_USERS=test2 test3
VPN_ADDL_PASSWORDS=test test

(三)Docker部署,
cmd如下:
#-------------------------------------------------
docker run
--name ipsec-vpn-server
--env-file /etc/docker-vpn.env
--restart=always
-p 500:500/udp
-p 4500:4500/udp
-d --privileged
-v /etc/docker-vpn.env:/etc/docker-vpn.env
hwdsl2/ipsec-vpn-server

Originally created by @hedahong on GitHub (Jan 7, 2021). Original GitHub issue: https://github.com/hwdsl2/docker-ipsec-vpn-server/issues/220 **问题描述** 无法启动,报如下个错误。以前的版本是好的(我另一台机器是2020-10月左右拉取的镜像就没有问题,这台机器我想验证一下我的结论,但拉取不到之前的镜像了,俩机器配置和部署过程一样的,就是镜像版本不一样) 另外还发现一个现象: 最新有问题的版本,如果 网络不指定 “bridge|bridge|192.168.200.1/24”,而指定host,容器可以启动,但是否会有其它问题还没验证。 stdout: stdout: VPN credentials not set by user. Generating random PSK and password... stdout: stdout: Trying to auto discover IP of this server... stderr: Error: Cannot detect this server's public IP. Define it in your 'env' file as 'VPN_PUBLIC_IP'. stdout: stdout: Retrieving previously generated VPN credentials... stdout: stdout: Trying to auto discover IP of this server... stderr: Error: Cannot detect this server's public IP. Define it in your 'env' file as 'VPN_PUBLIC_IP'. **重现步骤** 重现该 bug 的步骤: 我在 openwrt(x84)最新版本中,vpn部署过程如下: ======================================== (一)修改docker0网段 #修改docker0 的172.12的网段为192.168.200.* #备注:以前不改网段好像有问题,具体是什么原因要改网段我忘了。。。。 vim /etc/docker/daemon.json ,内容如下: #------------------------------------------------- { "data-root": "/opt/docker", "log-level": "warn", "bip": "192.168.200.1/24" } (二)准备环境变量文件 vim /etc/docker-vpn.env,内容如下: #------------------------------------------------- VPN_IPSEC_PSK=testtestVPN VPN_USER=test VPN_PASSWORD=test VPN_ADDL_USERS=test2 test3 VPN_ADDL_PASSWORDS=test test (三)Docker部署, cmd如下: #------------------------------------------------- docker run \ --name ipsec-vpn-server \ --env-file /etc/docker-vpn.env \ --restart=always \ -p 500:500/udp \ -p 4500:4500/udp \ -d --privileged \ -v /etc/docker-vpn.env:/etc/docker-vpn.env \ hwdsl2/ipsec-vpn-server
kerem closed this issue 2026-03-02 07:44:45 +03:00
Author
Owner

@hwdsl2 commented on GitHub (Jan 7, 2021):

@hedahong 你好!这个镜像在检测 Public IP 方面最近并无改动。你可以看到最近的测试结果并没有问题 [1]。你的日志中的错误说明从 Docker 容器内部很可能无法访问因特网。请检查是不是比如 Docker 版本升级的问题,或者 Docker 网络配置需要更改。另外我记得 Docker custom network 好像默认不能访问因特网,需要配置。

如果你需要尝试之前的版本,可以自己从源代码编译 [2]。在编译前 git checkout 2bcef9d。如果你有新的信息,请继续在这里回复。

[1] https://github.com/hwdsl2/docker-ipsec-vpn-server/runs/1640618576?check_suite_focus=true
[2] https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/README-zh.md#%E4%BB%8E%E6%BA%90%E4%BB%A3%E7%A0%81%E6%9E%84%E5%BB%BA

<!-- gh-comment-id:756237326 --> @hwdsl2 commented on GitHub (Jan 7, 2021): @hedahong 你好!这个镜像在检测 Public IP 方面最近并无改动。你可以看到最近的测试结果并没有问题 [1]。你的日志中的错误说明从 Docker 容器内部很可能无法访问因特网。请检查是不是比如 Docker 版本升级的问题,或者 Docker 网络配置需要更改。另外我记得 Docker custom network 好像默认不能访问因特网,需要配置。 如果你需要尝试之前的版本,可以自己从源代码编译 [2]。在编译前 `git checkout 2bcef9d`。如果你有新的信息,请继续在这里回复。 [1] https://github.com/hwdsl2/docker-ipsec-vpn-server/runs/1640618576?check_suite_focus=true [2] https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/README-zh.md#%E4%BB%8E%E6%BA%90%E4%BB%A3%E7%A0%81%E6%9E%84%E5%BB%BA
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#205
No description provided.