**FreeBSD Home NAS – 第 3章  
WireGuard VPN、ルーティング、および Linux クライアントの追加**

---

### 概要

本ガイドでは、FreeBSD 上で WireGuard VPN を構築し、LAN から出るすべてのトラフィックをトンネル経由にするようルーティングを設定し、Linux クライアントをピアとして追加する手順を説明します。

---

## 1. WireGuard のインストール

```sh
pkg install wireguard-tools
```

---

## 2. キーの生成

```sh
wg genkey | tee server_private.key | wg pubkey > server_public.key
```

各 Linux ピアでも同様に実行し、プライベート/パブリックキー対を取得します。

---

## 3. `/etc/rc.conf` の設定

```sh
wireguard_enable="YES"
wireguard_server0_interface="wg0"
wireguard_server0_address="10.0.0.1/24"
wireguard_server0_port="51820"
```

---

## 4. `/usr/local/etc/wireguard/wg0.conf` の作成

```conf
[Interface]
PrivateKey = <server_private_key>
Address   = 10.0.0.1/24
ListenPort = 51820

PostUp   = ipfw add 100 fwd 10.0.0.2 out via enp0s3
PostDown = ipfw delete 100
```

`enp0s3` は LAN インタフェースに置き換えてください。

---

## 5. ピア(Linux マシン)の追加

```conf
[Peer]
PublicKey = <peer_public_key>
AllowedIPs = 10.0.0.2/32
Endpoint   = <peer_ip>:51820
PersistentKeepalive = 25
```

`wg0.conf` の `[Peer]` セクションに各ピアを追加します。

---

## 6. IP フォワーディングの有効化

```sh
sysctl -w net.inet.ip.forwarding=1
```

永続化するには:

```sh
echo 'net.inet.ip.forwarding="YES"' >> /etc/sysctl.conf
```

---

## 7. ファイアウォールルールの適用(任意)

```sh
sudo ipfw add 200 fwd 10.0.0.2 in on wg0
```

ネットワーク構成に合わせて調整してください。

---

## 8. WireGuard の起動

```sh
service wireguard start
```

確認は:

```sh
wg show
```

---

## 9. Linux クライアントの設定

各 Linux ピアで `/etc/wireguard/wg0.conf` を作成します。

```conf
[Interface]
PrivateKey = <peer_private_key>
Address   = 10.0.0.2/32

[Peer]
PublicKey = <server_public_key>
Endpoint  = <freebsd_ip>:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
```

クライアントを起動:

```sh
sudo wg-quick up wg0
```

---

## 10. 動作確認

LAN デバイスから VPN ゲートウェイ(`10.0.0.1`)へ ping を実行し、traceroute でトラフィックがトンネル経由になっていることを確認します。

---

### 注意点

- プライベートキーは安全に保管してください。ファイル権限は `chmod 600` を推奨します。
- LAN デバイスからのアクセス制御を行いたい場合は、ファイアウォールルールを調整してください。
- 複数の Linux ピアがある場合は、ステップ 9 を繰り返し、IP を `10.0.0.3`、`10.0.0.4` などに設定してサーバー側の `[Peer]` エントリも更新します。

2026/01/04 20:55

