![使用 iptables 公开 minikube 服务](https://linux22.com/image/729537/%E4%BD%BF%E7%94%A8%20iptables%20%E5%85%AC%E5%BC%80%20minikube%20%E6%9C%8D%E5%8A%A1.png)
我在基于 kvm 的 minikube 节点上运行 minikube 负载均衡器服务。我有以下网络路由,
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 14 0 0 br0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker_gwbridge
172.30.32.0 0.0.0.0 255.255.254.0 U 0 0 0 hassio
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
192.168.39.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
我可以使用地址从浏览器访问网络服务http://192.168.39.12:32737/
我需要此服务可供我的本地网络访问。我尝试使用 iptables 将 IP 地址为 192.168.0.11 的主机的所有流量映射到端口 32737 上的 192.168.39.12:32737,使用以下 iptables 规则,
$ sudo iptables -I FORWARD -o virbr0 -d 192.168.39.12 -j ACCEPT
$ sudo iptables -t nat -I PREROUTING -p tcp --dport 32737 -j DNAT --to 192.168.39.12:32737
$ sudo iptables -I FORWARD -o virbr0 -d 192.168.0.11 -j ACCEPT
$ sudo iptables -t nat -A POSTROUTING -s 192.168.39.0/24 -j MASQUERADE
sunils@sunils-pc ~ $ sudo iptables -A FORWARD -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
$ sudo iptables -A FORWARD -i virbr0 -o br0 -j ACCEPT
$ sudo iptables -A FORWARD -i virbr0 -o lo -j ACCEPT
但我仍然无法从我的主机 IP 地址访问我的服务
$ curl http://192.168.0.11:32737/
curl: (7) Failed to connect to 192.168.0.11 port 32737: Connection refused
有人能帮我如何使用 iptables 公开 minikube 服务吗
答案1
只使用 socat 怎么样?它也是多平台的
nohup socat TCP-LISTEN:443,fork TCP:<ingress address>:443 &
nohup socat TCP-LISTEN:80,fork TCP:<ingress address>:80 &