JQ-Networks/UnifiedMessageRelay

是否只能通过将bot塞入Docker中才能正常连接至Socket API?

Z4HD opened this issue · 10 comments

Z4HD commented

#4 中提到下面这段话:

是这样的,那个cqsocketapi只监听了127.0.0.1,所以bot推荐放到docker里运行

加上本人在Docker中进行了11235端口的映射,但映射出的端口不接受外部连接,bot亦无法从Docker外部连接至Socket API。

是否意味着只有把bot塞进Docker中才能正常连接至Socket API?

推荐这么做,不然暴露端口的话docker 的 ip 不一定是固定的,我这里有时候是172.17.0.2有时候是172.17.0.3

想把 bot 放外边需要重新编译一个监听0.0.0.0的 cqsocketapi,否则不得不放在 docker 内

Z4HD commented

但是您考虑到如果Socket API监听0.0.0.0的话可能会意外将Socket API暴露至外网因此编译了监听172.0.0.1的版本?

不是, cqsocketapi不是我的项目,我只是拿来用
原作者写的就是127.0.0.1,我觉得OK,所以没改

用0.0.0.0会不会暴露公网取决于你的iptables 规则怎么写

Z4HD commented

多谢解答

Z4HD commented

我觉得我 readme 提到了把 bot 放到 docker 里啊
只是没有强调一下,我改改

Z4HD commented

当然可以在 docker 外运行,会写 iptables 就行

举个例子,在 docker 里搞这个
iptables -t nat -I PREROUTING -i eth0 -p udp --dport 11235 -j DNAT --to-destination 127.0.0.1
当然不保证能用,我只是举个例子

Z4HD commented

@jqqqqqqqqqq
不错,值得一试。
让您回复了这么多,麻烦您了。