**FreeBSD Home NAS – 第 3章 WireGuard VPN、ルーティング、および Linux クライアントの追加** --- ### 概要 本ガイドでは、FreeBSD 上で WireGuard VPN を構築し、LAN から出るすべてのトラフィックをトンネル経由にするようルーティングを設定し、Linux クライアントをピアとして追加する手順を説明します。 --- ## 1. WireGuard のインストール ```sh pkg install wireguard-tools ``` --- ## 2. キーの生成 ```sh wg genkey | tee server_private.key | wg pubkey > server_public.key ``` 各 Linux ピアでも同様に実行し、プライベート/パブリックキー対を取得します。 --- ## 3. `/etc/rc.conf` の設定 ```sh wireguard_enable="YES" wireguard_server0_interface="wg0" wireguard_server0_address="10.0.0.1/24" wireguard_server0_port="51820" ``` --- ## 4. `/usr/local/etc/wireguard/wg0.conf` の作成 ```conf [Interface] PrivateKey = <server_private_key> Address = 10.0.0.1/24 ListenPort = 51820 PostUp = ipfw add 100 fwd 10.0.0.2 out via enp0s3 PostDown = ipfw delete 100 ``` `enp0s3` は LAN インタフェースに置き換えてください。 --- ## 5. ピア(Linux マシン)の追加 ```conf [Peer] PublicKey = <peer_public_key> AllowedIPs = 10.0.0.2/32 Endpoint = <peer_ip>:51820 PersistentKeepalive = 25 ``` `wg0.conf` の `[Peer]` セクションに各ピアを追加します。 --- ## 6. IP フォワーディングの有効化 ```sh sysctl -w net.inet.ip.forwarding=1 ``` 永続化するには: ```sh echo 'net.inet.ip.forwarding="YES"' >> /etc/sysctl.conf ``` --- ## 7. ファイアウォールルールの適用(任意) ```sh sudo ipfw add 200 fwd 10.0.0.2 in on wg0 ``` ネットワーク構成に合わせて調整してください。 --- ## 8. WireGuard の起動 ```sh service wireguard start ``` 確認は: ```sh wg show ``` --- ## 9. Linux クライアントの設定 各 Linux ピアで `/etc/wireguard/wg0.conf` を作成します。 ```conf [Interface] PrivateKey = <peer_private_key> Address = 10.0.0.2/32 [Peer] PublicKey = <server_public_key> Endpoint = <freebsd_ip>:51820 AllowedIPs = 0.0.0.0/0, ::/0 PersistentKeepalive = 25 ``` クライアントを起動: ```sh sudo wg-quick up wg0 ``` --- ## 10. 動作確認 LAN デバイスから VPN ゲートウェイ(`10.0.0.1`)へ ping を実行し、traceroute でトラフィックがトンネル経由になっていることを確認します。 --- ### 注意点 - プライベートキーは安全に保管してください。ファイル権限は `chmod 600` を推奨します。 - LAN デバイスからのアクセス制御を行いたい場合は、ファイアウォールルールを調整してください。 - 複数の Linux ピアがある場合は、ステップ 9 を繰り返し、IP を `10.0.0.3`、`10.0.0.4` などに設定してサーバー側の `[Peer]` エントリも更新します。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

FreeBSD 14.3 NAS を軽量 WireGuard VPN サーバとして構成し、リモートオフィスとホームネットワークが単一トンネルで安全に通信できるようにする方法を示すガイドです。WireGuard はコードベースが小さく、カーネル空間で動作し、組み込み暗号化機能とシンプルなピアツーピア設計を備えているため、OpenVPN よりも効率的な代替手段として推奨されます。

セットアップ手順:

  1. WireGuard ツールのインストール (
    pkg install wireguard-tools
    )。
  2. カーネルモジュールをロード (
    kldload if_wg
    ) し、
    /etc/rc.conf
    wireguard_enable=YES
    wireguard_interfaces="wg0"
    を追加して有効化します。
  3. IP フォワーディングを有効化:
    sysrc net.inet.ip.forwarding=1
  4. pf の設定 でデフォルトは全トラフィックをブロックし、次を許可します:
    • オフィス(192.168.0.0/24)とホーム(192.168.100.0/24)の SSH、および VPN クライアントからの接続。
    • UDP 51820 上での WireGuard ハンドシェイク。
    • VPN クライアントが両 LAN に到達できるようにする。
    • VPN およびホームから FreeBSD ホストへの ICMP。
    • アウトバウンドトラフィック。
  5. 鍵を生成 (
    wg genkey | tee server.key | wg pubkey > server.pub
    ) し、権限を設定 (
    chmod 600 server.key
    )。
  6. /usr/local/etc/wireguard/wg0.conf
    を作成:
    • Interface
      : プライベートキー、アドレス
      10.8.0.1/24
      、リッスンポート
      51820
    • 各クライアントの
      Peer
      ブロック(パブリックキー、許可 IP、エンドポイント DDNS:51830)。
  7. オフィスルーターで NAT ポート転送:UDP 51830 を NAS の 192.168.0.2:51830 に転送。
  8. クライアント設定(Arch Linux):
    wireguard-tools
    をインストールし、鍵を生成、
    /etc/wireguard/wg0.conf
    にプライベートキー、アドレス
    10.8.0.3/24
    、サーバーのパブリックキーと DDNS エンドポイントへのピアブロックを作成。
  9. 自動起動を有効化: 両方の FreeBSD と Arch Linux で
    systemctl enable wg-quick@wg0
  10. 静的ルート追加:
    • オフィスノートパソコン: NetworkManager の CLI を使い、192.168.100.0/24 を 192.168.0.2(NAS)経由に設定。
    • ホームノートパソコン: VPN インターフェース (
      10.8.0.1
      ) 経由で 192.168.0.0/24 にルーティング。

