プライベート クラウド サーバー構築チュートリアル (ナニー レベル) - デスクトップ コンピューター + ubuntu + docker + nextcloud + mysql + ピーナッツ シェル イントラネットの侵入

記事ディレクトリ


序文

モバイル インターネットの発展に伴い、クラウド ストレージを使用してドキュメント、写真、ビデオ、その他のファイルを保存する人が増えています。いつからかわかりませんが、私たちは無意識のうちにクラウド ストレージ サービスに料金を支払うようになりました。一度アップロードすればどこからでもアクセスできるということが、人々の日常的な要求となってきています。クラウドネットワークディスクごとの月額定額料金と、ユーザーを無料ユーザー、一般会員、中級会員、上級会員に分けるという残酷な現実とともに、ますます厳しさを増すネットワーク文明の環境構築
一部のオーディオおよびビデオ リソースは調和されています。たとえば、ある国のこと、歌についての奇妙な話、人生におけるある爆発など。これらのリソースは、特定のクラウド ネットワーク ディスクに配置されている場合、削除される可能性があります。一部の AI アルゴリズムの過剰識別も、ユーザーに一定の損失を引き起こしました。
クラウド ネットワーク ディスクと比較すると、プライベート ネットワーク ディスクには、無料、大容量 (独自のハードディスクを購入するだけ)、セキュリティ、安定性といった明らかな利点があります。
この記事では、プライベート クラウド ネットワーク ディスクを設定するプロセスを紹介します。
自宅の書斎にデスクトップパソコンが眠っているので、最近それをインターネットに接続して個人用のクラウドサーバーにすることにしました。プライベート クラウド ネットワーク ディスク サービスとしてそのまま使用できます。
このチュートリアルでは主に次の内容について説明します: 家庭用デスクトップ コンピューター + Ubuntu 22.04.1 LTS + Docker + Nextcloud + Mysql + ピーナッツ シェルのイントラネット侵入


1.Nextcloudとは何ですか?

Nextcloud は、ネットワーク ドライブを作成するためのクライアント サーバー ソフトウェアのセットです。機能は Dropbox に似ていますが、Nextcloud は無料のオープンソース ソフトウェアであり、誰でもプライベート サーバーにインストールして実行できます。
Dropbox などの独自サービスと比較して、Nextcloud のオープン アーキテクチャにより、ユーザーはアプリケーションを使用してサーバーに追加機能を追加でき、ユーザーは自分のデータを完全に制御できます。
Nextcloudの利点:

  • セキュリティ: 機密かつ重要な個人プライバシー データ。自分の個人データが漏洩したり、他人に販売されたりすることを心配する必要はありません。たとえば、自宅に監視カメラを設置している場合、その監視ビデオを特定のクラウド ネットワーク ディスクに置くかどうか心配です。
  • マルチクライアントのサポート: IOS、Android、Windows、MacOS、Linux、Web ブラウザ
  • 一般的なオフライン ダウンロードのニーズを満たす
  • 基本的なオンラインオーディオおよびビデオ再生機能をサポート
  • マルチアプリケーションのサポート: オンライン オフィス、メモ、同期された連絡先、カレンダー、オンライン コラボレーション、音声およびビデオ通話、メールボックス
  • 実際、Nextcloud は企業内での使用に適しています。

2. インストール手順

私の自宅のコンピューターのオペレーティング システムは ubuntu です。
Docker を使用すると、アプリケーション ソフトウェアのインストールと構成を大幅に簡素化できます。Linux に直接ソフトウェアをインストールする場合と比較して、Docker コンテナーを使用すると、インストールと構成にかかるコストを削減できます。この記事では、Nextcloud コンテナと Mysql コンテナを Docker にインストールします。
ソフトウェアをインストールして構成したら、イントラネット侵入テクノロジーを使用して、インターネット (外部ネットワーク) 上のデバイスが自宅のコンピューター上の Nextcloud サービスにアクセスできるようにする必要があります。

1.ドッカーをインストールする

1.1 適切なアップデート

sudo apt-get update

ここに画像の説明を挿入

1.2 apt が HTTPS 経由でリポジトリを使用できるようにする

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

ここに画像の説明を挿入

1.3 Docker の公式 GPG キーを追加する

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

ここに画像の説明を挿入
安定したリポジトリ (ここでは x86_64/amd64) をセットアップします。
echo
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux /ubuntu
$(lsb_release -cs) 安定版」 | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

ここに画像の説明を挿入

1.4 ドッカーをインストールする

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

1.5 Docker が正常にインストールされていることを確認する

sudo docker run hello-world

