知識ベース Profitserver サービスの操作方法の簡単な説明
メイン 知識ベース AmneziaWGサーバー導入ガイド

AmneziaWGサーバー導入ガイド


有料の既製サービスに頼るのではなく、独自のVPNを運用する人が増えています。その方が安価で、プライバシー保護にも優れ、サーバーを完全に制御できるからです。ネットワーク遮断が厳しい地域で最も効果的な選択肢の一つが、WireGuardをベースにAmneziaプロジェクトが開発したプロトコルであるAmneziaWGです。

従来のWireGuardは高速で信頼性が高いものの、パケット構造が固定されており、ハンドシェイクも予測可能であるため、DPI(ディープパケットインスペクション)システムによって確実に識別され、ブロックされる可能性があります。AmneziaWGはこの問題を解決します。通常のWireGuard接続に不要なパケットを追加し、ヘッダーをランダム化し、ハンドシェイクフィールドのサイズを変更することで、WireGuard特有のシグネチャを消失させ、トラフィックが通常のUDPトラフィックと区別されなくなるようにします。

既に従来のトンネルを運用していて、切り替える価値があるかどうか迷っていますか?Linux での VPN サーバー設定: PPTP か OpenVPN か?で、これを通常の OpenVPN/PPTP 設定と比較するか、サーバーで WireGuard VPN を設定する方法で、プレーンな WireGuard (難読化なし) と比較してください。

このガイドでは、DockerやWebパネルを使用せず、コマンドラインからのみ設定することで、VPS上でのフットプリントを最小限に抑えたAmneziaWGサーバーを手動でセットアップする方法を説明します。GUI、データベース、リバースプロキシが不要なため、最も軽量なオプションであり、低価格のVPSでも問題なく動作します。以下のサンプルサーバーではプレースホルダーIPアドレスを使用しています。表示されている箇所はすべて、ご自身のVPSのアドレスに置き換えてください。

必要なもの:Ubuntu 22.04/24.04またはDebian 11/12が動作するVPS、root権限、およびVPSのIPアドレス。ドメイン名は不要です。AmneziaWGは証明書を使用しないため、更新するものはなく、DPIがTLSハンドシェイクとしてフラグを立てるものもありません。

まだサーバーをお持ちでない場合は、「サーバーの注文方法」をご覧ください。

サーバーに接続中

Windows (PuTTY)

PuTTYを開き、ホスト名欄にVPSのIPアドレスを入力し、ポート番号を22に設定して、VPSプロバイダからメールで送られてきたパスワードを使ってrootユーザーとしてログインしてください。

サーバーIPアドレス:あなたのIPアドレス

rootユーザーとしてログイン

パスワード: あなたのパスワード

1. PuTTYを開き、ホスト名フィールドにVPSのIPアドレスを入力します。  

接続情報を入力する前の、PuTTYのデフォルト設定ウィンドウ。

2. ポートを22に設定します。 

セッションにはVPSのIPアドレスとポート22が入力され、保存済みのセッション「My VPS」が選択され、「開く」をクリックする準備が整いました。

3. rootユーザーとしてログインしてください。 

新しいPuTTYターミナルウィンドウが開き、SSHセッションが開始され、ログインユーザー名の入力を求められます。

4. VPSプロバイダーからメールで送られてきたパスワードを使用する。

「root」と入力すると、PuTTYはアカウントのパスワードの入力を求めます。

結果は次のようになります。

