我的办公室网络节点通过 NAT(iptables 伪装)访问互联网,网关服务器使用 Wireguard VPN 连接访问互联网。一切正常,但我无法访问使用 Fastly CDN 的网站。是否有其他配置可以避免此问题?
我的网关上有一个仅转发的 DNS 服务器,它将所有 DNS 请求转发到我的 Wireguard 服务器的 DNS 服务器。
答案1
我在亲自研究这个问题时发现了您的问题。
我意识到你可能已经找到答案了,但对于其他人来说,可能会偶然发现这个问题——这里是答案。
这与 MTU/MSS 问题有关。
进一步的讨论可以在这里找到:
- https://forum.level1techs.com/t/strange-issue-with-github-when-routing-traffic-over-wireguard-vpn/189403/10
- https://keremerkan.net/posts/wireguard-mtu-fixes/
TLDR,修复方法是将 wireguard 配置中的 MTU 设置为:
MTU = 1420
并且将以下内容添加到您的 iptables FORWARD 链中
iptables -A FORWARD -i wg0 -m state --state RELATED,ESTABLISHED -j ACCEPT; iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
希望这对某人有帮助!