ここに画像の説明を挿入

2.docker は nextcloud コンテナをインストールします

2.1 nextcloud をプルする

sudo docker pull nextcloud

ここに画像の説明を挿入

nextcloud を実行する 2.2 Docker

sudo docker run --name nextcloud -p 9001:80 -v /home/workSpace/nextcloud/data:/var/www/html/data -d nextcloud

ここに画像の説明を挿入
–name: コンテナ名を nextcloud に設定します
-p 9001:80: ポート マッピング、ホスト ポート 9001 をコンテナ内のポート 80 にマップします
-v /home/workSpace/nextcloud/data:/var/www/html/data がコンテナになりますプロジェクト内のプロジェクトのデータ ディレクトリは、構成を容易にするためにローカルの /home/workSpace/nextcloud/data ディレクトリにマップされます。
-d nextcloud、プルするイメージ名

2.3 実行中のコンテナの表示

sudo docker ps

ここに画像の説明を挿入

2.4 nextcloud に初めて入る

ブラウザに IP アドレス + ポート 9001 を入力します (9001 は上で設定したポートです)。
初めて nextcloud に入ると、管理者アカウントを作成するよう求められます。
[ストレージとデータベースのオプション] データベースはデフォルトで SQLlite を選択します。ファイル同期クライアントを使用している場合は、SQLite を使用しないことを強くお勧めします。ここで Mysql を選択します
ここに画像の説明を挿入
ここに画像の説明を挿入
mysql がまだインストールされていないため、mysql を再度インストールする必要があります

2.5 docker は nextcloud コンテナを自動的に起動するように設定します

sudo docker update --restart=always nextcloud

ここに画像の説明を挿入

3 docker install mysqlコンテナ

3.1 docker pull mysqlコンテナ

sudo docker pull mysql:latest

ここに画像の説明を挿入

3.2 mysqlコンテナの設定

3.2.1 mysqlの初期設定

sudo docker run -itd --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
  • -p 3307:3306 : コンテナ サービスのポート 3306 をホストのポート 3307 にマップします。これにより、外部ホストはホスト ip:3307 を通じて MySQL サービスに直接アクセスできるようになります。

  • MYSQL_ROOT_PASSWORD=123456: MySQL サービスの root ユーザーのパスワードを設定します

ここに画像の説明を挿入

3.2.2 mysqlコンテナに入る

sudo docker exec -it mysql bash
  • - インタラクティブな環境を提供します

  • bash インスタンスに入った後、bash プログラムを起動します。

ここに画像の説明を挿入

3.2.3 mysqlへのログイン

mysql -u root -p
Enter password:123456

ここに画像の説明を挿入

3.2.4 nextcloudのデータベースを作成する

create database nextcloud charset=utf8;

ここに画像の説明を挿入

3.3 docker は mysql コンテナを自動的に起動するように設定します

sudo docker update --restart=always mysql

ここに画像の説明を挿入

4 mysql データベースに接続するように nextcloud を構成する

ブラウザは nextcloud 設定ページに戻り、データベースは mysql ホスト名を選択し、設定後に
ip:port (localhost+port の場合、エラーが報告されると言われていますが、理由は不明です) を入力する必要があります。
「インストール」をクリックします

ここに画像の説明を挿入
推奨アプリのインストールを選択します。
ここに画像の説明を挿入
ここに画像の説明を挿入

この時点で、Nextcloud は正常にインストールされました。

5 nextcloud へのイントラネット アクセス

5.1 LAN 環境では、イントラネット IP が nextcloud にアクセスします

nextcloud をインストールすると、LAN 内のイントラネット IP 経由で nextcloud にアクセスできるようになります。
ここに画像の説明を挿入

5.2 信頼できるドメイン名 (ホワイト リスト) を追加するように nextcloud を設定する

Nextcloud サーバーへのアクセスに使用されるすべての URL は、config.php ファイルの Trusted_domains 設定でホワイトリストに登録されている必要があります。ユーザーは、trusted_domains 設定にリストされている URL をブラウザで参照する場合にのみ Nextcloud にログインできます。

ps: 以下の方法では、主にグラフィカル ユーザー インターフェイスの場合に nextcloud にドメイン名を追加する方法について説明します。
ターミナル上で vim 操作を行うことで記事を参照できます: [Docker] nextcloud プライベート ネットワーク ディスクを構築し、外部ネットワークをマッピングする

5.2.1 ubuntu グローバル検索 nextcloud 設定ファイル config.php

config.php がどこに保存されているかわからないため、検索コマンドを使用してコンピューター上の config.php ファイルを検索します。