これらの手順を完了すると、オフィスノートパソコン(192.168.0.165)、ホームノートパソコン(192.168.100.205)および NAS(192.168.0.2)のすべてのデバイスが LAN と VPN ネットワーク (

10.8.0.0/24
) を介して相互に ping および SSH が可能になります。結果として、オープンソースネットワーキングを NAS やサーバプラットフォームで利用する実用性を示す、安全かつ低負荷なリモートアクセスソリューションが完成します。

Text to translate

(The original text provided in the user message.)

本文

FreeBSD:ホームNAS – 第 3回 ― WireGuard VPN、Linux クライアントとルーティング設定

概要

本記事は、FreeBSD 14.3 を使ったホーム NAS の構築シリーズの続編です。
WireGuard を FreeBSD 上にインストール・設定し、Arch‑Linux クライアントを追加し、以下のような相互接続を実現します。

  • オフィス(192.168.0.0/24)とホーム(192.168.100.0/24)のネットワークが互いに通信できる
  • 両方のノートパソコンから FreeBSD NAS にアクセス可能

WireGuard と OpenVPN の比較

機能WireGuardOpenVPN
コードサイズカーネル内で約 4 k 行ユーザー空間で約 100 k 行
所在地カーネルモジュール(パケット処理・暗号化)ユーザー空間サービス(TCP/UDP ソケット)
暗号化カーネル内実装OpenSSL / LibreSSL(ユーザー空間)
アーキテクチャピアツーピア(サーバ/クライアントの役割なし)クライアント‑サーバ

WireGuard は暗号化されたネットワークインタフェースそのものです。
OpenVPN は従来型のアプリケーションベース VPN であり、両者は設計思想が異なります。


ネットワーク構成

オフィス:192.168.0.0/24   → TP‑LINK Archer AX12
    • ワークノートパソコン(Arch Linux)
    • FreeBSD NAS(ホスト + WireGuard)

ホーム:192.168.100.0/24  → TP‑LINK Archer AX12
    • ホームノートパソコン(Arch Linux)

FreeBSD は WireGuard VPN サーバとして動作します。
ルーターはポート 51820 を FreeBSD ホストへ NAT フォワードします。


FreeBSD に WireGuard をインストール

# pkg install wireguard-tools          # ユーザーランドツール
# kldload if_wg                         # カーネルモジュールをロード

/etc/rc.conf で有効化します。

wireguard_enable   = YES
wireguard_interfaces = wg0

ネットワーク設定と IP フォワーディング

sysrc gateway_enable="YES"                 # ルーティングを有効化
sysctl net.inet.ip.forwarding=1            # 即時転送を許可

Packet Filter (pf) のルール

基本テンプレート

set skip on lo
block log all
pass out keep state

受信トラフィック

# オフィス & ホームからの SSH(FreeBSD)
pass in log on em0 proto tcp from 192.168.0.0/24   to (em0) port 22 keep state
pass in log on em0 proto tcp from 192.168.100.0/24 to (em0) port 22 keep state

