開発用の端末を、https://dev.xxxx.xxxx.jp のように使うためにinterlinkで固定IP化していたのだけど、遅くて使えない(たまにつながらないし)なので、aws をgatewayにして VPNを作った。

ポイントは、固定IPで入ると自分の端末に来る。

なので、https://dev.xxx.xxx.xxx のようにsslを使うことができる。
出て行く時は、固定IPなのでVPNとして使える。ちなみにSSLがかかっているので暗号化もされている。

使ったのは、wireguard

処理は以下の通り

🧾 WireGuard 固定IPゲートウェイ構成(最終手順書)


① サーバ準備(AWS EC2)

必須設定

  • Elastic IP付与(固定IP)
  • Source/Destination Check → OFF
  • セキュリティグループ
    • UDP 51820(WireGuard)
    • TCP 80 / 443(転送用)

② WireGuardインストール

apt update
apt install wireguard -y

③ サーバ設定

📄 /etc/wireguard/wg0.conf

[Interface]
PrivateKey = iJw4IUUSMd9mfGufOHdtMePSAYFOXmqUe7gIHLqYQHo=
Address = 10.0.0.1/24
ListenPort = 51820

# ===== NAT(固定IPで外に出る)=====
PostUp = iptables -t nat -A POSTROUTING -o ens5 -j MASQUERADE; iptables -A FORWARD -i wg0 -o ens5 -j ACCEPT; iptables -A FORWARD -i ens5 -o wg0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT; iptables -t nat -A PREROUTING -i ens5 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.2:80; iptables -t nat -A PREROUTING -i ens5 -p tcp --dport 443 -j DNAT --to-destination 10.0.0.2:443; iptables -A FORWARD -i ens5 -o wg0 -p tcp -d 10.0.0.2 --dport 80 -j ACCEPT; iptables -A FORWARD -i ens5 -o wg0 -p tcp -d 10.0.0.2 --dport 443 -j ACCEPT

PostDown = iptables -t nat -D POSTROUTING -o ens5 -j MASQUERADE; iptables -D FORWARD -i wg0 -o ens5 -j ACCEPT; iptables -D FORWARD -i ens5 -o wg0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT; iptables -t nat -D PREROUTING -i ens5 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.2:80; iptables -t nat -D PREROUTING -i ens5 -p tcp --dport 443 -j DNAT --to-destination 10.0.0.2:443; iptables -D FORWARD -i ens5 -o wg0 -p tcp -d 10.0.0.2 --dport 80 -j ACCEPT; iptables -D FORWARD -i ens5 -o wg0 -p tcp -d 10.0.0.2 --dport 443 -j ACCEPT

[Peer]
PublicKey = QuvNVBysz2iR+TqiV6WGMoZZPEkXzgZ9AHFrX+EM2n4=
AllowedIPs = 10.0.0.2/32

④ IPフォワード有効化

echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p

⑤ WireGuard起動

wg-quick up wg0

自動起動:

systemctl enable wg-quick@wg0

⑥ クライアント設定

[Interface]
PrivateKey = 2Dh/4hrFgEaos6aE1KuLjH3gc+wLy9/eliCUXI+EMmk=
Address = 10.0.0.2/24
DNS = 1.1.1.1

[Peer]
PublicKey = P4x7XyqPvoIByw2k/b+2K16zGFJXh69jUnz+onPzHFQ=
AllowedIPs = 0.0.0.0/0
Endpoint = 54.249.219.224:51820
PersistentKeepalive = 25

⑦ 動作確認

外向きIP確認(クライアント)

curl -4 ifconfig.me

👉 AWSのIPが出ればOK


受信確認

http://54.249.219.224

👉 MacのWebサーバが表示される


🎯 最終構成

外部 → AWS → (DNAT) → Mac
Mac → AWS → (MASQUERADE) → 外部

👉 完全固定IP双方向通信

これで、interlinkだと 10MBPS以下だったのが、t3smallで300MBpsくらいでる。

type5 Wifiなので、生だと800~900Mくらいなのだけど。

ちなみにC6Largeにすると1G出る。(有線だとVPS使わないと2GBpsくらい)

MACだと、きちんと、VPS扱いになってた。