ログイン成功: Debian のメッセージバナーが表示され、続いて root シェルプロンプト (root@copywr:~#) が表示されます。

PuTTY/SSH を介した接続の詳細な手順については、「SSH を介して Linux サーバーに接続する方法」を参照してください。

Linux / macOS (ターミナル)

ssh root@YOUR_SERVER_IP

以下のコマンドはすべて、同じ SSH セッション内でサーバー上で実行されます。これには、セクション 2 から 5 までと、セクション 9 のサーバー側チェックが含まれます。セクション 6 から 8 (VPN クライアントのインストールと設定) は、VPN を実行する必要があるデバイスである、ユーザー自身の Windows/macOS/Linux デバイス上で実行されます。これらの各セクションでは、サーバーにアクセスする行があれば、その行を明示的に示しています。

サーバーの準備

システムを更新する

何かをインストールする前に、パッケージリストを更新し、インストール済みのパッケージをアップグレードしてください。

apt update -y && apt upgrade -y

カーネルがアップグレードされる場合は、セクション 3 の AmneziaWG カーネルモジュールをビルドする前に再起動してください。そうしないと、DKMS が誤ったカーネルヘッダーに対してビルドを行い、モジュールのロードに失敗する可能性があります。(apt と Linux パッケージマネージャの仕組みについては、「Linux パッケージマネージャ」を参照してください。)以下を確認してください。

cat /var/run/reboot-required
システムアップデート中に、apt upgrade が新しいカーネルパッケージ (linux-image-6.1.0-52-amd64) をダウンロードしています。 aptアップグレードが完了しました。initramfsが再生成され、影響を受けるサービスが再起動されました。

IPフォワーディングを有効にする

この設定により、サーバーはクライアントのパケットをインターネットに転送できるようになります。この設定がない場合、トンネルは確立されますが、トラフィックは通過しません。

echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/00-amnezia.conf
sysctl --system

最初のコマンドは専用の設定ファイルを作成し、2番目のコマンドはサーバーを再起動せずにその設定ファイルを適用します。

sysctl --system はすべての sysctl.d 設定ファイルを適用し、net.ipv4.ip_forward = 1 が有効になったことを確認します。

ファイアウォール(UFW)を設定する

UFWルールの詳細については、「Linuxでのファイアウォールの設定」を参照してください。

必要な 2 つのポートを開放してください。SSH 用の 22/tcp (このルールをスキップすると、サーバーへのアクセスを失うリスクがあります) と、AmneziaWG がリッスンするポートである 42666/udp です。

apt install ufw -y
ufw allow 22/tcp
ufw allow 42666/udp
ufw --force enable
ufw status

両方のルールとも、ufwのステータス出力で「ALLOW」と表示されるはずです。

Ufw のステータスにより、ファイアウォールが有効になっている状態で、IPv4 と IPv6 の両方で 22/tcp と 42666/udp が許可されていることが確認されました。

AmneziaWGのインストール

DebianはUbuntuスタイルのPPAを直接サポートしていないため、リポジトリはadd-apt-repositoryではなく手動で追加する必要があります。これはUbuntuでも同様です。

リポジトリを手動で追加する

リポジトリを追加する
echo "deb [arch=amd64] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list

GPG署名キーを追加する

非推奨のapt-keyコマンドではなく、非武装のキーリングファイルを使用し、PPAの実際の署名キー(フィンガープリント75C9DD72C799870E310542E24166F2C257290828)を取得します。

apt install -y gnupg2
gpg --keyserver keyserver.ubuntu.com --recv-keys 57290828
gpg --export 57290828 | tee /usr/share/keyrings/amnezia.gpg > /dev/null
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/amnezia.gpg] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list

アップデートとインストール

apt update
apt install -y amneziawg
apt install -y amneziawg の出力: DKMS は実行中のカーネルに対して amneziawg カーネルモジュールをビルドし、インストールを完了します。

モジュールがロードされていることを確認します。

modprobe amneziawg
lsmod | grep amnezia
`modprobe amneziawg` を実行してから `lsmod` を実行すると、amneziawg モジュールとその依存関係 (curve25519、chacha20poly1305 など) がロードされていることが確認できます。

サーバーとクライアントの構成を生成する

ヘルパーユーティリティをインストールする

qrcodeの依存関係をインストールし、専用の作業ディレクトリを作成して、コミュニティ設定生成スクリプトをそのディレクトリにダウンロードしてください。

apt install -y python3-qrcode
mkdir -p ~/awg && cd ~/awg
wget -O awgcfg.py \
  https://gist.githubusercontent.com/remittor/8c3d9ff293b2ba4b13c367cc1a69f9eb/raw/awgcfg.py

お使いのディストリビューションのリポジトリに python3-qrcode がない場合は、pip3 install qrcode --break-system-packages を実行してください(このフラグは、デフォルトで管理されていない pip インストールをブロックする Debian 12 以降/Ubuntu 24.04 で必要です)。両方のインストールを実行しないでください。どちらか一方を選択してください。