# VPN クライアントからの SSH
pass in on wg0 proto tcp from 10.8.0.0/24 to (wg0) port 22 keep state

# WireGuard ハンドシェイク
pass in on em0 proto udp to (em0) port 51820 keep state

# VPN → LAN アクセス
pass in on wg0 from 10.8.0.0/24 to 192.168.0.0/24 keep state
pass in on wg0 from 10.8.0.0/24 to 192.168.100.0/24 keep state

# ICMP (ping)
pass in on wg0 proto icmp from 10.8.0.0/24 to (wg0) keep state
pass in on em0 proto icmp from 192.168.0.0/24 to 192.168.100.0/24 keep state

リロード:

pfctl -vnf /etc/pf.conf && service pf reload

WireGuard の設定

キー生成(FreeBSD 上)

cd /usr/local/etc/wireguard
wg genkey | tee server.key | wg pubkey > server.pub
chmod 600 server.key

/usr/local/etc/wireguard/wg0.conf

[Interface]
Address   = 10.8.0.1/24
ListenPort= 51820
PrivateKey= <server.key の内容>

[Peer]                       # クライアントごとに追加
PublicKey = ...
AllowedIPs = 10.8.0.X/32, 192.168.100.0/24

インタフェース起動:

wg-quick up wg0
ifconfig wg0        # IP と状態を確認
wg show             # ピアとステータスを表示

動的 DNS と NAT ポート転送(オフィスルーター)

  • プロトコル:UDP
  • 外部ポート:51830(マスキング用)
  • フォワード先:
    192.168.0.2
    (FreeBSD ホスト)に 51830

IP が動的の場合は DDNS を設定します(例:No-IP)。


Arch‑Linux クライアントの構成

pacman -S wireguard-tools
cd /etc/wireguard
wg genkey | tee client1.key | wg pubkey > client1.pub
chmod 600 client1.key

/etc/wireguard/wg0.conf
(クライアント)

[Interface]
PrivateKey = <client1.key の内容>
Address   = 10.8.0.3/24

[Peer]
PublicKey     = <サーバの公開鍵>
Endpoint      = setevoy-***.ddns.me:51830
AllowedIPs    = 10.8.0.1/32, 192.168.0.0/24
PersistentKeepalive = 25

起動:

wg-quick up wg0

FreeBSD サーバにクライアントをピアとして追加します(

wg0.conf
[Peer]
セクションを追記)。

WireGuard を再起動:

wg-quick down wg0 && wg-quick up wg0

クライアントからサーバ、オフィス LAN への

ping
ssh
をテストします。


クロスLAN アクセス(オフィス ↔ ホーム)

  • オフィスノートパソコン はホームネットワークへルートを追加:
sudo ip route add 192.168.100.0/24 via 192.168.0.2
  • ホームノートパソコン はオフィスネットワークと VPN サブネットを知る必要があります:
sudo ip route add 192.168.0.0/24 via 192.168.0.2
sudo ip route add 10.8.0.0/24   via 192.168.0.2

NetworkManager
で永続化します(例:
nmcli connection modify … +ipv4.routes ...
)。


pf の最終設定ファイル(完全版)

set skip on lo
block log all

# オフィス & ホームからの SSH(FreeBSD)
pass in log on em0 proto tcp from 192.168.0.0/24   to (em0) port 22 keep state
pass in log on em0 proto tcp from 192.168.100.0/24 to (em0) port 22 keep state

# VPN クライアントからの SSH
pass in on wg0 proto tcp from 10.8.0.0/24 to (wg0) port 22 keep state

# WireGuard ハンドシェイク
pass in on em0 proto udp to (em0) port 51820 keep state

# VPN → LAN アクセス
pass in on wg0 from 10.8.0.0/24 to 192.168.0.0/24 keep state
pass in on wg0 from 10.8.0.0/24 to 192.168.100.0/24 keep state

# ICMP (ping)
pass in on wg0 proto icmp from 10.8.0.0/24 to (wg0) keep state
pass in on em0 proto icmp from 192.168.0.0/24 to 192.168.100.0/24 keep state

