問題タブ [wireguard]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
685 参照

c# - c#.Net への Wireguard トンネル ソース: Service Run のトラブルシューティング

Wireguard ソース コードを使用して WireGuard プロトコル ベースの接続を確立するために、C# .NET Framework 4.6 で単純なコンソール アプリ クライアント (starter.exe) を作成しようとしています。

行われること:

  • ここからダウンロードしたワイヤーガードのソースコード: git://git.zx2c4.com/wireguard-windows
  • build.bat 経由で..\ embeddable-dll-service\amd64\tunnel.dll に Tunnel.dll が正常にビルドされました
  • ..\embeddable-dll-service\csharpの c# コードを使用して、Visual Studio 2015 でプロジェクトを作成しました。

ここから、いくつかの奇妙なことが起こっています。

  • starter.exe \service <path to *.conf> を起動すると、エラーが表示されます

サービス実行エラー: サービス プロセスがサービス コントローラーに接続できませんでした。

  • パラメータなしで starter.exe を起動すると、if{}ブロックを削除するまですべて正常に動作します。

未処理の例外: System.ComponentModel.Win32Exception: サービスは
、D:\Depository\BitBucket\WireGuard_Tunnel_Repository\WireGuardTunnel_proj\Launcher\Service の WireGuardTunnel.Service.Add(String configFile) で開始または制御要求にタイムリーに応答しませんでした。 cs: D:\Depository\BitBucket\WireGuard_Tunnel_Repository\WireGuardTunnel_proj\Launcher\Program.cs:line 83 の WireGuardTunnel.Program.Main(String[] args) の 69 行目

つまり、if{} ブロック内のコードが実行されなくても、何らかの形でアプリケーションの動作に影響を与えるということです。

  • 次に、アプリをパラメータで動作させたいので、Return afer Service.Run を削除し、args[1] を Service.Add(args[1]) に渡すことで問題を解決しました。問題なく動作しますが、ログに追加のログ行 (上記の Service.Run 永続エラーによる最初の行) があります。

サービス実行エラー: サービス プロセスがサービス コントローラーに接続できませんでした。
235660: [TUN] [chicago4] ネットワーク インターフェイス
の監視 245661: [TUN] [chicago4] DNS 名の解決
245661: [TUN] [chicago4] Wintun インターフェイスの作成
225660: [TUN] [chicago4] WireGuard/0.3.1 の起動 (Windows 6.1 .7601; amd64)

最後に質問:

  1. Service.Run(confFile) が機能しない理由
  2. Service.Run(confFile) が Service.Add(confFile) に影響を与える理由
  3. パラメータなしで starte.exe を起動すると if{} ブロックが実行される理由

変更されていない元の Program.cs:

0 投票する
1 に答える
1397 参照

docker - Wireguard コンテナーの背後にあるポート バインディングを使用して Docker コンテナーにアクセスする

簡単に言うと、インターネット プロバイダーから静的 IP を取得していないため、Raspberry Pi 4、Raspbian、および linuxserver.io ワイヤーガード イメージを使用して独自の VPN サーバーを構築するというアイデアが生まれました。次に、これらの VPN の背後には Nextcloud スクリプトがあります。これまでのところ、docker-compose.yaml でこれを実行しましたが、エラーが返されました。

http://my.vpn.ip:8080にアクセスしたときに、VPN IP アドレスを使用して外部から nextcloud Web UI にアクセスできるようにしたい

docker-compose.yaml ファイルに行を追加network_mode: service:wireguardして、nextcloud コンテナーが wireguard コンテナーと同じネットワーク内にあるようにします。しかし、すでに設定した公開ポート 8080:80 では動作しないようです。起動するdocker-compose up -dと、次のようなエラー出力が返されました。

誰かがこれで私を助けることができれば、私はとても感謝しています. ありがとうございました。

0 投票する
3 に答える
30619 参照

endpoint - Wireguard 構成ファイルの Endpoint フィールドと AllowedIPs フィールドの違いは何ですか?

Wireguard についての私の理解では、サーバーとクライアントのインターフェイス (一見わかりにくいですが) にはそれぞれ独自の.confファイルがあります。たとえば、次の.confファイルを考えてみましょう。

これがクライアント ファイルかサーバー.confファイルかを判断するにはどうすればよいでしょうか (可能な場合)。Endpointこれは非常に単純な質問かもしれませんが、とAllowedIPsのフィールドの違いは何[Peer]ですか? 暗号鍵ルーティングinterfaceから、がパケットを受信するとinterface秘密鍵で復号化し、送信者 IPAllowedIPsをすべてのpeersと照合し、資格情報が実際に と一致する場合はpeerそれを受け入れると推測します。一方、 がパケットを送信する場合は、公開鍵interfaceでパケットを暗号化しますが、それを に送信するか、またはのいずれかに送信しますか?peerEndpointAllowedIPs

EDIT 1:私は使用man wgしましたが、の定義はEndpointまだ漠然としているように見えました。それにもかかわらず、AllowedIPsフィールドは把握しやすいようです。

編集 2:AllowedIPsさらに調査した結果、フィールドはピアがトラフィックの受信または送信に使用できる IP アドレスを指定していると思います。誰かがこれを確認または修正していただければ幸いです。