Awgcfg.py は非公式のサードパーティコミュニティスクリプト (GitHub ユーザー "remittor" による) であり、公式の Amnezia プロジェクトツールではありません。上記の URL はリビジョンハッシュのない gist の生コンテンツを指しているため、常に作成者が最後にプッシュしたものを取得します。サイレントアップデート (または gist の削除) により、警告なしに設定が壊れる可能性があります。可能な場合は、代わりに特定のリビジョンに固定してください。gist のリビジョン履歴を開き、テストしたバージョンのコミットハッシュをコピーして、 URL このガイドの形式に沿って。 

サーバー構成を生成する

/etc/amnezia/amneziawg/awg0.conf を作成します。トンネルの内部サブネットと UDP ポートはデフォルト値のままにしておくことも、独自の値を設定することもできます。

python3 awgcfg.py --make /etc/amnezia/amneziawg/awg0.conf \
  -i 10.10.8.1/24 -p 42666

-i フラグはトンネルの内部ネットワーク アドレスとマスクを設定します。-p はサーバーの UDP ポートを設定します (ステップ 2.3 で開いたものと同じ)。

Awgcfg.py --make /etc/amnezia/amneziawg/awg0.conf を作成し、サーバーのメインネットワークインターフェース (ens3) を検出しています。

クライアント設定テンプレートを作成する

python3 awgcfg.py --create

これにより、個々のクライアント設定が作成されるのと同じフォルダにテンプレートが保存されます。このテンプレートには、サーバーの公開鍵、IPアドレス、およびAmneziaWGを通常のWireGuardと区別する難読化パラメータ(Jc、Jmin、Jmax、S1、S2、H1~H4)が既に含まれています。

Awgcfg.py --create _defclient.config を書き込みます。これは、新しいクライアント設定が生成されるテンプレートです。

クライアントを追加する

デバイスごとに1つのエントリを作成します。名前は任意のもので構いません。例えば、デバイス名などです。

python3 awgcfg.py -a "laptop"
python3 awgcfg.py -a "phone"
Awgcfg.py -a は、「ラップトップ」と「電話」クライアントを登録し、それぞれに独自のトンネル IP (10.10.8.2/32 と 10.10.8.3/32) を割り当てます。

クライアントファイルとQRコードを生成する

python3 awgcfg.py -c -q

~/awgフォルダには、laptop.confやphone.confといったファイルに加え、モバイルアプリに直接スキャンできる対応するPNG形式のQRコードが格納されるようになります。

このコミュニティスクリプトには既知の不具合があります。実行すると、同じフォルダに配置した他の.init/stateファイルが削除される可能性があります。~/awgフォルダはAmneziaWGファイル専用にし、設定を再生成する前にサーバーキー(awg0.confの[Interface] PrivateKey)を別の場所にバックアップしてください。
生成された laptop.conf の内容: クライアントのアドレス、DNS、難読化パラメータ、およびサーバーを指す [Peer] セクション。

~/awgフォルダには、laptop.confやphone.confといったファイルに加え、モバイルアプリに直接スキャンできる対応するPNG形式のQRコードが格納されるようになります。

このコミュニティスクリプトには既知の不具合があります。実行すると、同じフォルダに配置した他の .init/state ファイルが削除される可能性があります。~/awg は AmneziaWG ファイル専用とし、設定を再生成する前にサーバーキー (awg0.conf の [Interface] PrivateKey) を別の場所にバックアップしてください。

サービスの開始と自動起動の有効化

awg0インターフェースを起動し、再起動時に自動的に起動するように設定します。

systemctl enable --now awg-quick@awg0
systemctl restart [email protected]
systemctl status [email protected]

起動時にユニットが有効になり、ステータスがアクティブ(終了)と表示されるはずです。コンソールにログが表示されたまま「ハングアップ」状態になった場合は、Qキーを押して終了してください。

Systemctl status を実行すると、awg-quick@awg0.service がアクティブ (終了済み) かつ有効であることが確認され、ログにはインターフェースの ip/iptables 設定コマンドが記録されます。

アクティブなピアのリストとピアごとのトラフィックを確認するには、以下を使用します。

awg show
awg show コマンドで、awg0 インターフェースの難読化パラメータと、設定されている 2 つのピア (ラップトップと電話)、およびそれぞれの許可された IP アドレスを一覧表示します。

