ラズベリヌパむ4のRadxasata垜子私たちず䞀緒のホヌムサヌバヌ、ドッカヌのvpnを介したクラりドずトレントのダりンロヌド

暊幎が終わりに近づいたので、政府はロックダりンを厳しくし、䌑日に制限を課したした。週末は10日間先だったので、しばらくの間孵化しおいたホヌムサヌバヌのセットアップに専念するのが適切な時期であるず刀断したした。



パヌト1。コンピュヌタヌずコンポヌネントの遞択



ホヌムサヌバヌの䞻な芁件は、コンパクトさず䜎消費電力でした。コンピュヌタヌずしお、私はさたざたなシングルボヌドデバむスを怜蚎し、x64アヌキテクチャのシングルボヌドデバむスに぀いおも考えたした。䞻な怜玢基準は、8 GBからの過剰なRAM、最新のポヌトusb3.0およびギガビットLANでした。アむデアは、ハヌドドラむブにusb-satむンタヌフェむスを䜿甚しお、すべおをある皮のminiATXボックスにボルトで固定するこずでした。私はこの実珟が矎的に奜きではなかったので、急いで実装したせんでした。突然、ラダの䞭囜人から4番目のラズベリヌを求めおアメリカのクゞラに出くわしたした 。



私が理解しおいるように、サタハット自䜓はすでにしばらく前に発衚されおおり、限定版ではすぐに売り切れたした。しかし今回、䞭囜人も箱を提䟛したした。党䜓の構造は非垞にコンパクトに芋え、私の手でもそれを自分で行うこずはできたせんでした。私はこのボックスをグヌグルで怜玢し、YouTubeで有料のレビュヌを1぀芋぀けたした。原則ずしお、それは私に適しおいたした。バッチがすぐに売り切れおしたい、プロモヌションのために電源が無料で提䟛された可胜性が高いので、長い間考えないこずにしたした。深センからの速達でのサタ垜子の箱は、賌入時に私に€125.23の費甚がかかりたした。ボックスを遞択するず、コンピュヌタヌの遞択肢が4番目のラズベリヌに自動的に絞り蟌たれたした。これは、8GBのRAMを搭茉したモデル甚にAmazonから79.97ナヌロで賌入したした。たた、Amazonでは2台のハヌドドラむブVD 2.5” 2 TBをそれぞれ63.81ナヌロで賌入したした。aliexpressで15.25ナヌロのSamsungEVO 120SDカヌド。合蚈€348.07、私は読者が財政問題に興味があるだろうず思いたした。



これらすべおのものは非垞に簡単に組み立おられ、芪愛なる䞭囜の同志がすべおの面倒を芋おくれたした。䟋を䞋の画像に瀺したす。たた、組み立おられたデバむスの短いビデオをいく぀か録画したした。デバむスを泚文したずきに気づかなかった楜しい瞬間に぀いお



  • 本䜓は䞀枚の金属でできおおり、倖偎は癜いペンキで塗装されおいたす。
  • 通気孔のある底も金属補です。
  • 取り付けネゞずナット金属金属ではなく、倧きなファン甚の穎のある䞊郚のプラスチック補の半透明カバヌのみ。
  • 次のリビゞョンのsata垜子であり、vloggerがYouTubeに持っおいたものではなく、バッテリヌコネクタが付いおいたす。
  • 小さな氷の画面には、システムの状態に関する情報が衚瀺されたす。
  • 倧きなファンずアむススクリヌンは、PythonスクリプトであるRadhaの゜フトりェアをむンストヌルするこずで機胜し、タヌミナルで1぀のコマンドを入力するこずでむンストヌルされたす。


画像



デフォルトでは、䞊郚ファンには、プロセッサの枩床に応じお4぀の動䜜モヌドがあり、回転の匷さず生成されるノむズが異なりたす。レベル1ではほずんど聞こえず、レベル2は聞こえ、3〜4は聞こえすぎたす。このために、実際には、pythonスクリプトが責任を負いたす。







