首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使wireguard忽略某些端口

如何使wireguard忽略某些端口
EN

Unix & Linux用户
提问于 2022-06-13 04:29:42
回答 2查看 1.5K关注 0票数 1

我的路由器设置可以将转发端口80移植到运行caddy文件服务器的机器上。我可以成功地从局域网卷曲文件服务器,但我得到一个超时时,卷曲从广域网。运行caddy的机器还通过NetworkManager运行wireguard以连接到外部VPN。如果关闭wireguard连接,就可以从广域网中压缩文件服务器。

这个答案说我的AllowedIps=0.0.0.0,::0/0正在通过外部VPN路由所有流量。我如何设置wireguard来路由除了端口80和443流量通过VPN的所有东西?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2022-06-13 07:14:55

除了端口80和443之外,不可能配置Wireguard来路由所有的东西。这是因为查看OSI网络模型,端口位于与IP流量不同的层上。

但这个问题有两个(可能更多)答案:第一个答案是限制通过Wireguard隧道的路线。评估哪些IP网络需要通过Wireguard隧道并在AllowedIps中进行配置。

第二个答案更高级,但您可以在路由器上配置一个source NAT,它将传入的广域网IP地址隐藏到路由器的IP上。这意味着文件服务器认为WAN流量是来自路由器的流量,并将向路由器发回一个回复,后者将其发送回WAN。

票数 1
EN

Unix & Linux用户

发布于 2022-06-15 11:53:57

因为Wireguard使用的是另一个路由表,而不是默认的路由表,所以您可以使用ip rule来排除某种类型的流量。Wireguard将在将其重定向到本地之后,但在它转到main之前,添加一个规则来匹配流量。

然后,您应该能够在wireguard规则之前添加一个规则,该规则将将通信量从端口8043和443 (从服务器的回复)重定向到主表。它应该很简单,如:

代码语言:javascript
复制
ip rule add sport 80 table main
ip rule add sport 443 table main

您可以通过以下方式验证规则放在wireguard规则之前:

代码语言:javascript
复制
ip rule

虽然,如果您想使其持久,您可能希望在配置文件中添加一个PostUp操作:

代码语言:javascript
复制
PostUp=ip rule add sport 80 table main && ip rule add sport 443 table main
PreDown=ip rule del sport 80 table main && ip rule del sport 443 table main

如果您只使用NetworkManager,则可以使用dispatcher.d放置脚本,以便在网络连接或断开连接时执行脚本。

代码语言:javascript
复制
#!/bin/bash
echo 'ip rule del sport 80 table custom
ip rule del sport 443 table custom
ip rule add sport 80 table custom
ip rule add sport 443 table custom' > /etc/NetworkManager/dispatcher.d/02-wg_exceptions.sh
chmod +x /etc/NetworkManager/dispatcher.d/02-wg_exceptions.sh
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/705962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档