Windowsから接続しています

このセクションの手順はすべてWindows PC上で行われ、SSHは使用しません。VPNクライアントは、実際にトンネルを使用するデバイスにインストールする必要があります。サーバーにアクセスする唯一の手順は、6.2のscpダウンロードですが、このコマンドもPC上で入力し、セクション4でサーバーが既に生成したファイルを取得します。

クライアントをインストールする

AmneziaWGには専用のWindowsアプリがあります。インターフェースは標準のWireGuardクライアントを模倣していますが、難読化パラメータを理解します。プロジェクトの公式リポジトリからインストーラをダウンロードしてください。

https://github.com/amnezia-vpn/amneziawg-windows-client/releases

上記のリンクは、メンテナンスされているWindowsクライアントのリリースページです。そこから最新の.msi/.exeファイルをダウンロードしてください。これはブラウザで開くページであり、ターミナルに貼り付けるコマンドではありません。

インストーラーを実行し、セットアップウィザードの手順に従ってください。デフォルト設定を変更する必要はありません。

設定をインポートする

クライアント設定ファイルをサーバーから自分のコンピューターにコピーします。最も簡単な方法はscpコマンドを使用することです。サーバーではなく、自分のコンピューターのPowerShellでscpを実行してください。

クライアントPC上に、以下のscpコマンドを実行する準備が整った、空のWindows PowerShellプロンプト。
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .

AmneziaWGアプリで、「ファイルからトンネルをインポート」をクリックし、laptop.confを選択して、新しいトンネルの横にあるトグルをオンにします。

macOSから接続しています

ここで行われるすべての操作は、SSH経由ではなく、Mac上で実行されます。以下のscpコマンドはMacのターミナルに入力され、第4章でサーバーが既に生成した設定ファイルを取得します。これはVPS上のroot SSHセッション内で実行されるものではありません。

サポートされているオプションは2つあります。

  • AmneziaWG(Mac App Store):軽量クライアントで、macOS 12以降に対応しています。App Storeで「AmneziaWG」を検索してインストールし、「ファイルからトンネルをインポート」を選択して.confファイルを選択してください。Windowsクライアントと同じワークフローです。
  • AmneziaVPN(フルアプリ、macOS 14以降):軽量版のAmneziaWG専用クライアントではなく、フル機能版のAmneziaアプリを使用したい場合は、github.com/amnezia-vpn/amnezia-client/releases/latestから.pkgをダウンロードしてください。

必要であれば、まずクライアント設定をコピーしてください。手順6.2と同じです。

scp root@YOUR_SERVER_IP:~/awg/laptop.conf .

Linuxから接続しています

以下の2つのオプションはどちらも、Linuxデスクトップ/ラップトップ上で実行されます。つまり、そのマシン上の別のSSHセッション(またはローカルシェル)で実行され、セクション1で説明したVPS上のroot SSHセッションでは実行されません。コマンドはサーバー側のものと見た目が同じですが、これは両方のエンドで同じamneziawg-toolsパッケージが使用されているためです。ただし、ここで実行すると、サーバーではなく、自分のマシン上にクライアントトンネルがインストールされ、起動されます。

Linuxのデスクトップまたはノートパソコンでは、次の2つの選択肢があります。

  • GUIの場合:github.com/amnezia-vpn/amnezia-client/releasesからAmneziaVPNデスクトップクライアントのフルバージョンをインストールし、Windows/macOSの場合と同様に.confファイルをインポートしてください。
  • CLI(サーバーで使用されているものと同じamneziawg-tools(awg / awg-quick)を使用):
apt install -y amneziawg
cp laptop.conf /etc/amnezia/amneziawg/awg0.conf
awg-quick up awg0

接続を切断するには、このコードを実行してください。

awg-quick down awg0 

ログイン時にトンネルを自動的に起動するには、サービスとして有効にします。

systemctl enable --now awg-quick@awg0

接続の確認

セクション6、7、または8でトンネルがアクティブになっている状態で、SSHセッションではなく自分のデバイスに戻り、ブラウザで「自分のIPアドレスは?」チェッカーを開きます。表示されるアドレスは、VPSのIPアドレスと一致するはずです。SSHセッション内で確認する場合は、サーバー上でawing showコマンドを実行し、クライアントのピアが最近ハンドシェイクを行い、トラフィックがゼロでないことを確認してください。

