経緯
ローカルのサーバーPCにTerrariaをインストールした。
しかしポート開放はめんどくさいのでOracleCloudでvmを借りて、そこにCloudflare Tunnelで接続しnginxでリバースプロキシを建てることで解決した。
ローカルTerrariaサーバーでのCloudflare Tunnelの設定
Cloudflare Tunnelのサーバー側の設定は公式ドキュメントに従ってDashbordのAccess→Tunnelsから行った。
ここで設定するホスト名はOCIから繋ぐ用なので適当な名前にしといたほうがいい。
OCIのvm上でのCloudflare Tunnelの設定
OCIのvm上でcloudflaredをインストールし、以下のコマンドでローカルのterrariaサーバーと接続する
cloudflared access tcp --hostname ここにホスト名 --url localhost:6666
nginxの設定
aptでnginxをインストールし、/etc/nginx/nginx.conf
のinclude
の下に以下を追加する
stream {
server {
listen 7777;
proxy_pass 127.0.0.1:6666;
}
}
設定ファイルの検証
sudo nginx -t
nginxを再起動する
sudo nginx -s reload
iptablesの設定
OCIのubuntuではiptablesでポートがブロックされているため開ける
sudo iptables -I INPUT 5 -p tcp --dport 7777 -j ACCEPT
設定を適用する
sudo /etc/init.d/netfilter-persistent save
sudo /etc/init.d/netfilter-persistent reload
OCIのセキュリティ・リストの編集
対象vmのサブネットからセキュリティリストの編集→イングレスルールを追加する
(任意)OCIのPublic IPにドメインを紐づける
OCIのIPを適当なドメインのAレコードとして登録するといろいろ嬉しいのでやっておく
おわり
多分これで繋がるはず。詰まったら@honahukuにでも声をかけてみてください