请教应该如何实现docker bridge网络pptp的nat穿透

发布于 2022-09-11 21:09:14 字数 1308 浏览 18 评论 0

容器镜像为centos:7.5.1804,网络为默认bridge

可以排除是GFW问题,是外网机器连接外网pptp

宿主机是能够正常连接pptp的

如果容器使用docker配置network指定host可以正常连接pptp没有问题,但是bridge模式有问题。

bridge环境下的错误情况

pptpd错误日志

Jul 17 07:29:54 pptp-us82 pppd[14349]: Plugin /usr/lib64/pptpd/pptpd-logwtmp.so loaded.
Jul 17 07:29:54 pptp-us82 pppd[14349]: pptpd-logwtmp: $Version$
Jul 17 07:29:54 pptp-us82 pppd[14349]: pppd 2.4.5 started by root, uid 0
Jul 17 07:29:54 pptp-us82 pppd[14349]: Using interface ppp0
Jul 17 07:29:54 pptp-us82 pppd[14349]: Connect: ppp0 <--> /dev/pts/0
Jul 17 07:29:54 pptp-us82 pptpd[14348]: GRE: read(fd=7,buffer=562107a5a3e0,len=8260) from network failed: status = -1 error = Protocol not available
Jul 17 07:29:54 pptp-us82 pptpd[14348]: CTRL: GRE read or PTY write failed (gre,pty)=(7,6)
Jul 17 07:29:54 pptp-us82 pppd[14349]: Modem hangup
Jul 17 07:29:54 pptp-us82 pppd[14349]: Connection terminated.
Jul 17 07:29:54 pptp-us82 pppd[14349]: Exit.

而且如果重启pptpd服务,在容器内可以连接上pptp一小段时间,但很快又会自动断开,再次连接就连接不上了。

个人的抓包分析

clipboard.png

显示应该是PPP LCP 协商pptpd响应包无法抵达pptp客户端

网上查询了部分博客资料PPTP穿透NAT分析

我自己感觉是docker默认的iptables配置问题,导致gre协议无法正确抵达容器内客户端,但是自己本身对iptables不太了解,所以想请教一下。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文