我有一台在 eth0 上有公共 IP 的云机器,其他接口 zerotier 有带 homeassistant 的本地机器https://192.168.0.15:8123.此云机可以访问https://192.168.0.15:8123通过 zerotier。我想将传入流量 eth0 路由到 homeassistant。
传入公共 IP -> eth0 -> zerotier 接口https://192.168.0.15:8123我尝试过:
sudo sysctl net.ipv4.ip_forward=1 sudo sysctl -w net.ipv4.conf.all.route_localnet=1
sudo iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 8123 -j DNAT --to-destination 192.168.0.15:8123
sudo iptables -A FORWARD -p tcp -d 192.168.0.15 --dport 8123 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
当 tcpdump -i eth0 port 8123 时,我在端口 8123 上收到了传入数据包,但没有从 homeassistant 返回任何内容
我发现这是可行的
sudo sysctl net.ipv4.ip_forward=1
sudo iptables -A POSTROUTING -t nat -d 192.168.0.15 -j MASQUERADE
sudo iptables -A PREROUTING -t nat -p tcp --dport 8123 -j DNAT --to-destination 192.168.0.15:8123