0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

共有回線で自宅サーバーを公開できるようにしてみた

Last updated at Posted at 2025-02-09

概要

自宅の回線が共有になっており、サーバーが公開できない状態になっていました
(共有回線のため大本のルーター設定をこちらでできない)

さくらVPSを利用し、自宅サーバーとVPNしポートフォワードすることで任意のポートを公開できるようにしてみました

今回は、とりあえずポート80を公開しapacheのデフォルトページをさくらVPSのグローバルIPにアクセスしたら表示できるようしてみます

利用環境
■さくらVPS
・OS ubuntu
・512Mプラン
■自宅
・OS proxmox
・CPU 5700g
・メモリ 32GB
・VM ubuntu
・VM設定(割り当て)
 └メモリ16GB
  CPU6コア

手順

さくらVPSをレンタルする

基本ポートフォワードするぐらいなので、512MBのプランで契約しました
image.png

パケットフィルターを設定する

デフォルトですと、ポート22がすべてになっているので
自宅のグローバルIPだけに変更しておきます
そのほどHTTPでアクセスし、動作確認もするのでこの段階でポート80もあけておきます
(こちらも念のため、自宅のグローバルIPだけ許可しました。)
image.png

さくらVPSの初期設定をする

SSHでVPSにログインし、下記コマンドを実行する

sudo apt update
sudo apt upgrade
sudo reboot

これで最新バージョンにアップデートが完了します

最後のrebootを実行すると、VPSが再起動するのでSSHで再接続してください
いきなり接続がきれるので、初めての人はびっくりするかもしれませんが安心してください

WireGuardをインストールする(さくらVPS)

下記コマンドを実行する

sudo apt install wireguard

VPN接続に利用する秘密鍵を作成する

wg genkyey | sudo tee /etc/wireguard/vps.key

公開鍵を作成する

sudo cat /etc/wireguard/vps.key | wg pubkey | sudo tee /etc/wireguard/vpsPublic.key

作成したキーはchmodを使い600にしておくといいかと思います
しなくても動きますが、セキュリティを考えると上記にしたほうが無難です

自宅サーバーの設定をしていく

基本的には、さくらVPSと同じコマンドを入力していきます
下記内容を順番に入力してください

sudo apt update
sudo apt upgrade
sudo reboot

sudo apt install wireguard
wg genkyey | sudo tee /etc/wireguard/jitaku.key
sudo cat /etc/wireguard/jitaku.key | wg pubkey | sudo tee /etc/wireguard/jitakuPublic.key

これでさくらVPSと自宅サーバーにwireguardのキー作成まで終わりました

wg0.confの設定をしていく

さくらVPS、自宅サーバーそれぞれに設定していきます
両方ともファイルの場所は下記になり、vimあたりのコマンドで新規作成してください

/etc/wireguard/wg0.conf

さくらVPS側の設定

[Interface]
PrivateKey = 作成したさくらVPSの秘密鍵
Address = 172.16.0.1 (サーバーのインターフェイスに割り当てるIPアドレス)
ListenPort = 51820

[Peer]
PublicKey = 作成した自宅サーバーの公開鍵
AllowedIPs = 172.16.0.2/32 (クライアントに割り当てたIPアドレス)

自宅PC側の設定

[Interface]
PrivateKey = 自宅サーバーの秘密鍵
Address = 172.16.0.2 (クライアントのIPアドレス)

[Peer]
PublicKey = さくらVPSの公開鍵
EndPoint = さくらVPSのグローバルIPアドレス:51820
AllowedIPs = 172.16.0.0/24 (WireGuardを経由して通信する先のIPアドレス)

ポートフォワードの設定をする

さくらVPS側で下記コマンドを実行する

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 172.16.0.2:80
sudo iptables -t nat -A POSTROUTING -p tcp -d 172.16.0.2 --dport 80 -j SNAT --to-source 172.16.0.1

# 外部インターフェース(例:ens3)にマスカレードを適用
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

外部インターフェースについては、ip aのコマンドで外部に向かっているものを指定してください

wireGuardの起動

さくらVPSで下記コマンドを実行してください

sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

その後自宅サーバーで下記をコマンドを実行してください

sudo wg-quick up wg0

疎通確認をする

念のためさくらVPSと自宅サーバーからそれぞれpingをうってみてください
成功すると応答が返ってきます

自宅サーバーにapacheをインストールする

下記コマンドを実行してください

sudo apt install apache2
sudo systemctl start apache2

これで自宅サーバーにapacheのインストールと、起動が完了します

最終確認

成功すると、さくらVPSのグローバルIPにアクセスすると自宅サーバーにインストールされているapacheのページが開きます。

まとめ

ずっとAWS側ばかり触ってきましたが、linuxの設定を本格的にやってみました。
この方法ならRTX1200などのVPNルーターも不要ですし、環境の用意はしやすいのかなと思います。
今回はapacheでしたが、ゲームサーバーでも公開してみようと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?