给docker容器添加公网出口ip。为了大家一起来qb做种吧
叠个甲
请勿将代理用于非法用途,本文发布到公网的应用仅为国内访问测试使用
前言
最近阿里云卖轻量云2H0.5G,200M带宽只要30一个月,我也跟风买了一台国内的,用来做frp穿透内网服务。
但总所周知,frp是不可以将本地服务的ip也穿透成公网服务器ip的
打个比方,例如求生之路服务器
这里服务器通告的public ip x.x.254.127
是我的实际ip而非frp穿透后的公网ip113.44.159.11
ps: 这里故意漏ip了,欢迎大家来玩,connect 113.44.159.11
即可
而且不光是这种问题困扰我,还有使用qb frp穿透端口,甚至很多服务器应用都是靠出口公网ip自动映射的
于是昨晚硬刚了6个多小时解决了长期困扰的问题
解决方案
使用流量全局代理,然后再frp映射端口到服务器
这里借用别人的仓库docker-transparent-proxy
使用tun代理全局流量到socks服务器端口
假设宿主机ip为192.168.10.2
,宿主机socks端口为10810
本地与远程通信使用socks5+TLS
出流量拓扑如下
入流量拓扑如下
部署过程省略,直接看看效果,在容器内查询主机ip,可以看到主机ip结果为远程ip
在宿主机查询
可以看到ip是不一样的
顺带一提tun会把出流量全都重定向到远程服务器,服务器流量不多就不要乱玩
而且qb只需要修改libtorrent高级设置,通报公网ip,然后用frp端口映射入流量即可实现同样的逻辑
那么这样大费周章意义在哪呢
- 相当于docker组了一个nat环境,远程服务器直接作为路由器当端口映射
- 解决大部分游戏服务器不会通报ip的问题
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 TwoOnefour的博客小窝!
评论