[GH-ISSUE #370] 安卓13自带客户端连接成功,连网失败 #342

Closed
opened 2026-03-02 08:01:30 +03:00 by kerem · 16 comments
Owner

Originally created by @z499738316 on GitHub (Apr 23, 2023).
Original GitHub issue: https://github.com/hwdsl2/docker-ipsec-vpn-server/issues/370

您好,我在openwrt的docker里安装了您的vpn,在使用安卓13自带的vpn客户端时,显示已经连接,并且在docker中也显示了连接,地址为192.168.43.10,但是就是不能访问互联网,我进入docker 并且ping了几个网站都是正常的,dns也改用了本地的dns并用nslookup测试都没有问题, 但就是能连接无法连网,用的ikev2 rsa模式

Originally created by @z499738316 on GitHub (Apr 23, 2023). Original GitHub issue: https://github.com/hwdsl2/docker-ipsec-vpn-server/issues/370 您好,我在openwrt的docker里安装了您的vpn,在使用安卓13自带的vpn客户端时,显示已经连接,并且在docker中也显示了连接,地址为192.168.43.10,但是就是不能访问互联网,我进入docker 并且ping了几个网站都是正常的,dns也改用了本地的dns并用nslookup测试都没有问题, 但就是能连接无法连网,用的ikev2 rsa模式
kerem closed this issue 2026-03-02 08:01:30 +03:00
Author
Owner

@z499738316 commented on GitHub (Apr 23, 2023):

Screenshot_2023-04-23-15-03-49-829_com android se
image
image
image

<!-- gh-comment-id:1518971897 --> @z499738316 commented on GitHub (Apr 23, 2023): ![Screenshot_2023-04-23-15-03-49-829_com android se](https://user-images.githubusercontent.com/37020005/233825116-c008ad6c-484b-4688-9abe-85bf0f8474b0.jpg) ![image](https://user-images.githubusercontent.com/37020005/233825146-5f65700a-3cd9-4a7b-9fe6-386ce972a638.png) ![image](https://user-images.githubusercontent.com/37020005/233825162-b797ad07-fe3d-458a-9f75-0a32fb710a42.png) ![image](https://user-images.githubusercontent.com/37020005/233825181-26dc4c76-0db0-464c-9569-58b129cd461a.png)
Author
Owner

@z499738316 commented on GitHub (Apr 23, 2023):

image

<!-- gh-comment-id:1518974453 --> @z499738316 commented on GitHub (Apr 23, 2023): ![image](https://user-images.githubusercontent.com/37020005/233825254-d62bcd29-a468-4689-b859-0ec68e4336cb.png)
Author
Owner

@hwdsl2 commented on GitHub (Apr 23, 2023):

@a499738316 你好!请启用 Libreswan 日志,重新连接 VPN 客户端,然后检查日志是否有错误。

你可以尝试在连接 VPN 后访问 https://1.1.1.1,如果可以访问,可能是 DNS 的问题。测试 DNS 的话,应该在你的安卓设备上进行(在连接 VPN 后)。要为 VPN 指定其他的 DNS 服务器,请参见如何使用本镜像。你需要重新创建 Docker 容器以使对 env 文件的更改生效。

如果你有更多信息可以继续在这里回复。

<!-- gh-comment-id:1519078979 --> @hwdsl2 commented on GitHub (Apr 23, 2023): @a499738316 你好!请[启用 Libreswan 日志](https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/docs/advanced-usage-zh.md#%E5%90%AF%E7%94%A8-libreswan-%E6%97%A5%E5%BF%97),重新连接 VPN 客户端,然后检查日志是否有错误。 你可以尝试在连接 VPN 后访问 [https://1.1.1.1](https://1.1.1.1),如果可以访问,可能是 DNS 的问题。测试 DNS 的话,应该在你的安卓设备上进行(在连接 VPN 后)。要为 VPN 指定其他的 DNS 服务器,请参见[如何使用本镜像](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)。你需要重新创建 Docker 容器以使对 env 文件的更改生效。 如果你有更多信息可以继续在这里回复。
Author
Owner

@z499738316 commented on GitHub (Apr 23, 2023):

你好!请启用 Libreswan 日志,重新连接 VPN 客户端,然后检查日志是否有错误。

你可以尝试在连接 VPN 后访问 https://1.1.1.1,如果可以访问,可能是 DNS 的问题。测试 DNS 的话,应该在你的安卓设备上进行(在连接 VPN 后)。要为 VPN 指定其他的 DNS 服务器,请参见如何使用本镜像。你需要重新创建 Docker 容器以使对 env 文件的更改生效。

如果你有更多信息可以继续在这里回复。

根本就不是dns的问题

<!-- gh-comment-id:1519141159 --> @z499738316 commented on GitHub (Apr 23, 2023): > 你好!请[启用 Libreswan](https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/docs/advanced-usage-zh.md#%E5%90%AF%E7%94%A8-libreswan-%E6%97%A5%E5%BF%97) 日志,重新连接 VPN 客户端,然后检查日志是否有错误。 > > 你可以尝试在连接 VPN 后访问 https://1.1.1.1,如果可以访问,可能是 DNS 的问题。测试 DNS 的话,应该在你的安卓设备上进行(在连接 VPN 后)。要为 VPN 指定其他的 DNS 服务器,请参见[如何使用本镜像](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)。你需要重新创建 Docker 容器以使对 env 文件的更改生效。 > > 如果你有更多信息可以继续在这里回复。 根本就不是dns的问题
Author
Owner

@hwdsl2 commented on GitHub (Apr 24, 2023):

@a499738316 不一定是 DNS 的问题 - 如果你有更多信息,比如 Libreswan 日志中的相关错误,请在这里回复。

另外一个可能是 Docker 容器中的 IPTables 规则不正确。要检查 IPTables 规则,请在容器中运行:

iptables -nvL; iptables -nvL -t nat
<!-- gh-comment-id:1519360526 --> @hwdsl2 commented on GitHub (Apr 24, 2023): @a499738316 不一定是 DNS 的问题 - 如果你有更多信息,比如 Libreswan 日志中的相关错误,请在这里回复。 另外一个可能是 Docker 容器中的 IPTables 规则不正确。要检查 IPTables 规则,请在容器中运行: ``` iptables -nvL; iptables -nvL -t nat ```
Author
Owner

@z499738316 commented on GitHub (Apr 24, 2023):

@a499738316 不一定是 DNS 的问题 - 如果你有更多信息,比如 Libreswan 日志中的相关错误,请在这里回复。

另外一个可能是 Docker 容器中的 IPTables 规则不正确。要检查 IPTables 规则,请在容器中运行:

iptables -nvL; iptables -nvL -t nat

auth.log
这个是我的日志

<!-- gh-comment-id:1519375350 --> @z499738316 commented on GitHub (Apr 24, 2023): > @a499738316 不一定是 DNS 的问题 - 如果你有更多信息,比如 Libreswan 日志中的相关错误,请在这里回复。 > > 另外一个可能是 Docker 容器中的 IPTables 规则不正确。要检查 IPTables 规则,请在容器中运行: > > ``` > iptables -nvL; iptables -nvL -t nat > ``` [auth.log](https://github.com/hwdsl2/docker-ipsec-vpn-server/files/11306631/auth.log) 这个是我的日志
Author
Owner

@hwdsl2 commented on GitHub (Apr 24, 2023):

@a499738316 你提供的日志中没有完整的客户端连接记录,请重新尝试连接 VPN 客户端,尝试重现此问题,然后附上新的日志(可以去掉如 IP 地址和客户端名称等信息)。

另外你可以参考一下这些 Openwrt 相关的 Issue:
https://github.com/hwdsl2/docker-ipsec-vpn-server/issues?q=is%3Aissue+openwrt

<!-- gh-comment-id:1519385576 --> @hwdsl2 commented on GitHub (Apr 24, 2023): @a499738316 你提供的日志中没有完整的客户端连接记录,请重新尝试连接 VPN 客户端,尝试重现此问题,然后附上新的日志(可以去掉如 IP 地址和客户端名称等信息)。 另外你可以参考一下这些 Openwrt 相关的 Issue: https://github.com/hwdsl2/docker-ipsec-vpn-server/issues?q=is%3Aissue+openwrt
Author
Owner

@z499738316 commented on GitHub (Apr 24, 2023):

@a499738316 你提供的日志中没有完整的客户端连接记录,请重新尝试连接 VPN 客户端,尝试重现此问题,然后附上新的日志(可以去掉如 IP 地址和客户端名称等信息)。

另外你可以参考一下这些 Openwrt 相关的 Issue: https://github.com/hwdsl2/docker-ipsec-vpn-server/issues?q=is%3Aissue+openwrt

auth.log
这是新的日志

<!-- gh-comment-id:1519395497 --> @z499738316 commented on GitHub (Apr 24, 2023): > @a499738316 你提供的日志中没有完整的客户端连接记录,请重新尝试连接 VPN 客户端,尝试重现此问题,然后附上新的日志(可以去掉如 IP 地址和客户端名称等信息)。 > > 另外你可以参考一下这些 Openwrt 相关的 Issue: https://github.com/hwdsl2/docker-ipsec-vpn-server/issues?q=is%3Aissue+openwrt [auth.log](https://github.com/hwdsl2/docker-ipsec-vpn-server/files/11306765/auth.log) 这是新的日志
Author
Owner

@hwdsl2 commented on GitHub (Apr 24, 2023):

@a499738316 你的新日志显示 IKEv2 连接成功建立。但是连接好像遇到了网络问题。有可能是 Docker 容器中的 IPTables 规则不正确。要检查 IPTables 规则,请在容器内运行:
iptables -nvL; iptables -nvL -t nat

另外看一下容器内的网络路由信息:
ip route show

<!-- gh-comment-id:1519410759 --> @hwdsl2 commented on GitHub (Apr 24, 2023): @a499738316 你的新日志显示 IKEv2 连接成功建立。但是连接好像遇到了网络问题。有可能是 Docker 容器中的 IPTables 规则不正确。要检查 IPTables 规则,请在容器内运行: iptables -nvL; iptables -nvL -t nat 另外看一下容器内的网络路由信息: ip route show
Author
Owner

@z499738316 commented on GitHub (Apr 24, 2023):

@a499738316 你的新日志显示 IKEv2 连接成功建立。但是连接好像遇到了网络问题。有可能是 Docker 容器中的 IPTables 规则不正确。要检查 IPTables 规则,请在容器内运行: iptables -nvL; iptables -nvL -t nat

另外看一下容器内的网络路由信息: ip route show

image
image
谢谢 请帮忙看一下网络

<!-- gh-comment-id:1519414632 --> @z499738316 commented on GitHub (Apr 24, 2023): > @a499738316 你的新日志显示 IKEv2 连接成功建立。但是连接好像遇到了网络问题。有可能是 Docker 容器中的 IPTables 规则不正确。要检查 IPTables 规则,请在容器内运行: iptables -nvL; iptables -nvL -t nat > > 另外看一下容器内的网络路由信息: ip route show ![image](https://user-images.githubusercontent.com/37020005/233909034-f9de5c38-3d8d-4718-b795-5cb388fea55d.png) ![image](https://user-images.githubusercontent.com/37020005/233909097-2e06ac6e-70db-47f8-b980-34ea96b554da.png) 谢谢 请帮忙看一下网络
Author
Owner

@hwdsl2 commented on GitHub (Apr 24, 2023):

@a499738316 IPTables 规则中的 Chain POSTROUTING 应该还有一行,不知道是不是你的截图遗漏了一行。另外Chain INPUT应该有几条规则。你之前编辑过run.sh中的 IPTables 规则吗?

你可以尝试在容器内运行:
iptables -t nat -I POSTROUTING -s 192.168.43.0/24 -o eth0 -m policy --dir out --pol none -j MASQUERADE

然后重新连接客户端。如果问题解决,你可以重新创建 Docker 容器以还原对 run.sh 中的规则的更改。

<!-- gh-comment-id:1519420773 --> @hwdsl2 commented on GitHub (Apr 24, 2023): @a499738316 IPTables 规则中的 Chain POSTROUTING 应该还有一行,不知道是不是你的截图遗漏了一行。另外Chain INPUT应该有几条规则。你之前编辑过run.sh中的 IPTables 规则吗? 你可以尝试在容器内运行: iptables -t nat -I POSTROUTING -s 192.168.43.0/24 -o eth0 -m policy --dir out --pol none -j MASQUERADE 然后重新连接客户端。如果问题解决,你可以重新创建 Docker 容器以还原对 run.sh 中的规则的更改。
Author
Owner

@z499738316 commented on GitHub (Apr 24, 2023):

@a499738316 IPTables 规则中的 Chain POSTROUTING 应该还有一行,不知道是不是你的截图遗漏了一行。另外Chain INPUT应该有几条规则。你之前编辑过run.sh中的 IPTables 规则吗?

你可以尝试在容器内运行: iptables -t nat -I POSTROUTING -s 192.168.43.0/24 -o eth0 -m policy --dir out --pol none -j MASQUERADE

然后重新连接客户端。如果问题解决,你可以重新创建 Docker 容器以还原对 run.sh 中的规则的更改。
没有编辑过run.sh 上面的截图就是全部
运行您给的命令报错了
image

<!-- gh-comment-id:1519438255 --> @z499738316 commented on GitHub (Apr 24, 2023): > @a499738316 IPTables 规则中的 Chain POSTROUTING 应该还有一行,不知道是不是你的截图遗漏了一行。另外Chain INPUT应该有几条规则。你之前编辑过run.sh中的 IPTables 规则吗? > > 你可以尝试在容器内运行: iptables -t nat -I POSTROUTING -s 192.168.43.0/24 -o eth0 -m policy --dir out --pol none -j MASQUERADE > > 然后重新连接客户端。如果问题解决,你可以重新创建 Docker 容器以还原对 run.sh 中的规则的更改。 没有编辑过run.sh 上面的截图就是全部 运行您给的命令报错了 ![image](https://user-images.githubusercontent.com/37020005/233912602-e7c7fd97-c398-4c81-92a8-f7986077e18d.png)
Author
Owner

@hwdsl2 commented on GitHub (Apr 24, 2023):

@a499738316 看来Openwrt的Linux内核默认未加载 IPTables policy extension。请尝试运行:

iptables -t nat -I POSTROUTING -s 192.168.43.0/24 ! -d 192.168.43.0/24 -o eth0 -j MASQUERADE

<!-- gh-comment-id:1519453123 --> @hwdsl2 commented on GitHub (Apr 24, 2023): @a499738316 看来Openwrt的Linux内核默认未加载 IPTables policy extension。请尝试运行: iptables -t nat -I POSTROUTING -s 192.168.43.0/24 ! -d 192.168.43.0/24 -o eth0 -j MASQUERADE
Author
Owner

@z499738316 commented on GitHub (Apr 24, 2023):

iptables -t nat -I POSTROUTING -s 192.168.43.0/24 ! -d 192.168.43.0/24 -o eth0 -j MASQUERADE

运行这行命令就没有问题了 请问我接下来该怎么做 谢谢!!!!!!!!!!

<!-- gh-comment-id:1519455477 --> @z499738316 commented on GitHub (Apr 24, 2023): > iptables -t nat -I POSTROUTING -s 192.168.43.0/24 ! -d 192.168.43.0/24 -o eth0 -j MASQUERADE 运行这行命令就没有问题了 请问我接下来该怎么做 谢谢!!!!!!!!!!
Author
Owner

@hwdsl2 commented on GitHub (Apr 24, 2023):

@a499738316 你只需编辑容器内的 /opt/src/run.sh, 找到以下部分

-m policy --dir out --pol none -j MASQUERADE

将它替换为

! -d 192.168.43.0/24 -j MASQUERADE

就可以了。

如果重新创建容器,需要再次编辑此文件。

<!-- gh-comment-id:1519460265 --> @hwdsl2 commented on GitHub (Apr 24, 2023): @a499738316 你只需编辑容器内的 /opt/src/run.sh, 找到以下部分 -m policy --dir out --pol none -j MASQUERADE 将它替换为 ! -d 192.168.43.0/24 -j MASQUERADE 就可以了。 如果重新创建容器,需要再次编辑此文件。
Author
Owner

@z499738316 commented on GitHub (Apr 24, 2023):

@a499738316 你只需编辑容器内的 /opt/src/run.sh, 找到以下部分

-m policy --dir out --pol none -j MASQUERADE

将它替换为

! -d 192.168.43.0/24 -j MASQUERADE

就可以了。

如果重新创建容器,需要再次编辑此文件。

非常的感谢您的帮助 问题已经解决了

<!-- gh-comment-id:1519467490 --> @z499738316 commented on GitHub (Apr 24, 2023): > @a499738316 你只需编辑容器内的 /opt/src/run.sh, 找到以下部分 > > -m policy --dir out --pol none -j MASQUERADE > > 将它替换为 > > ! -d 192.168.43.0/24 -j MASQUERADE > > 就可以了。 > > 如果重新创建容器,需要再次编辑此文件。 非常的感谢您的帮助 问题已经解决了
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#342
No description provided.