pass out keep state

リロード:

pfctl -vnf /etc/pf.conf && service pf reload

動作確認

  • 両端で

    wg show
    を実行し、直近のハンドシェイクが表示されることを確認

  • ping
    ssh
    が以下の間で機能するかテスト:

    • オフィスノートパソコン ↔ ホームノートパソコン
    • ノートパソコン ↔ FreeBSD NAS
    • VPN クライアント ↔ LAN 上のホスト

ホーム NAS は WireGuard トンネル経由で両ネットワークから到達可能となり、今回の構成は完了です。

同じ日のほかのニュース

一覧に戻る →

2026/01/05 6:01

北ダコタ州法は、石炭業界の弁護士の名前に由来する偽の「クリティカルミネラル」を一覧化しています。

## Japanese Translation: **改善された要約** 記事には「State(州)」「Zip Code(郵便番号)」「Country(国)」の3つのセクション見出しのみが含まれています。これらの見出しの下に追加のテキスト、説明、または例はありません。

2026/01/05 5:17

**Show HN: AWS用ターミナル UI**

## Japanese Translation: > **概要:** > tawsはRustで書かれた軽量なターミナルUIで、k9sに触発されており、ユーザーがAWSリソースを迅速かつ効率的に管理できるようにします。リアルタイム更新、Vim風ナビゲーション(`k/j/↑/↓`, `g/G`)、リソース操作(例:EC2の開始/停止/終了は`s/S/T`)、JSON/YAMLビュー、フィルタリング、ファジー補完、およびコロン(`:`)で呼び出すリソースピッカーをサポートします。 > このツールは30個の主要AWSサービス(典型的な使用率の95%以上)にわたって動作し、マルチプロファイル/マルチリージョンナビゲーション(`p`, `R`)が可能です。Homebrew(`brew install huseyinbabal/tap/taws`)でインストールできるほか、macOS、Linux、Windows向けに事前構築済みバイナリをダウンロードして使用できます。macOS/Linux用のクイックインストールスクリプトも提供されています。 > AWS認証情報は`aws configure`、環境変数、またはIAMロールで供給でき、必要最低限の権限はDescribe*とList*です。本プロジェクトはMITライセンスで配布されており、新しいサービスを追加する前にディスカッションが奨励されています。将来のリリースではサービス対応範囲の拡大を目指し、IAM権限ギャップ、ページネーション制限、グローバルサービスデフォルトなど既知の問題にも対処します。 この改訂された概要は主要なポイントすべてを網羅しており、元の内容に忠実で、読者にとって明確かつ簡潔な概要を提供します。

2026/01/05 4:48

**Claude Code On‑the‑Go** (クレオード・コード・オンザゴー)

## Japanese Translation: **(修正版)** > 著者は、iPhone 上で 6 つの Claude Code エージェントを実行する、コスト管理済みかつモバイルフレンドリーなワークフローを構築します。 > > * **Vultr VM**(Silicon Valley の `vhf‑8c‑32gb`)を 2 本のスクリプト(`vm-start`、`vm-stop`)で起動・停止し、iOS ショートカットから呼び出します。VM は稼働時に約 **$0.29 / hr(約 $7/日)** の費用がかかります。 > > * 接続は **Tailscale のプライベートネットワーク** を介し、**Termius + mosh** で行い、Wi‑Fi / モバイル通信の切り替えや電話機のスリープ時でも継続する頑健な SSH セッションを実現します(SSH エージェントは転送されないため、GitHub 認証は tmux 内の通常キーで行います)。 > > * ログイン時にシェルが自動的に **tmux** にアタッチします(`if [[ -z "$TMUX" ]]; then tmux attach -t main || tmux new -s main fi`)、再接続時も状態を保持します。 > > * 各 Claude エージェントは、別々の Git 作業ツリー・ブランチに紐付けられた独自の tmux ウィンドウで実行されます。ポート番号は `django_port = 8001 + (hash_val % 99)` により決定的に割り当てられ、`hash_val = sum(ord(c) for c in branch_name)` です。 > > * `~/.claude/settings.json` の **PreToolUse フック** はタスク完了時に Poke にプッシュ通知を送信します。質問は `jq` で抽出し、メッセージを構築して `curl` で送信します。 > > * 全体のセットアップは、セキュリティ上隔離された消耗性 VM を使用し、潜在的な無制限利用を日次コストキャップ(約 $7)に限定しています。 > > * 開発者は電話で 10–20 分程度の Claude タスクを開始し、その間他の作業を行いながら通知が来るまで待つことができます。 この修正版要約は、すべての主要ポイントを完全に反映し、推論を避け、曖昧な表現を排除して情報を明確に提示しています。

