iptables - iptables 端口转发规则将流量从 WireGuard TUN 接口路由到 eth0
问题描述
我使用 WireGuard (WG) 作为 VPN,并且只通过它路由某些基于端口的流量。在隧道的入口端,流量首先到达 eth0,然后进入 WG TUN 接口 wg0,因此以下规则适用于入口转发:
-A PREROUTING -d 192.#.#.# -i eth0 -p tcp -m tcp --dport 7054 -j DNAT --to-destination 10.#.#.#:7054
但是,我无法使用以下规则将流量从 TUN 接口路由到隧道出口侧的 eth0,我认为由于“隧道”是虚拟的,流量首先必须穿过 eth0,所以 PREROUTING 无效???我不确定如何考虑关于路由序列的 TUN 接口,即这仍然是 PREROUTEING 还是 POSTROUTING 或中间的某个地方?
-A PREROUTING -d 10.#.#.# -i wg0 -p tcp -m tcp --dport 7054 -j DNAT --to-destination 192.#.#.#:7054
我尝试了以下操作以查看 PREROUTING 是否适用于 wg0 接口,但它没有。我也用 POSTROUTING 试过这个,但不是解决方案。
iptables -t raw -A PREROUTING -i eth0 -j NOTRACK
解决方案
推荐阅读
- java - 多线程问题,错误:
预期的 - android-studio - 按钮是否可以同时使用 OnClickListener 和 OnTouchListener?
- ruby-on-rails - 创建一个同时应用所有过滤器的 API
- swiftui - SwiftUI - iPad 上的拖放重新排序是否可以在没有 EditMode 的情况下工作?
- php - 从会话中获取变量不起作用
- javascript - 无法更改 Materialise 的日期选择器的上个月和下个月
- cloud-foundry - 为 PCF 服务公开备用端口
- c++ - std::max_element 寻找 -> 运算符
- php - 从数据库中选择 ID,因为选项值在 php 中不起作用
- ldap - 如何利用本地 docker 镜像“ca.org1.example.com”为我的企业网络发布身份?