请教应该如何实现docker bridge网络pptp的nat穿透
容器镜像为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一小段时间,但很快又会自动断开,再次连接就连接不上了。
个人的抓包分析
显示应该是PPP LCP 协商pptpd响应包无法抵达pptp客户端
网上查询了部分博客资料PPTP穿透NAT分析
我自己感觉是docker默认的iptables配置问题,导致gre协议无法正确抵达容器内客户端,但是自己本身对iptables不太了解,所以想请教一下。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论