䞀般的に、私はこのデバむスに満足しおいたしたが、1぀のコメントがありたした。キットはAlishechkaで簡単に泚文できるランニングアむスシヌルドを䜿甚しおいたすが、シヌルドはボヌドにはんだ付けされおいるため、䞭囜人はボヌド䞊のFPC / FCCコネクタを䜿甚する必芁はありたせんでした。これにより、たずえばバヌンアりトの堎合のアむススクリヌンの亀換が倧幅に簡玠化されたす。



2.



さお、すべおが組み立おられたした。゜フトりェアのセットアップを始めたしょう。コピヌペヌストをあふれさせないので、怜玢ラむンからハりタぞのリンクで䞀般的なポむントが衚瀺されたす。䞀郚はスキップしたすが、萜ずし穎に぀いお詳しく説明したす。 自分で曞いたKanoniklをむンストヌルするための



玠晎らしいガむドであるオペレヌティングシステムubuntuサヌバヌ20.04.1を遞びたした 。次に、マナに埓っおRadhaから゜フトりェアをむンストヌルしたす 。ここに萜ずし穎番号1がありたした。実際、特定の急流のニヌズにはVPNを䜿甚する必芁がありたしたが、私のVPNプロバむダヌはIPv6をサポヌトしおいたせん。プロバむダヌにopenvpnを蚭定したずき、たずえば、匿名性がIPv6を正確に通過するこずがわかりたした。さお、システムレベルでは、UbuntuでIPv6を非垞に簡単にオフにするこずができたす。



どのくらい正確に
sysctl



$ sudo nano /etc/sysctl.conf
      
      









	net.ipv6.conf.all.disable_ipv6=1
	net.ipv6.conf.default.disable_ipv6=1
	net.ipv6.conf.lo.disable_ipv6=1
      
      





:



$ sudo sysctl -p
      
      





, 6 , :



$ sudo nano /etc/rc.local
      
      





:



	#!/bin/bash
	# /etc/rc.local
	/etc/sysctl.d
	/etc/init.d/procps restart
	exit 0
      
      





:



$ sudo chmod 755 /etc/rc.local
      
      







しかし、その埌、予期しないこずが起こり、箱の倧きなファンがたったく機胜しなくなりたした。

ハヌドりェアの故障の可胜性を排陀しお、私は゜フトりェアの原因を探し始めたした。rockpi-sataサヌビスのステヌタス出力には、fan.pypythonスクリプトに関連する゚ラヌが衚瀺されおいたした。



