アップデート: どうやら「データセーバー」を有効にするとIPv4とUDPがオフになるようです。それをオフにしたら、今はWireguardが正常に動作します。
私はなぜ携帯接続をしているとWireguardが動作しないのかデバッグしていました。私はトラフオンプリペイドの携帯電話(Verizonネットワーク上)とVultrのサーバーを使用しています。私のこれまでの学び:
- IPv4アクセスが大きく制限されている。例:個人のボックスでUDP/TCPをポート443で実行しても、携帯はIPv4経由でアクセスできません。一般的なIPv4のウェブサイトにはアクセスできます。
- IPv6アドレスに切り替えると、SSHのようなTCP接続は動作します。UDP接続はほとんど動作しています。
- IPv6経由でのテスト中に一度成功したWireguardの接続がありました。ただし、最終的にはVerizonがサーバーからのWireguardレスポンスを拒否し始めるのに気付きました。
- WireguardサーバーをUDPエコーサーバーに置き換えると、ICMPの「宛先到達不能」エラーはなくなり、パケットは携帯に届きます。
誰かこのようなISPによるWireguardのブロックを見たことがありますか?WiresharkにはWireguardプロトコルのハンドラーがあるので、Verizonも通信識別ができるようです。
この状況から抜け出す方法は何でしょうか?WebSocketを経由したWireguardのトンネル化を見たことがありますが、これは標準クライアントには含まれておらず、より複雑な接続シーケンスを必要とします。他に提案はありますか?
tcpdump:
05:10:59.829872 IP6 (フロードラベル 0x00d71, TTL 237, next-header UDP (17) ペイロード長:156) 2600:1010:b054:33e1:cce4:580d:932e:4318.
38081 > server.4000: [udp合計正常] UDP, 長さ148
05:10:59.830679 IP6 (クラス 0x88, TTL 64, next-header UDP (17) ペイロード長:100) server.4000 > 2600:1010:b054:33e1:cce4:580d:932e:4318.
38081: [udp合計正常] UDP, 長さ92
05:10:59.909712 IP6 (TTL 236, next-header ICMPv6 (58) ペイロード長さ:148) 2600:1010:b054:33e1:cce4:580d:932e:4318 > server: [icmp6合計正常] ICMP6, 宛先到達不能、到達不能ポート、2600:1010:b054:33e1:cce4:580d:932e:4318 UDPポート
38081