参考文献・引用元

フィールド

住所

YOUR_TUNNEL_IP(トンネル内のクライアントのアドレス。例:10.10.8.2/32。ステップ4.4でクライアントを追加した際に自動的に割り当てられます。)

エンドポイント

YOUR_SERVER_IP:42666(サーバーの外部IPアドレスと、クライアントが接続するUDPポート番号。)

DNS

8.8.8.8

Jc / Jmin / Jmax

ハンドシェイク前に送信される「ジャンク」パケットの数とサイズは、サーバーとクライアント間で異なる場合があるが、接続は切断されない。

S1 / S2

ハンドシェイクのパディングフィールドのサイズ — サーバーとすべてのクライアント間でバイト単位で一致する必要があります

H1~H4

プロトコルを通常のトラフィックとして偽装するパケットタイプのヘッダーも完全に一致し、かつ互いに一意でなければならない。

トンネルの両端で同一である必要があるのは、S1/S2とH1~H4のみです。Jc、Jmin、Jmaxは、各側が送信する不要なトラフィックをどのようにパディングするかに関するものであり、上記の例のように、クライアントとサーバーの値が異なっていても問題ありません。

結論

このガイドに従うと、VPS上で独自のAmneziaWGサーバーが稼働します。AmneziaWGはWireGuard互換プロトコルで、トラフィック難読化機能を備えているため、通常のWireGuardよりもDPIシステムでUDPトラフィックを区別するのがはるかに困難です。このサービスはsystemdユニットawg-quick@awg0として実行され、サーバー再起動後もユーザーによる操作なしで稼働し続けます。

生成された ~/awg 内の .conf ファイルと QR コードは、Windows クライアントだけでなく、Android、iOS、macOS、Linux 用の AmneziaWG または Amnezia アプリ、および Keenetic ルーターや OpenWrt ルーターにもインポートできます。

手順 4.4~4.5 (python3 awgcfg.py -a "name"、次に awgcfg.py -c -q) を繰り返し、systemctl restart [email protected]でインターフェースを再起動することで、いつでも新しいクライアントを追加できます。

サーバーが稼働し始めたら、継続しておくと良い習慣をいくつかご紹介します。

  • システムを常に最新の状態に保ってください。定期的に apt update -y && apt upgrade -y を実行し、カーネルのアップグレード後には再起動して、DKMS が新しいカーネルに合わせて amneziawg モジュールを再構築するようにしてください。
  • ~/awg ディレクトリをバックアップしてください。awg0.conf ファイルには、各クライアントの秘密鍵とサーバー自身の鍵ペアが格納されています。このディレクトリを紛失すると、すべてのデバイスの設定を再生成する必要が生じます。
  • 紛失したデバイスを速やかに無効化してください。/etc/amnezia/amneziawg/awg0.conf から該当する [Peer] ブロックを削除し、systemctl restart を実行してください。 [メール保護].

接続が確立しない場合は、以下の順序で確認してください。

  • サービスの状態 (systemctl status) [メール保護])
  • ファイアウォールルール(ufwステータス - ポート42666/udpは開放されている必要があります)
  • インターフェースが起動しない場合は、DKMS/モジュールの状態を確認してください(dkms status、lsmod | grep amnezia)。
  • サーバー上のアクティブなピアのリスト(aWG show)
  • クライアント設定が正しい外部サーバーのIPアドレスを指していること

AmneziaWG を他のオプションと比較検討してから導入を検討されていますか?Linux での VPN サーバー設定: PPTP または OpenVPN?およびWireguard VPN をサーバーに設定する方法をご覧ください。完全な VPN トンネルではなく、シンプルなプロキシのみが必要な場合は、CentOS/ArchLinux での 3proxy 設定がより軽量な代替手段となります。VPN が稼働した後の一般的なサーバー強化については、 Linux ユーザー: 管理と権限をご覧ください。

❮ 前の記事 Hysteria2とTUICの設定
次の記事❯ Xray VLESS Reality ガイド:VPS、Windows、Mac、Android、iPhone

VPSについてお問い合わせください

私たちは昼夜を問わずいつでもお客様のご質問にお答えする準備ができています。