ubuntu@ubuntu:~$ sudo service rockpi-sata status
● rockpi-sata.service - Rockpi SATA Hat
Loaded: loaded (/lib/systemd/system/rockpi-sata.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-12-25 17:16:07 CET; 11min ago
Main PID: 1879 (python3)
Tasks: 4 (limit: 9252)
CGroup: /system.slice/rockpi-sata.service
├─1879 /usr/bin/python3 /usr/bin/rockpi-sata/main.py on
├─2896 /usr/bin/python3 /usr/bin/rockpi-sata/main.py on
├─2897 /usr/bin/python3 /usr/bin/rockpi-sata/main.py on
└─2898 /usr/bin/python3 /usr/bin/rockpi-sata/main.py on

Dec 25 17:16:57 ubuntu python3[2899]: self._target(*self._args, **self._kwargs)
Dec 25 17:16:57 ubuntu python3[2899]: File “/usr/bin/rockpi-sata/fan.py”, line 81, in running
Dec 25 17:16:57 ubuntu python3[2899]: change_dc(get_dc())
Dec 25 17:16:57 ubuntu python3[2899]: File “/usr/bin/rockpi-sata/fan.py”, line 75, in change_dc
Dec 25 17:16:57 ubuntu python3[2899]: gpio.hardware_PWM(12, 25000, dc * 10000)
Dec 25 17:16:57 ubuntu python3[2899]: File “/usr/local/lib/python3.8/dist-packages/pigpio.py”, line 2044, in hardware_PWM
Dec 25 17:16:57 ubuntu python3[2899]: return _u2i(_pigpio_command_ext(
Dec 25 17:16:57 ubuntu python3[2899]: File “/usr/local/lib/python3.8/dist-packages/pigpio.py”, line 1062, in _pigpio_command_ext
Dec 25 17:16:57 ubuntu python3[2899]: sl.s.sendall(ext)
Dec 25 17:16:57 ubuntu python3[2899]: AttributeError: ‘NoneType’ object has no attribute ‘sendall’
      
      





これは、GPIO初期化方法以倖は興味深いものではありたせん。このために、クラス党䜓がそこに曞かれおいたす



class MockPigpio:
    @classmethod
    def pi(cls):
        try:
            host = misc.check_output("netstat -l | grep -o '\S*:8888' | tr -d ':8888'")
            gpio = pigpio.pi(host=host)
        except Exception:
            gpio = cls()
        return gpio

    def __init__(self):
        syslog.syslog('PWM of pigpio is not available. Use on/off to control the fan.')
        syslog.syslog('If you use pre-release kernel, please go back to stable release.')

    def hardware_PWM(self, pin, _, dc):
        misc.set_mode(pin, bool(dc))

gpio = MockPigpio.pi()
      
      





コマンドnetstat-l |によっお衚瀺される、ホストを初期化するためにこの倀がどのように䜿甚されるのか疑問に思いたした。grep -o '\ S *8888' | tr -d '8888'



ipv6-localhost
      
      





IPv6が無効になっおいる堎合、コマンドは空の行を出力し、スクリプトは機胜したせん。率盎に蚀っお、私は最初は長い道のりを歩みたした。ホストの初期化が詳现に蚘述されおいるpythonモゞュヌルpigpio.pyを調べたずころ、原則ずしお、pigpio.piメ゜ッドには匕数が必芁ないこずがわかりたした。fan.pyスクリプト内で、lcoalhost匕数やその他の芚えおいないオプションを䜿甚しお、匕数なしでこのメ゜ッドを呌び出すためのオプションを詊したが倱敗したしたが、私は著者より賢くないこずに気付き、簡単な方法で進みたした。実際、PIGPIOモゞュヌルはIPv4モヌドで呌び出すこずができたす。このため、線集する必芁があるのは1぀のファむルだけです。



$ sudo nano /lib/systemd/system/pigpiod.service
      
      





そしお、ExecStartパラメヌタヌを次の倀に修正したす



ExecStart=/usr/local/bin/pigpiod -l -m -n 127.0.0.1 -p 8888
      
      





ここで、コマンドnetstat -l | grep -o '\ S *8888' | tr -d '8888'プリント



localhost
      
      





そしおファンが動いおいたす



パヌト3。トラフィックの分離



さらに、レむドタむプ1、サンバ、openvpn、トランスミッションデヌモン、ufvのキルスむッチが蚭定されたした。これらの手順の説明は、平均的な読者が自分でグヌグルできるず思いたす。



結果ずしお埗られるデバむスのパフォヌマンスは、原則ずしお正垞です。コピヌするずどこが遅くなるのかわかりたせんが。これは、合蚈サむズが玄40GBの39のアニメ゚ピ゜ヌドを含むパパをコピヌする䟋です。



画像



そしお、これは1぀の倧きなファむルをダりンロヌドする䟋です。



画像



システムは、必芁なずきにい぀でもフルギガビットネットワヌクリ゜ヌスを䜿甚できるこずがわかりたす。コピヌ速床のドロヌダりンに぀いおはただ扱っおいたせん。



2番目の萜ずし穎は、sataハットには圓おはたりたせんが、実際には、マテリアルカルチャヌのオブゞェクトずしおのLinuxサヌバヌに圓おはたりたす。タスクは、サヌバヌがさたざたなタスクに䜿甚されるこずでした。倖郚からノックするWebサヌバヌクラりドず、vpnを介した遞択されおいないビットストリヌムポンプがありたす。問題は、すべおが䞊行しお機胜するように、䜕らかの方法でトラフィックを分離する必芁があるこずでした。私の最初の考えは、ファむアりォヌルを蚭定するこずでした。次のルヌルを䜿甚したした。



$ sudo ufw default deny incoming
$ sudo ufw default deny outgoing
$ sudo ufw allow in on eth0 from 192.168.178.1
$ sudo ufw allow out on eth0 to 192.168.178.1
$ sudo ufw allow in on eth0 from 192.168.178.20
$ sudo ufw allow out on eth0 to 192.168.178.20
$ sudo ufw allow in on eth0 from any to any port 22,443 proto tcp
$ sudo ufw allow out on eth0 from any to any port 22,443 proto tcp
$ sudo ufw allow in on eth0 from any to any port 1194 proto udp
$ sudo ufw allow out on eth0 from any to any port 1194 proto udp
$ sudo ufw allow out on tun0 from any to any
$ sudo ufw allow in on tun0 from any to any
      
      





すべおがうたくいくず玠朎に信じおいたす。ロヌカルネットワヌクで䜿甚しおいるez0ず、倖郚からサヌバヌをノックする必芁のあるいく぀かのポヌトを陀いお、ファむアりォヌルがtun0を介しおすべおの接続をリダむレクトする可胜性があるずいう考えでした。この構成は、ロヌカルネットワヌク䞊で、たたはvpnが無効になっおいる堎合に正垞に機胜したす。蚱可された接続以倖の接続は通過したせん。 vpnがオンの堎合、倖郚ずの接続を確立するこずはできたせん。パッケヌゞは到着したすが、応答はez0を介しおリダむレクトされたせんが、tun0を介しおロッドにリダむレクトされたす。 2日間過ごしたしたが、それでも修正方法がわかりたせんでした。必芁なコンテナがすでにあるので、dockerを詊しおみるこずにし たした。



これは、dockerでの私の最初の経隓でした。私にずっおは難しかったです。どこから始めればよいのか、dockerずdocker-composeの違いは䜕か、リンクからのgitの内容は䜕か、画像は䜕か、コンテナは䜕か、このコンテナをどのように構築したのかただわかりたせん。ロヌカルで、そしおドッカヌが構成するものはむンタヌネットからダりンロヌドされたしたが、これはうたくいきたした。



リポゞトリを解凍した埌、docker-compose.ymlファむルを線集する必芁がありたす。そしお、その内容を次のように倉曎したす。



version: '2'
services:
 transmission:
  image: haugene/transmission-openvpn
  container_name: vpntrans
  cap_add:
    - NET_ADMIN
  devices:
    - /dev/net/tun
  restart: always
  ports:
    - "9092:9091"
  dns:
    - 8.8.8.8
    - 8.8.4.4
#  sysctls:
    - net.ipv6.conf.all.disable_ipv6=1
  volumes:
    - /etc/localtime:/etc/localtime:ro
    - /mnt/raid0/downloads/:/data
  environment:
    - OPENVPN_PROVIDER=SURFSHARK
    - OPENVPN_CONFIG=mk-skp_udp
    - OPENVPN_USERNAME=*your username*
    - OPENVPN_PASSWORD=*your password*
    - OPENVPN_OPTS=--inactive 3600 --ping 10 --ping-exit 60
    - LOCAL_NETWORK=192.168.178.0/24
# proxy:
    - WEBPROXY_ENABLED=false
    - TRANSMISSION_PORT_FORWARDING_ENABLED=true
    - TRANSMISSION_PEER_PORT=51413
    - PUID=1000
    - PGID=100
      
      





この構成では、必芁に応じお䜿甚する堎合は、倖郚コンテナ甚ポヌトの倀、送信デヌモンがデヌタを保存するポヌトぞのパス、およびその蚭定を線集できる堎所に泚意を払う必芁がありたす。ロヌカルネットワヌク。たた、リストからVPNプロバむダヌを構成する必芁がありたす 。私はsurfsharkを䜿甚したすが、OPENVPN_CONFIGパラメヌタヌの倀によっお、構成の遞択が決たりたす実際、この倀は、必芁な構成ファむルの名前です*接続する特定のサヌバヌの.ovpnファむル。この䟋では、サヌバヌは北マケドニア共和囜にありたす。



次に、蚭定を䜿甚しおコンテナをビルドしお実行したす。



$ sudo docker-compose up
      
      





すべおがうたくいけば、openvpnクラむアントログの最埌に接続の確立が成功したこずが衚瀺されたす。たあ、そうでなくおも、远加の工数を必芁ずする別のVPNプロバむダヌを䜿甚しおいるこずをあなたは決しお知りたせん。ただし、すべお問題がなければ、cntrl-sを抌しお、バックグラりンドでプロセスずしおコンテナを開始できたす。ちなみに、コンテナは、システムの起動時に自身を起動し、゚ラヌが発生した堎合に再起動する方法をすでに知っおいたす。



$ sudo docker start vpntrans
      
      





パラノむアを萜ち着かせるには、コンテナ内のコン゜ヌルに移動したす。



$ sudo docker exec -ti vpntrans /bin/bash
      
      





そしお、パブリックIPアドレスを確認したす。



$ curl ifconfig.co/json
      
      





すべおがうたくいけば、結論は次のようになりたす。



画像



それでも、このような テストは、非垞に揺れるパラノむアを萜ち着かせるのにほずんど圹に立たないので、サメを䜿甚しお、人気のあるLinuxディストリビュヌションubuntaなどでトレントをダりンロヌドしながら接続を監芖したした。ロヌカルネットワヌク䞊のデバむス、vpnサヌバヌ、および䞀郚の自動ブロヌドキャストぞの無関係な接続を出力から陀倖したため、ubuntuむメヌゞのダりンロヌド䞭に疑わしいこずは䜕も起こりたせんでした。



sudo tshark -i eth0 | grep -v "192.168.178.1" | grep -v "192.168.178.20" | grep -v "185.225.28.109" | grep -v "AVMAudio" | grep -v "SSDP" | grep -v "MDNS" | grep -v "LLMNR"
      
      





画像



しかし、openvpnが接続を倱ったり、サヌビスが突然停止したりするずどうなりたすか䞀番䞊のナヌティリティはコンテナ内で実行されおおり、その出力は次のよう



画像

になりたす。openvpnプロセスを匷制終了したす。



$ kill -9 6
      
      





その埌、コンテナが再起動したした。埌でフォヌラムのどこかで、openvpnぞの接続が倱われた堎合、たたはこのプロセスが終了した堎合にコンテナが再起動されるようにコンテナが構成されおいるこずを読みたした。これがキルスむッチです。満足したした。



パヌト4。クラりド



NextCloudクラりドを遞択し、䞀床に1぀のガむドをむンストヌルしたした 。私のセットアップの䞻な違いは、他のapacheずphpカブを䜿甚したこずです。



$ sudo add-apt-repository ppa:ondrej/apache2
$ sudo add-apt-repository ppa:ondrej/php
      
      





NextCloudを構成した埌、管理パネルで譊告を確認しお修正するこずをお勧めしたす。



画像



修正
. . :



$ cd /var/www/nextcloud/
$ sudo -u www-data php occ db:add-missing-indices
      
      





:



$ sudo apt install php-bcmath php-imagick
      
      





, . - , , . :



$ sudo apt install redis-server php-memcached memcached php-apcu -y
      
      





:



$ sudo systemctl start redis-server
$ sudo systemctl enable redis-server
$ sudo systemctl start memcached
$ sudo systemctl enable memcached
      
      





:



$ sudo nano /etc/redis/redis.conf
      
      





:



	port 0
	unixsocket /var/run/redis/redis.sock
	unixsocketperm 700
      
      





:



$ sudo usermod -aG redis www-data
      
      





, :



$ sudo nano /var/www/nextcloud/config/config.php
      
      





);



'memcache.local' => '\OC\Memcache\APCu',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' =>
   array (
    'host' => '/var/run/redis/redis.sock',
    'port' => 0,
    'timeout' => 0,
    'password' => '',
    'dbindex' => 0,
),
      
      





:



$ sudo nano /etc/php/7.4/apache2/php.ini
      
      





	opcache.enable=1
	opcache.enable_cli=1
	opcache.interned_strings_buffer=8
	opcache.max_accelerated_files=10000
	opcache.memory_consumption=128
	opcache.save_comments=1
	opcache.revalidate_freq=1
      
      





:



$ sudo systemctl restart apache2
      
      







クラりドは理論的にはWebDAVを介しおネットワヌクドラむブずしお接続できたすが、䜕らかの理由でWindows 10では接続できたせん。Cyber​​duckナヌティリティを䜿甚しお、ロヌカルネットワヌクでのクラりドの動䜜をテストしたした。以䞋のスクリヌンショットでわかるように、クラりドぞのアップロヌド速床は蚱容可胜な12 MB / sに達し、クラりドからのダりンロヌドはたずもな35 MB / sに達したす。速床デヌタは、pca4096キヌを䜿甚しおクラりドで暗号化を有効にしお取埗されたした。



画像



画像



パヌト5。消費電力



圓初は、電力蚈を䜿甚しお統蚈情報を取埗するために、このサヌバヌを1週間皌働させたいず考えおいたした。しかし、残念ながら、このパワヌメヌタヌを適切に構成する方法がわからなかったので、むンゞケヌタヌからのデヌタを含む画像を提䟛したす。ご芧のずおり、アむドルモヌドでは、システムは8.5 Wの゚ネルギヌを消費し、クラりドサむズが玄200 GBの個人デヌタを含むフォルダヌずのアクティブな同期䞭に最倧16.88Wを消費したす。詳现な統蚈により、1日あたりの消費電力の平均倀を蚈算できたすが、サヌバヌがないため、サヌバヌがほずんどの時間アむドル状態であるず想定しお、消費電力の平均倀を䞀目で10 Wずするず、次のようになりたす。



10∗24∗30=7,2∗



1 kWhあたり0.31ナヌロの珟圚の䟡栌では、サヌバヌの1か月あたりの保守コストは玄2.23ナヌロになりたす。これは、私の平均゚ネルギヌ消費量に倧きな圱響を䞎えるこずはありたせん。



画像



消費量ずコストを把握したら、金融投資の小芏暡な評䟡を実斜し、垂堎に出回っおいる仮想サヌバヌの提䟛ず比范するこずを提案したす。残念ながら、私が理解しおいるように、仮想サヌバヌ垂堎は高性胜サヌバヌたたはストレヌゞサヌバヌのいずれかを提䟛しおいるため、同等の比范はできたせんでした 。結果ずしお埗られるホヌムサヌバヌのパフォヌマンスがストレヌゞサヌバヌず同等であるず想定し、珟圚の䟡栌を分析したす。リンクからわかるように 、2 TBのディスク容量を持぀サヌバヌをレンタルするず、幎間100ナヌロの費甚がかかりたす。4番目のラズベリヌの私の家のミニサヌバヌの幎間電気代は玄27.16ナヌロかかるはずです。348.07ナヌロが費やされたため、ホヌムサヌバヌの回収には次のこずが必芁であるこずがわかりたした。



€348,07/(€100/−€27,16/)=4,78



それは長い時間であり、読者は原則ずしお、それは䟡倀がないず刀断するのに正しいでしょう。



4TBのディスク容量にアップグレヌドする別のオプションを考えおみたしょう。ホヌムサヌバヌの堎合、それぞれ2 TBのディスクを2぀远加賌入したす。これは、Amazonの珟圚の䟡栌では、127.62ナヌロの远加料金になりたす。サヌバヌの消費量は増加する必芁があり、たずえば、平均18ワットになりたす。これにより、幎間の電気料金は48.88ナヌロになりたす。次に、4 TBのストレヌゞサヌバヌのコスト幎間340ナヌロず比范しお、投資収益率を芋積もりたしょう。



€475,69/(€340/−€48,88/)=1,63



それは短呜であり、もはや矛盟した投資のようには芋えたせん。



結論



この投皿では、4番目のラズベリヌ甚の玠晎らしいサタハットず、それをベヌスにしたホヌムサヌバヌ甚のかわいいクゞラに぀いお孊びたした。ネットワヌクを介しおファむルをコピヌする䟋を䜿甚しお、このシステムのパフォヌマンスず、このサヌバヌで実行されおいるNextCloudクラりドのパフォヌマンスを確認したした。このサヌバヌの電力消費、コスト、および費甚の問題も取り残されおいたせん。この資料をお読みいただきありがずうございたす。提瀺された゜リュヌションに関する批刀的なコメントを歓迎したす。



特に、読者の皆様には、以䞋の問題に぀いおの経隓を共有しおいただきたいず思いたす。



  1. ZFS
  2. ネットワヌクコピヌの速床が䜎䞋したしたが、どうすればよいですか
  3. Apacheですか、それずもnginksですか
  4. どのおっずを遞択したすか
  5. dockerがVPNルヌルをバむパスするのはなぜですか



All Articles