開発用の端末を、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扱いになってた。