本地 WireGuard 响应错误接口的 SSH TCP SYN

本地 WireGuard 响应错误接口的 SSH TCP SYN

我有一个本地 WireGuard 网关,我正在尝试使用 Ansible 进行管理。我在通过 SSH 连接时发现了一个问题。该连接超时了。在研究了这个问题之后,我意识到原因是来自接口 ino1 的 SSH 的 TCP SYN 没有得到 SYN-ACK,因为 WG 规则将其转发到 wg0 接口。

有人知道如何向 iptables 添加规则来修复此问题而不与 WG 流量冲突吗?WG 在 UDP 上运行。

我对 iptables 不是很熟练,因此如果能得到任何帮助我都会很感激。

答案1

解决方案是:

# Mark incoming SYN packets and save the mark in the connection
iptables -t mangle -A PREROUTING -p tcp --syn -j CONNMARK --set-mark 1
# Restore the mark to outgoing SYN,ACK packets
iptables -t mangle -A OUTPUT -p tcp --tcp-flags SYN,ACK SYN,ACK -j CONNMARK --restore-mark
ip rule add fwmark 1 table 100
ip route add default dev ino1 table 100

相关内容