**FreeBSD Home NAS – 第 3章 WireGuard VPN、ルーティング、および Linux クライアントの追加** --- ### 概要 本ガイドでは、FreeBSD 上で WireGuard VPN を構築し、LAN から出るすべてのトラフィックをトンネル経由にするようルーティングを設定し、Linux クライアントをピアとして追加する手順を説明します。 --- ## 1. WireGuard のインストール ```sh pkg install wireguard-tools ``` --- ## 2. キーの生成 ```sh wg genkey | tee server_private.key | wg pubkey > server_public.key ``` 各 Linux ピアでも同様に実行し、プライベート/パブリックキー対を取得します。 --- ## 3. `/etc/rc.conf` の設定 ```sh wireguard_enable="YES" wireguard_server0_interface="wg0" wireguard_server0_address="10.0.0.1/24" wireguard_server0_port="51820" ``` --- ## 4. `/usr/local/etc/wireguard/wg0.conf` の作成 ```conf [Interface] PrivateKey = <server_private_key> Address = 10.0.0.1/24 ListenPort = 51820 PostUp = ipfw add 100 fwd 10.0.0.2 out via enp0s3 PostDown = ipfw delete 100 ``` `enp0s3` は LAN インタフェースに置き換えてください。 --- ## 5. ピア(Linux マシン)の追加 ```conf [Peer] PublicKey = <peer_public_key> AllowedIPs = 10.0.0.2/32 Endpoint = <peer_ip>:51820 PersistentKeepalive = 25 ``` `wg0.conf` の `[Peer]` セクションに各ピアを追加します。 --- ## 6. IP フォワーディングの有効化 ```sh sysctl -w net.inet.ip.forwarding=1 ``` 永続化するには: ```sh echo 'net.inet.ip.forwarding="YES"' >> /etc/sysctl.conf ``` --- ## 7. ファイアウォールルールの適用(任意) ```sh sudo ipfw add 200 fwd 10.0.0.2 in on wg0 ``` ネットワーク構成に合わせて調整してください。 --- ## 8. WireGuard の起動 ```sh service wireguard start ``` 確認は: ```sh wg show ``` --- ## 9. Linux クライアントの設定 各 Linux ピアで `/etc/wireguard/wg0.conf` を作成します。 ```conf [Interface] PrivateKey = <peer_private_key> Address = 10.0.0.2/32 [Peer] PublicKey = <server_public_key> Endpoint = <freebsd_ip>:51820 AllowedIPs = 0.0.0.0/0, ::/0 PersistentKeepalive = 25 ``` クライアントを起動: ```sh sudo wg-quick up wg0 ``` --- ## 10. 動作確認 LAN デバイスから VPN ゲートウェイ(`10.0.0.1`)へ ping を実行し、traceroute でトラフィックがトンネル経由になっていることを確認します。 --- ### 注意点 - プライベートキーは安全に保管してください。ファイル権限は `chmod 600` を推奨します。 - LAN デバイスからのアクセス制御を行いたい場合は、ファイアウォールルールを調整してください。 - 複数の Linux ピアがある場合は、ステップ 9 を繰り返し、IP を `10.0.0.3`、`10.0.0.4` などに設定してサーバー側の `[Peer]` エントリも更新します。 | そっか~ニュース