sudo find / -name "config.php"

ここに画像の説明を挿入
暫定的な判断では、このパスは正しいはずです
/var/lib/docker/volumes/58fa050d3863d3128837d86707d0b1f92050f7bf40bfdbf3fa38cbfc3350e2cc/_data/config

5.2.2 root 権限を使用して、グラフィカル ユーザー インターフェイスからファイル マネージャーを開き、Docker インストール ディレクトリに入ります。

グラフィカル ユーザー インターフェイスのファイル マネージャーから /var/lib/docker と入力すると、docker フォルダーの右下隅に赤いバツ印が表示されます。これは、root 権限がないと現在のアカウントを表示できないことを示しています。
ここに画像の説明を挿入
ファイルマネージャーを開くにはroot特権アカウントを使用します

ターミナルのrootアカウントでファイルマネージャーを開きます。

sudo nautilus

ここに画像の説明を挿入

OK、ポップアップ ファイル マネージャーに入力できるようになりました。

/var/lib/docker/volumes/58fa050d3863d3128837d86707d0b1f92050f7bf40bfdbf3fa38cbfc3350e2cc/_data/config

ここに画像の説明を挿入
config.phpを右クリック→テキストエディタで開くと編集できるようになり、
ここに画像の説明を挿入
trusted_domainsに「localhost:9001」が追加されていることがわかります。この config.php ファイルが探しているファイルであることを説明します。nextcloud のイントラネット アドレス (私のアドレスは 192.168.31.31:9001) を Trusted_domains の下に追加します。

ここに画像の説明を挿入
追加が成功したら、LAN (イントラネット) 上のブラウザから nextcloud に再度アクセスします。
ここに画像の説明を挿入
イントラネットへのアクセスに成功しました!

6. イントラネットの浸透

ソフトウェアをインストールして構成した後は、Nextcloud をローカル エリア ネットワーク (イントラネット) でのみ使用できます。自宅のコンピューターをインターネット (外部ネットワーク) に接続するには、イントラネット侵入テクノロジを使用する必要があります。イントラネットへの侵入は、次の 3 つの方法で実現できます。

6.1 ubuntuにピーナッツシェルをインストールする

詳細なチュートリアルについては、Peanut Shell 5.0 for Linux チュートリアルを参照してください。

6.1.1 wegetのインストール

アップデートソフトウェアリスト

sudo apt-get update

ここに画像の説明を挿入

wget ツールをダウンロードする

sudo apt-get install wget

ここに画像の説明を挿入
ダウンロードしてインストールされた wget のバージョンを確認します。

wget --version

ここに画像の説明を挿入

6.1.2 ピーナッツ シェル インストール パッケージをダウンロードする

ダウンロードアドレス:ピーナッツシェルクライアント公式ダウンロード
ここに画像の説明を挿入

wget "https://down.oray.com/hsk/linux/phddns_5.2.0_amd64.deb" -O phddns_5.2.0_amd64.deb

ここに画像の説明を挿入
ここに画像の説明を挿入
[メインディレクトリ]にインストールパッケージがダウンロードされたことが確認できます。

6.1.3 インストール

インストーラーを実行してみましょう。

sudo dpkg -i phddns_5.2.0_amd64.deb

ここに画像の説明を挿入
インストール成功。

6.2 Peanut Shell が自動的に起動するように設定する

sudo phddns enable

ここに画像の説明を挿入

6.3 ピーナッツシェルのイントラネット侵入の設定

ubuntu ブラウザを使用してピーナッツ シェル Web サイト http://b.oray.com にアクセスし
ここに画像の説明を挿入
、[SN ログイン] を選択し、インストール中にピーナッツ シェル Linux が生成した SN コードとデフォルトのログイン パスワード admin を入力してログインします。
ここに画像の説明を挿入
初めてログインするときは、まずアクティブ化する必要があります。スキャン コード アクティベーションとパスワード アクティベーションの 2 つの方法が用意されており、柔軟に選択できます。このタイプをアクティブにするコードをスキャンすることを選択します。
ここに画像の説明を挿入
携帯電話で Peanut Shell APP を使用してコードをスキャンし、アクティブ化します。

アクティベーションが成功したら、ピーナッツ シェル管理プラットフォームに入ります。SN コードにバインドされたアカウントに動的ドメイン名解決機能のみがあり、イントラネット侵入機能を使用する必要がある場合は、「無料でアクティブ化」をクリックするか、アカウントをイントラネット侵入機能を備えたサービス バージョンに直接アップグレードできます。 。

ここに画像の説明を挿入
イントラネットペネトレーションマッピングを追加する場合は、ページ上の「マッピングの追加」ボタンをクリックします。
ここに画像の説明を挿入
ページのプロンプトに従ってマッピングに必要な情報を入力します。次は、Ubuntu システムの SSH サービス (ポート 22) をマッピングする例です。

①アプリケーション名:カスタム

②アプリアイコン:自分で選択

③マッピングタイプ:TCPを選択します。

④マッピングテンプレート:今のところテンプレートを選択しないでください

⑤ エクストラネット ドメイン名: エクストラネット アクセスに使用するドメイン名を選択します (ここでのドメイン名を購入する必要があります)
購入リンク: https://hsk.oray.com/parts-center/domain.html

⑥インターネットポート:動的ポートを選択します

⑦イントラネットホスト: マッピングされた Ubuntu システムのイントラネット IP アドレス

⑧イントラネット ポート: マップされたサービス タイプはポート 22 に対応します。

⑨帯域幅: マッピング帯域幅を購入した後、マッピングへの追加帯域幅の割り当てをサポートできます。ここでデフォルトを保存します。

マッピング内容が正しいことを確認したら、「OK」をクリックします。

ここに画像の説明を挿入
[OK]をクリックすると、イントラネットへの侵入が成功します。
ここに画像の説明を挿入

私たちは外部ネットワークコンピュータ上にいます。ブラウザを開いて、ドメイン名を介して Nextcloud にアクセスします。
ここに画像の説明を挿入
このページに入ると、イントラネットへの侵入が成功したことがわかりますドメイン名は正常にホーム コンピュータを指すようになりました。
ただし、現在のデバイスに対応する IP が自宅のコンピューター上の Nexcloud サービスにアクセスできるようにするには、アクセス ドメイン名のホワイトリストを Nextcloud に追加する必要があります。

6.4 信頼できる外部ネットワークのドメイン名 (ホワイト リスト) を追加するように nextcloud を設定する

nextcloudに信頼できるドメイン名を追加する設定方法については5.2を参照してくださいので、ここでは詳しく説明しません。
ここに画像の説明を挿入
docker restart nextcoud

sudo docker restart nextcloud

ここに画像の説明を挿入
設定完了後、ブラウザにドメイン名を入力すると以下のページが開きます。
ここに画像の説明を挿入
実を言うと、ここまで来て心が折れてしまいました。
ここに画像の説明を挿入
そこで、Peanut Hull が購入したドメイン名に問題があるのではないかと思いつきました。次に、ドメイン名が https プロトコルを使用していること、および nextcoud がデフォルトでは https を許可していないことを確認しました。nectcoudを再度設定する必要があります。

6.5 https ドメイン名を許可するように nextcloud を設定する

ステップ 5.2 を参照して、「
/var/lib/docker/volumes/58fa050d3863d3128837d86707d0b1f92050f7bf40bfdbf3fa38cbfc3350e2cc/_data/config」
と入力してファイル config.php を開き
、次の文を追加します。

'overwriteprotocol' => 'https',

ここに画像の説明を挿入
docker restart nextcoud

sudo docker restart nextcloud

ここに画像の説明を挿入
外部ドメイン名を再度開くと、正常にアクセスできます~
ここに画像の説明を挿入
ここに画像の説明を挿入

7. nextcloudを使用する

各クライアント アプリのダウンロード Web サイト: https://nextcloud.com/install/#install-clients
使用方法はnextcoud 公式 Web サイトを参照してください。ここでは詳しく説明しません。

要約する

この時点で、nextcloudのクラウドストレージサービスを簡単に利用できるようになります。
もちろん、nextcloud にはクラウド ノート、メールボックスなどの他のクラウド サービスもあります。設定を通じて使用することもできます。
私はLinuxにあまり詳しくないので、3週間に渡って断続的にこの記事をまとめましたが、役に立ったと思っていただけましたら、ワンクリックトリプルリンクをお願いします。はは~
書くのは難しいので、転載する場合は出典を明記してください~。
ここに画像の説明を挿入

参考記事:

ubuntu20.04 dockerをインストールする docker install nextcloud

docker が mysql install nextcloud を作成します

実行中の Docker コンテナのポート マッピングを変更する方法を説明する 3 つの方法

[Docker] nextcloud プライベート ネットワーク ディスクを構築し、外部ネットワークをマッピングする

Linux 用ピーナッツ シェル 5.0 チュートリアル

Docker でイメージ情報を表示する

https://github.com/nextcloud/server/issues

おすすめ

転載: blog.csdn.net/guigenyi/article/details/126692747