Monero/AEON Mining mit XMR-STAK 2.0

Tutorial Monero Mining Ubuntu (XMR-STAK 2.0)

Neue Version XMR-STAK 2.0.0 ausprobiert!

Der Entwickler "fireice-uk" hat eine neue Version von seiner beliebten Mining Software XMR-STAK veröffentlicht. Grund für uns sich diese einmal etwas genauer anzuschauen.

Laut Changelog haben wir in dieser Version einige interessante Änderungen. Denn die Software vereint jetzt alle drei Versionen zu einer Software. Wir benötigen also nicht mehr extra den XMR-STAK-CPU, XMR-STAK-AMD oder XMR-STAK-NVIDA Miner sondern können bequem alles aus einer Hand installieren und konfigurieren. Außerdem unterstützt die Software jetzt die Kryptowährung AEON, welche wie Monero auf einen ähnlichen Hash Algorithmus zurück greift (CryptoNote Lite). Dieser ist für Smartphones optimiert. Wie ich finde auch eine interessante Kryptowährung. Wer mehr darüber wissen möchte kann gern mal auf der offiziellen Seite vorbeischauen.

Hier jetzt noch einmal der komplette Changelog der Vollständigkeit halber.

Features
  • 10% boost to CPUs without hardware AES
  • Supports all common backends (CPU/x86, AMD-GPU and NVIDIA-GPU)
  • Supports all common OS (Linux, Windows and MacOS)
  • Supports algorithm cryptonight for Monero (XMR) and cryptonight-light (AEON)
  • Guided start (no need to edit a config file for the first start)
  • Automatic configuration for each mining backend
  • Allows to tweak each core or gpu by hand
  • Supports backup pools
  • TLS support
  • HTML statistics
  • JSON API for monitoring
  • Support the new stratum statistics extension
  • Easy precompiled and portable Linux binary

Installation XMR-STAK 2.0 unter Ubuntu

Das neue XMR-STAK bietet jetzt auch eine bereits kompilierte Version welche man portable typisch nur noch herunterladen muss und ausführen kann. Dies spart das selbst kompilieren.

// wir legen uns einen Ordner an
mkdir xmr-stak-portable
// download
wget https://github.com/fireice-uk/xmr-stak/releases/download/v2.0.0/xmr-stak-portbin-linux.tar.gz
// entpacken das Archiv
tar xzf xmr-stak-portbin-linux.tar.gz
// starten
./xmr-stak.sh

XMR-STAK 2.0 Setup Assistent

Nach dem wir alles heruntergeladen haben und das Programm starten, müssen wir einige Fragen beantworten welche das Setup darstellen. Wie so etwas aussehen kann seht Ihr im folgenden Beispiel.

// starten
./xmr-stak.sh 
Please enter:
- Currency: 'monero' or 'aeon'
monero
- Pool address: e.g. pool.usxmrpool.com:3333
pool.supportxmr.com:3333
- Username (wallet address or pool login):
423gorEqp1GR1Rn431fwuQVmrSAw7v86z3CygoeLsbr6EvenAMeKus1CiZgXana9b1RjnAPbaxyBL4CP5QpdL8PK88KkdRi
- Password (mostly empty or x):
Worker-CPU-01
- Does this pool port support TLS/SSL? Use no if unknown. (y/N)
N
- Do you want to use nicehash on this pool? (y/n)
n
- Do you want to use multiple pools? (y/n)
n
Configuration stored in file 'config.txt'

Unsere Einstellungen kann man nachträglich jederzeit ändern. Das Programm erzeugt 2 Dateien welche im aktuellen Verzeichnis erstellt werden.


  • config.txt - Allgemeine Einstellungen
  • cpu.txt - Einstellungen fürs CPU Mining
Ich vermute mit einer entsprechenden Grafikkarte würde dann dort noch eine Konfiguration für die Grafikkarte zu finden sein. Nach der Konfiguration ist der Miner fertig und einsatzbereit.

Automatisches deployen / installieren auf Server / VPS

Die neue Version ermöglicht es uns außerdem die Installation auf einem Server / VPS in wenigen Sekunden vorzunehmen. Dafür benötigen wir nur eine einmalig auf unsere Zecke eingestellte config.txt die über eine Webadresse verfügbar ist (z.B. http://meine-domain.de/config.txt).

Auf unserem Server legen wir dann ein kleines Bash Script mit folgendem Inhalt an.

#!/bin/bash
curl -O `curl -s https://api.github.com/repos/fireice-uk/xmr-stak/releases/latest | grep -o 'browser_download_url.*xmr-stak-portbin-linux.tar.gz' | sed 's/.*"//'`
curl -O http://meine-domain.de/config.txt
tar xzf xmr-stak-portbin-linux.tar.gz
./xmr-stak.sh

Dieses Script führen wir dann aus und in wenigen Sekunden haben wir ein lauffähiges Mining Setup auf unserem Server. Einfacher geht es nicht oder?

Wer noch wissen möchte wie das ganze im Hintergrund ausführen kann ohne beim schließen des Terminals das Mining zu beenden sollte sich meinen anderen Artikel noch einmal ansehen.

Was sagt Ihr zu der neuen Version? Findet Ihr die Verbesserungen gut und sinnvoll? Schreibt mir gern eure Meinung dazu in die Kommentare. Falls Ihr Fehler gefunden habt meldet diese bitte auch in den Kommentaren.

Viel Spass beim Minig

Monero Mining in Deutschland

monero-stromkosten-de

Lohnt sich das Mining mit normaler Hardware?

Dieser Frage werden wir heute auf den Grund gehen. Wir werden  klären ob sich das Mining von Moneros (XMR) in Deutschland mit einem normalen Consumer PC lohnt und worauf man achten sollte.

Warum eigentlich Moneros?

Diese Frage ist einfach zu beantworten. Im Gegensatz zu Bitcoin (sha-256) basiert Monero auf den Proof-of-Work Algorithmus CryptoNight. Dieser Algorithmus ist besonders gut geeignet für normale Consumer Hardware! Das bedeutet quasi jeder der einen PC hat ist in der Lage damit Monero`s zu schürfen. Aktuelle CPUs und GPUs erzielen gute Hashraten. Das Besondere daran ist außerdem, dass es sich nicht lohnt dafür besondere ASICs zu entwickeln wie es bei Bitcoin der Fall war. Dadurch wird ein dezentrales Mining sichergestellt. Warum der Algorithmus CryptoNight so genial ist könnt Ihr auch gern noch einmal im Detail bei Wikipedia nachlesen.

Aber Lohnt es sich?

Dazu werfen wir erst einmal einen Blick auf den aktuellen Kurs. Dafür nutze ich meistens die Seite coingecko.com.

coingecko-monero-chart-30days

Wie wir hier sehen können ist der Kurs in den letzten Tagen quasi etwas explodiert und dann wieder leicht gefallen. Ich gehe davon aus der Kurs in den nächsten Tagen wieder steigen wird, da der Bitcoin2x abgesagt wurde und die Leute sich wohl nach anderen Kryptocoins umsehen werden.

Konkretes Beispiel anhand meiner Hardware und dessen Stromverbrauch

So jetzt kommen wir zum eigentlichen Kernpunkt dieses Beitrages.  Gleich vorweg ich mine selbst Zuhause Moneros mit ganz normaler Hardware! Wie ich das mache und warum sich das lohnt obwohl ich in Deutschland lebe erfahrt Ihr jetzt.

Mein Arbeits/Spiele PC ist aus dem Jahre 2014 und beinhaltet folgende Hardware:

Setup 1 (mein PC)

Der PC meiner Freundin ist relativ Neu und hat folgende Hardware:

Setup 2 (PC Freundin)

Hash Power von beiden Setups

Mit beiden PCs zusammen komme ich auf einen AVG von ~1.41 KH/s oder 1410 H/s. Das war der Wert der vom Mining Pool angezeigt wurde. Als Mining Pool nutze ich diesen: supportxmr.com. Als Mining Software nutze ich XMR-STAK-CPU und XMR-STAK-GPU Nvida Miner.

Stromverbrauch Setup 1 und Setup 2

Da sehr viel Peripherie etc an meiner Verteilerdose hängt habe ich den Strom mit all diesen Geräten direkt an der Hauptdose gemessen. Hier noch ein Foto von der Messung von Setup 1. Gemessen habe ich den Verbrauch mit der Brennstuhl Primera-Line PM 231 E die Ich mir vor 2 Jahren gekauft habe. Hat nicht viele Funktionen aber für diesen Zweck absolut ausreichend.

Gerät Verbrauch in Watt Durchschnitt (AVG)
Setup 1 IDLE ohne Monitore 55 55
Setup 1 IDLE mit Monitore 82 - 85 83,5
Setup 1 Mining ohne Monitore 177 - 182 179,5
Setup 2 IDLE ohne Monitore 49 - 55 52
Setup 2 Mining ohne Monitore 146 - 152 149
Verbrauch beider Systeme im Mining 328,5

Wir sehen hier ganz deutlich das die neuere Hardware wesentlich weniger Strom verbraucht und trotzdem mehr Hash Power hat. Gut ich habe hier nicht explizit hingeschrieben wie groß der Unterschied bei der Hash Power ist aber Ihr könnt von 100- 150 H/s für die neuere Hardware ausgehen. Hier möchte ich noch einmal erwähnen das der Ryzen 1600X fast die identische Hash Power wie eine GPU Nvida GTX 1060 hat. In meinem Mining Pool sehe ich das die GPU nur wenig mehr Hashes erzeugt hat (~5%).

Und hier natürlich auch noch ein Beweis das ich das auch alles geprüft habe Winking smile

IMG_20171110_203635

Gewinn und Verlust berechnen

Da wir jetzt alle nötigen Informationen haben die Wir brauchen können wir nun unseren erwarteten Gewinn und Verlust berechnen lassen. Dazu nehme ich oft folgende Seite: cryptocompare.com.

Wichtig! Mir ist hier zuerst ein Fehler unterlaufen. Da dort der Strompreis in $ berechnet wird. Das heißt Ihr müsst euren Strompreis vorher von Euro in Dollar umrechnen!

Unser aktueller Strompreis beläuft sich auf 0,23561 KW/h €. Diesen Preis umgerechnet kommt man auf 0.27490857 KW/h $. Mit diesem Wert und den oben Berechneten Stromverbrauch können wir nun den Kalkulator ausfüllen und erhalten unsere erwarteten Gewinne oder Verluste.

monero-energie-calculation02

Kleines Fazit

Wir sehen also das es mit normaler Hardware und einem normalen Stromtarif aktuell möglich ist Moneros profitabel zu erzeugen. Man beachte die Berechnung wurde gemacht als der Kurs bei 102 $ war. Dieser kann natürlich noch weitaus höher steigen und macht das Mining umso profitabler.

Mining mit eigenem VPS

In einem anderen Artikel von mir habe ich bereits erklärt wie man einen VPS zu mining nutzen kann. Da ich persönlich noch 3 sehr kleine VPS für jeweils 2,99€ im Monat besitze habe ich diese natürlich auch jeweils mit einem Core zum Mining eingestellt. Die VPS habe ich bei Scaleway gemietet und das Mining läuft dort auch ohne Probleme mit einem Core.

Hierbei empfehle ich aber mietet euch keine VPS zum reinen mining! Das Lohnt sich in diesem Falle nicht. Die 2,99€ VPS erzeugen im Durchschnitt mit einem Core ~ 9 H/s und mit zwei Cores ~16-17 H/s. Da ich die VPS aber sowieso habe ist es vollkommen Ok wenn ein Core oder beide zum Mining abgestellt werden. Zusätzlichen Profit sollte man immer mit nehmen wenn dabei nichts anderes beeinflusst wird.

Abschluss und Blick in die Zukunft

Jetzt schauen wir mal unsere Glaskugel an und werfen einen Blick in die Zukunft. Da Monero demnächst das neue Feature “Multi Sig” einführt und kontinuierlich weiterentwickelt wird von rund 30 der besten Entwicklern aus aller Welt, kann man davon ausgehen das der Monero Kurs in Zukunft steigen wird. Außerdem ist Monero eines der Top Zahlungsmittel im Darknet und wird sich dadurch auch stark im Markt etablieren.

Aber noch mal mal zurück zum Thema, dass Mining von Monero ist in Deutschland mit normaler Hardware mit Gewinn möglich. Je aktueller und energieeffizienter die Hardware desto mehr Profit kann man hier erwirtschaften. Denn in Deutschland sind die Strompreise im Vergleich zu anderen Ländern extrem hoch. Haltet Ausschau nach günstigen Stromtarifen und kontrolliert am besten regelmäßig, ob eure Kosten nicht höher sind als euer Gewinn.

Positiv kann ich hier auch noch einmal erwähnen, dass der Raum in dem unsere PCs stehen nicht mehr beheizt werden muss, da wenn wir nicht da sind die PCs angenehme wärme erzeugen Winking smile Gerade in der kalten Jahreszeit spart man auch durch diesen positiven Nebeneffekt doch eine menge ein.

Probiert es aus und lasst gern eure positiven und negativen Erfahrungen hier in den Kommentaren.

Monero Mining unter Ubuntu (XMR-STAK-CPU)

Monero Mining mit XMR-STAK-CPU Miner

Monero Mining unter Ubuntu 16.04 und höher

Heute zeige ich euch wie ihr unter jedem beibiegen Ubuntu System mit eurer CPU die Krypto Währung Monero mininen (schürfen) könnt. (Aktueller Kurs bei Beitrag erstellung: 1 XMR = 115$)

Falls Ihr bereits einen kleinen Linux Server oder VPS habt der sowieso permanent läuft könnt Ihr auch einen teil der Ressourcen nutzen um euren Geldbeutel etwas aufzufüllen. Natürlich könnt Ihr auch auf euren Rechner zuhause das schürfen betreiben.

XMR-STAK-CPU Miner unter Ubuntu installieren

Pakete aktualisieren und Abhängigkeiten installieren
sudo apt-get --assume-yes update
sudo apt-get --assume-yes install libmicrohttpd-dev libssl-dev cmake build-essential libhwloc-dev screen git nano

Miner herunterladen und installieren (kompilieren)
git clone https://github.com/fireice-uk/xmr-stak-cpu.git
cd xmr-stak-cpu
cmake .
make install

In Verzeichnis wechseln, Miner ausführbar machen und starten.
cd bin/
chmod +x xmr-stak-cpu
./xmr-stak-cpu

XMR-STAK-CPU Miner konfigurieren

Beim ersten starten schlägt euch die Software eine passende Konfiguration vor. Diese könnt Ihr einfach kopieren und an der entsprechenden Stelle in der config.txt einfügen. Hier ein Beispiel für 1 aktiven Kern. Hier müsst Ihr schauen wie viele Kerne euer System hat und wie viele Ihr benutzen wollt. Fangt erst mal mit einem an zum Testen.

"cpu_threads_conf" :
[
     { "low_power_mode" : false, "no_prefetch" : true, "affine_to_cpu" : 0 },
],

Außerdem müsst Ihr in der config.txt noch eure Mining Pool URL sowie eure Monero Wallet Adresse angeben. Zum identifizieren eures Miners am besten noch bei "pool_passwort" dem Miner einen Namen geben.

"pool_address" : "pool.supportxmr.com:5555",
"wallet_address" : "eure Wallet Adresse",
"pool_password" : "mein-miner",

Wenn Ihr alles eingestellt habt könnt Ihr den Miner wie oben beschrieben starten. Dieser sollte nun für euch Moneros (XMR) schürfen.

Mining auf VPS / Server im Hintergrund laufen lassen

Die einfachste Möglichkeit das Mining im Hintergrund auszuführen ist mit  Hilfe des Tools Screen. Der Befehl um den Miner im Hintergrund zu starten lautet wie folgt:

// Session im Hintergrund
screen -S miner -d -m ./xmr-stak-cpu
// Session wieder aufnehmen
screen -r miner

Fehlerbehandlung beim starten von XMR-STAK-CPU

Falls ihr einen Fehler mit einer Meldung Memory ... mmap ... bekommt könnt Ihr folgendes machen.

sudo sysctl -w vm.nr_hugepages=128
nano /etc/sysctl.conf
// am Ende der Datei einfügen
vm.nr_hugepages=128

Danach noch einmal die aktuelle Konsolensession neustarten.

Ich hoffe euch hat der Artikel gefallen und konnte euch helfen. Über konstruktives Feedback freue ich mich natürlich. Ansonsten wünsche ich euch viel Spass beim Geld schürfen mit der Krypto Währung Monero.

Ideen, Vorschläge und Kritik bitte in die Kommentare.

Test / Review Startech USB 3.0 Hub (7-Port)

Produktbewertung / Test / Review zum Startech USB 3.0 Hub

Heute geht es um eine Produktbewertung und in diesem Sinne um den 7 Port USB 3.0 Hub von Startech. Die Produkte wurden mir zur Verfügung gestellt von RS Components. An dieser Stelle noch einmal vielen Dank hierfür.

Technische Details zum Startech USB 3.0 Hub

Produkt: Startech USB 3.0 Hub, 7-Port
Produktkategorie: USB Hubs
USB-Standard: USB 3.0
USB-Anschlusstyp: USB A
Abmessungen: 172 x 70 x 23mm (Tiefe 70mm Höhe 23mm Breite 172mm)

Zusammengefasste allgemeine Produktbeschreibung

Ich werde hier kurz und grob die tollen Funktionen des Hubs mit eigenen Worten erklären. Was ein Hub ist sollte jedem klar sein? Er erweitert einen vorhandenen USB Anschluss. Der Hub unterstützt Datenraten von bis zu 5 Gbits/s was dem USB 3.0 Standard entspricht außerdem ist er abwärts kompatibel zu USB 2 und 1 Geräten. Plug and Play sowie Hot-Swap werden wie von fast jedem Hub unterstützt. Jetzt kommen wir aber mal zu den cooleren Eigenschaften des Hubs wie z.B. Stromüberlastungserkennung und Schutz auf jedem USB Anschluss. Außerdem Stromversorgung über den USB Bus, mit dem dazugehörigen Netzteil können auch USB Geräte angeschlossen werden die auch etwas mehr Power benötigen.

Produktbilder zum Startech USB 3.0 Hub

Verpackungszubehör

Der Hub kam vorbildlich mit einer menge an Steckeraufsätzen für das Netzteil.
  • 4 Steckeraufsätze für Netzteil (verschiedene Länder siehe Bild)
  • Netzteil für Stromversorgung
  • Kabel USB 3.0 A auf B
Für ein aufgeräumtes Zimmer zuhause kann ich Euch den Tipp geben, schmeißt die Verpackung weg und sammelt euer Technik kram zum Beispiel in einem Werkzeugkoffer. Zum Beispiel habe ich die Aufsätze für das Netzteil bei mir in eine kleine Tüte getan und diese dann in meinem Technik Werkzeugkoffer verstaut. Einen guten Werkzeugkoffer erkennt man eigentlich immer daran das die Scharniere zum zumachen nicht aus billigem Plastik bestehen. Denn nichts ist ärgerlicher als ein Koffer der aufgeht beim Transport und alles am Ende auf dem Boden liegt.

Benchmark - Kopier Test (SSD zu externen HDDs)

In meinem Kopiertest habe ich folgende Szenarien getestet.
  • kopieren von 15 GB SSD zu ext. HDD (USB 3.0)
  • kopieren von 15 GB SSD parallel zu zwei HDDs (USB 3.0)
Das aufgebaute Setup könnt ihr im folgendem Bild sehen.


Die Ergebnis des ersten Tests könnt Ihr in den folgenden 3 Screenshots sehen. Die Geschwindigkeit ist sogut wie nicht eingebrochen und war im Durchschnitt bei 137 MB/s. Dadurch konnte ich eine 15 Gb Datei in unter 2 min kopieren.


Das Ergebnis des 2. Tests liefert ähnlich gute Werte. Hier wurde ein paralleler Kopiervorgang gestartet jeweils 15 GB auf jeweils eine externe Festplatte (SSD -> HUB -> ext HDD). Mit beiden Kopiervorgängen zusammen kommen wir auf ~260 MB/s was Umgerechnet 2,08 Gbit/s entspricht. Ich vermute das hier die drosselnde Komponente meine 2 externen Festplatten gewesen sind. Der Hub liefert ein sehr gutes Ergebnis.


Fazit zum Startech USB 3.0 Hub

Optisch und technisch macht der Hub eine sehr gute Figur. Die Verarbeitung ist hochwertig und die verbauten Komponenten überzeugen mit einer guten Geschwindigkeit beim Kopieren großer Datenmengen. Die Stromversorgung ist ideal um auch externe HDDs oder SSDs im 2,5" Format damit zu betreiben. Preislich vielleicht nicht der günstigste, ist der Hub dennoch eine klare Empfehlung. Aktuell befindet sich der Preis zwischen 50-70€.

Produkt bei Amazon ansehen: Amazon Startech USB 3.0 Hub
Produkt bei RS-Online ansehen: RS-Online Startech USB 3.0 Hub

Kostenlos mit dem Usenet verbinden - So gehts!

Usenet? Ja Usenet!

Ihr wolltet schon immer wissen was das Usenet ist und wie man sich damit verbinden kann? Dann seid Ihr hier genau richtig. Denn heute wollen wir eine einfache Möglichkeit zeigen wie Ihr euch damit verbinden könnt.

Was ist denn das Usenet?

Wir fangen zunächst mit den Grundlagen an. Der uns allgemein bekannte Begriff "Usenet" steht für "Unix User Network" und auf deutsch "Unix Benutzer Netzwerk". Man kann sich das Usenet wie ein zweites globales Internet vorstellen. Es ist sozusagen ein zweites Netzwerk welches es schon lange vor dem WWW gab. Das Usenet kann man dann noch mal unterteilen einmal in das normale Usenet und dann in das "Binary Usenet". Das normale Usenet ist gedacht um sich mit Nachrichten auszutauschen in sogenannten Newsgroups, in der anderen Version kann man zusätzlich noch Binar Dateien anhängen, dass heißt man kann Dateien austauschen. Die Möglichkeit Dateien auszutauschen macht das Usenet erst richtig interessant.

Den passenden Newsserver finden

Um sich mit dem Usenet zu verbinden benötigt man vorher einen entsprechenden Newsserver und hierbei unterscheiden wir 3 Arten.
  • Offene Newsserver (offen für Alle, meist nur Lesezugriff)
  • Freie Newsserver (offen aber meist nur mit Registrierung nutzbar)
  • Bezahlte Newsserver (Zugang muss bezahlt werden)
Eine sehr ausführliche Liste zu offenen und freien Newsservern habe ich auf der Seite "TopUsenet" gefunden. Dort habt Ihr eine ausführliche und detaillierte Liste mit entsprechenden Newsservern. Ein paar Beispiele für Newsserver wären:
  • Universität Hohenheim - news.uni-hohenheim.de
  • Mozilla - news.mozilla.org

Kostenlose Usenet Newsreader Software

Da wir jetzt einen entsprechenden Newsserver gefunden haben der uns interessiert, wollen wir uns natürlich auch damit verbinden. Für die Verbindung zu einem Usenet Newsserver benötigen wir einen sogenannten Newsreader. Dies ist Software bzw Client mit dem wir uns verbinden und die auf dem Server gespeicherten Informationen abrufen können.
  • Sabnzbd - Kostenlos, viele Funktionen, stätig weiterentwickelt
  • Newsbin - Testversion verfügbar, sehr guter Newsreader
  • Agent - Testversion verfügbar, Browser + Suche
  • Grabit - Kostenlos, Browser + Suche, klasse Newsreader

Verbinden mit Sabnzbd Usenet Reader

Jetzt geht es ans eingemachte :) Wir werden uns jetzt mit dem Usenet verbinden mit der freien Software "Sabnzbd". Nachdem wir das Programm heruntergeladen und installiert haben. Starten wir das Setup. Es öffnet sich ein Browserfenster mit folgendem Inhalt.
Nach der Sprachauswahl müssen wir die Server Zugangsdaten eingeben. In diesem Beispiel haben wir den freien Mozilla Server eingetragen. Hier könnt Ihr natürlich eure entsprechenden Daten eingeben.
Ob alles richtig ist könnt Ihr mit einen Klick auf "Server überprüfen" testen. Bei Erfolg grün bei Misserfolg rot. Danach ist das Setup schon abgeschlossen.
Glückwunsch Ihr habt euch erfolgreich mit einem Usenet Server verbunden

Warum ist das Usenet so beliebt?

Klar kostenlos Filme, Serien, Spiele und Pornos!

Das hat ein paar einfache Gründe. Da im Binary Usenet Dateien ausgetauscht werden können wird dies für viele nicht ganz so legale Arten von Downloads ausgenutzt. Viele kostenpflichtige Usenet Anbieter werben auch damit, dass man bei Ihnen alles mögliche ohne Limit herunterladen kann. Darunter fallen Filme, Serien, Spiele und sogar Pornos. Bei solchen Angeboten sind aber auch viele schwarze Schafe, die einem zum Beispiel getarnt als Serie ein Virus unterjubeln wollen. Also solltet Ihr falls Ihr so ein Angebot nutzt lieber zwei mal hinsehen und die geladenen Dateien vorher mit einer Anti-Virensoftware prüfen. Durch die schiere Anzahl der diversen Newsgroups kann man so gut wie alles finden im Usenet. Es ist quasi ein Paradies für Downloader.

Es gibt sehr viele kostenpflichtige Usenet Anbieter, ich werde hier nur ein kleine Liste der verschiedenen Anbieter aufzählen:

Abschluss

Abschließend kann man sagen, dass Usenet ist ein sehr interessanter Ort. Wenn man einmal verstanden hat wie das Usenet funktioniert dann ist es sehr einfach zu nutzen und eröffnet spannende Möglichkeiten. Wer wirklich die volle Bandbreite des Usenet kennen lernen will sollte mal bei einem Anbieter wie Usenet.nl vorbeischauen.

In diesem Sinne, viel Spaß beim ausprobieren.

Quellen: 

Webserver NGINX Performance Tuning

Schnell? Schneller? NGINX? Performance!!!


Heute beschäftigen wir uns mit dem Thema NGINX und Performance Optimierung. Wir wissen alle das der NGINX der König unter den Webservern ist und deshalb schauen wir uns heute an, wie wir das letzte Fünkchen Geschwindigkeit aus dem Webserver herausholen. Zu dem Zeitpunkt wo ich diesen Beitrag schreibe gibt es den NGINX in der Stable Version 1.12.1 (Download).

Backup der NGINX Config

Als erstes ist es wichtig eure aktuelle funktionierende NGINX Konfiguration zu sichern (Kopie davon erstellen) damit wir nichts zu fürchten haben falls etwas nicht ganz so läuft wie von euch erhofft. Die Konfiguration findet Ihr z.B. bei Ubuntu unter /etc/nginx/nginx.conf

Performance? Optimieren!

Jetzt werde ich euch einzelne NGINX Core Module Direktiven vorstellen die euch helfen werden eure Webserver Performance zu steigern. Ich versuche dabei kurz und verständlich die Werte zu erklären. Alle folgenden Werte können in der nginx.conf bearbeitet oder hinzugefügt werden.

worker_processes auto;
Gibt an wie viele NGINX Worker Prozesse laufen. auto = automatische Erkennung. Generell gilt, man kann auch die Anzahl der verfügbaren CPU Cores angeben. (z.B. VPS mit 2 Kernen = auf 2 stellen).

worker_connections 1024;
Gibt an wie viele gleichzeitige Verbindungen pro Worker aufgebaut werden können. Die maximale Anzahl der Clients wird also wie folgt Berechnet. max Clients = worker_processes * worker_connections. Tip: hier ein wenig testen wie viel euer Server schafft.

use epoll;
Wichtig für Linux Server um viele Clients in einem Thread zu verarbeiten.

multi_accept on;
Dadurch werden so viele neue Verbindungen wie möglich akzeptiert von einem Worker Prozess.

sendfile on;
Kopiert Daten von einem FD (File Descriptor) zu einem innerhalb des Linux Kernels. Das ist schneller als read() + write()

tcp_nopush on;
Sendet den Request Header in einem Stück, dies ist besser als viele kleine.

tcp_nodelay on;
Aktiviert die TCP Option TCP_NODELAY. Daten werden nicht mehr im BUffer zwischen gespeichert, sondern gleich verschickt.

access_log off;
Um schwache Festplatten zu entlasten und den HDD I/O zu verbessern.

gzip on;
gzip_min_length 10240;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/json application/xml;
gzip_disable msie6;
Komprimiert die ausgegebenen Dateien, dies spart Traffic. Sollte nur bei ausreichend CPU Leistung aktiviert werden!

reset_timedout_connection on;
Erlaubt es dem Server die Verbindung zu nicht antwortenden Clients zu schließen. Das spart Arbeitsspeicher.

client_body_timeout 10;
Der Request Timeout. Standard ist bei 60. Falls keine Dateien auf eurer Seite hochgeladen werden sollte der Timeout reduziert werden z.B. auf 10 Sekunden

send_timeout 2;
Wenn der Client nicht mehr reagiert und nichts empfängt dann stoppe (Standard ist 60). Spart Arbeitsspeicher.

keepalive_timeout 30;
Schließt die Verbindung nach der angegebenen Zeit. Standard ist 75. Hier kann etwas experimentiert werden.

keepalive_requests 100;
Wie viele Keep Alive Requests gemacht werden können. Standard ist 100. Beachtet wie viele gleichzeitigen Besucher Ihr auf eurer Seite erwartet.

server_tokens off;
Erhöht die Sicherheit. Der Server schickt keine Version etc mehr heraus.

open_file_cache max=100000 inactive=20s; 
open_file_cache_valid 30s; 
open_file_cache_min_uses 2;
open_file_cache_errors on;
Der Cache kann die Performance steigern, die optimalen Werte solltet Ihr durch testen herausbekommen. Eine detaillierte Erklärung dazu findet Ihr hier

Beispiel Konfiguration für einen 2 Kern VPS (/etc/nginx/nginx.conf)


user www-data;
worker_processes 2;
pid /run/nginx.pid;

events {
        worker_connections 1024;
        use epoll;
        multi_accept on;
}

http {

        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 30; # default 75
        keepalive_requests 100;   # default 100
        reset_timedout_connection on;
        client_body_timeout 10; # default 60
        send_timeout 10; # default 60
        types_hash_max_size 2048;
        server_tokens off;
        
        # File Cache
        open_file_cache max=100000 inactive=20s; 
        open_file_cache_valid 30s; 
        open_file_cache_min_uses 2;
        open_file_cache_errors on;

        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # SSL Settings
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;

        ##
        # Logging Settings
        ##

        access_log off;
        error_log /var/log/nginx/error.log;

        ##
        # Gzip Settings
        ##

        #gzip on;
        #gzip_disable "msie6";

        # gzip_vary on;
        # gzip_proxied any;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

        ##
        # Virtual Host Configs
        ##

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}

Wichtig für Dateiuploads in Verbindung mit NGINX

Falls Ihr auf eurer Seite einen Upload von Dateien anbietet solltet Ihr in eurer vhost Config noch folgende NGINX Einstellungen setzen.

        client_max_body_size 1G;
        client_body_buffer_size 1024k;

In diesem Beispiel ist er möglich Dateien von einer größe von 1 GB auf den Server zu laden.

Konfiguration neu einlesen oder NGINX neustarten

Um die ganzen neuen Einstellungen zu testen könnt Ihr die Config neu einlesen lassen:

# /etc/init.d/nginx reload

Oder Ihr startet den Webserver einfach neu.

# /etc/init.d/nginx restart

Falls etwas falsch sein sollte würde an dieser Stelle eine entsprechende Meldung erscheinen. Abschließend hoffe ich das euch das ein oder andere Helfen konnte und Ihr eure Server Performance steigern konntet. Über Verbesserungsvorschläge und Tips würde ich mich sehr freuen. Schreibt es in die Kommentare ;)

Buchempfehlung über NGINX

Vor 2 Jahren habe ich mir das Buch "Nginx HTTP Server" bei Amazon bestellt. Damit habe ich begonnen mich in die Materie einzuarbeiten. Dort sind alle grundlegenden Elemente des Webservers sehr gut und ausführlich erklärt. Für komplette Neueinsteiger zu empfehlen.

Fortgeschrittene sollten sich das demnächst erhältliche Taschenbuch "Nginx: A Practical Guide to High Performance"  von Stephen Corona (Autor) mal genauer ansehen. Es wirkt auf den ersten Eindruck sehr interessant und vielleicht bekommt man von Ihm wertvolle Tips für eine optimale Konfiguration. Lasst es mich wissen falls jemand das Buch empfehlen kann.

Quellen:

Amazon Echo Alexa Newsletter - 14 Juli


Hier der aktuelle Amazon Echo Newsletter vom 14. Juli 2017. Neue Funktionen wurden leider nicht vorgestellt alles nur Beispiele die man schon kennt. Aktuell gibt es den Amazon Echo noch für 179,99€ zu kaufen. Der kleine Echo Dot kostet aktuell noch 59,99€.

Ubuntu 16.04 einrichten von SSL / HTTPS unter NGINX

Einleitung

Im Jahre 2017 sollte SSL Standard für jede Webseite sein. Warum das leider immer noch nicht so ist liegt vielleicht daran, dass viele Leute abgeschreckt sind von der Einrichtung oder nicht wissen wie es umgesetzt wird. In diesem kleinen Tutorial, möchte ich euch Heute zeigen, wie einfach es doch ist SSL unter Ubuntu mit einem NGINX Webserver einzurichten.

Voraussetzungen

Eine kleine Liste mit Dingen die ich für dieses Tutorial voraussetze.
  • Ubuntu Server
  • NGINX Server installiert
  • OpenSSL installiert
Außerdem solltet Ihr auf eurem Server die entsprechenden "root" oder "sudo" Rechte haben. Wenn ihr das alles habt können wir auch schon beginnen.

Schritt 1 - Zertifikat erzeugen

Als erstes brauchen wir einen Ort wo wir das Zertifikat ablegen und speichern wollen. Da es sich hier um ein Zertifikat für den NGINX handelt erzeugen wir einfach im NGINX Ordner einen weiteren Ordner "ssl".

  sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt

Kurze Erklärung zu dem Befehl:
  • openssl: Standard Konsolen Programm um Zertifikate zu erstellen
  • req: sagt aus das wir eine X.509 Signierungsanfrage erstellen wollen. X.509 ist ein Standard für SSL und TSL
  • -x509: Die Option sagt aus das wir ein selbst signiertes Zertifikat erstellen wollen
  • -nodes: Teilt OpenSSL mit das wir keine Passwortabfrage bei dem Zertifikat benötigen. Wäre auch schlecht da NGINX dann bei Neustarts immer danach fragen würde
  • -days 365: Anzahl der Tage wie lange das Zert. gültig ist
  • -newkey rsa:2048: Sagt das wir einen neuen Schlüssel und Zertifikat mit einem 2048 Bit Schlüssel möchten
  • -keyout: Gibt OpenSSL einen Ort an wo der Schlüssel gespeichert werden soll
  • -out: Gibt OpenSSL einen Ort an wo das Zertifikat gespeichert werden soll
Anschließend wirst du nach einigen Angaben gefragt. Diese kannst du leer lassen oder ausfüllen.
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
 
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Die von dir erstelleten Dateien werden in dem angegebenen Ordner abgespeichert.

Schritt 2 - NGINX Konfigurieren

Ein Vorteil von NGINX gegenüber dem Apache ist das man HTTPS/SSL in der selben Vhost Config aktivieren kann wo auch HTTP konfiguriert ist. Wir bearbeiten dazu unsere Standard Konfiguration unter.

nano /etc/nginx/sites-available/default

Wir fügen 4 Zeilen hinzu.

server {
        # ipv4 http
        listen 80 default_server;
        # ipv6 http
        listen [::]:80 default_server;
        # ADDED ipv4 https
        listen 443 ssl default_server;
        # ADDED ipv6 https
        listen [::]:443 ssl default_server;

        server_name default;

        root   /var/www/application/public;

        index index.html index.htm index.php index.cgi index.pl index.xhtml;

        # ADDED ssl settings
        ssl_certificate         /etc/nginx/ssl/nginx.crt;
        ssl_certificate_key     /etc/nginx/ssl/nginx.key;

        # log
        error_log /var/www/application/log/error.log;
        access_log /var/www/application/log/access.log combined;

        # rewrite
        location / {
            try_files $uri $uri/ /index.php;
        }

        # php socket
        location ~ \.php$ {
            try_files $uri =404;
            include /etc/nginx/fastcgi_params;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/run/php/php7.1-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_intercept_errors on;
        }

}

Die ersten beiden hinzugefügten Zeilen kümmern sich darum das der NGINX auf den richtigen Port lauscht und IPv4 und IPv6 anfragen annimmt.

Die anderen 2 kümmern sich darum das der NGINX den Schlüssel und das Zertifikat läd.

Danach starten wir neu uns schauen ob alles klappt.

sudo service nginx restart
ODER
sudo /etc/init.d/nginx restart

Nach erfolgreichem Neustart sollte unsere Seite unter http und https erreichbar sein.

HTTPS testen

Um unsere Konfiguration zu testen erstellen wir in unsrem Verzeichnis (/var/www/application/public) eine index.html zum testen. Unsere Seite dann unter beiden Adressen erreichbar sein

http://server_domain_or_IP
UND
https://server_domain_or_IP:443

Hinweiß: In den meisten Browsern muss man noch das Zertifikat akzeptieren damit die Seite dargestellt wird. Denn euer Lokales Zertifikat gilt in den Browsern als nicht sicher.

Abschluss

Abschließend ist zu sagen, dass der Aufwand SSL einzurichten doch relativ gering ist und für lokale Tests sehr zu empfehlen ist. Wenn eure Applikation lokal zu 100% läuft, solltet Ihr den Schritt nicht scheuen auch Live SSL mit einem richtigen Zertifikat zu verwenden. Richtige Zertifikate bekommt Ihr dank "Lets Encrypt" quasi für 0€.

Viel Spass beim testen. Bei Fragen benutzt bitte die Kommentare.

Amazon Echo Dot - TV, DVD Player, Funksteckdosen per Sprache steuern

Hi,
heute geht es um Amazons Echo Dot und wie man mit Hilfe von Alexa alle seine Funk und IR (Infrarot) Geräte per Sprache steuern kann. Darunter fallen meistens Fernseher, DVD/ BluRay Player, LED Bänder, Funksteckdosen und vieles mehr.

Hier eine kleine Checkliste mit Dingen die Ihr dafür benötigt:
  • Amazon Echo / Amazon Echo Dot
  • Broadlink RM Pro (Amazon Link)
  • eControl App von Broadlink (Playstore Link)
  • RM Plugin App (Playstore Link)
  • Smartphone oder altes Android Gerät (Stick/TV Box) hier ein paar Beispiele
    • M9C Pro Smart TV Box | 36,99€ (zur Box)
    • SEGURO MX1 Smart Internet TV BOX | 25,99€ (zur Box)
    • Bqeel MXR Smart TV Box Android 5.1 TV Box | 27,19€  (zur Box)
    • Leelbox Q1 Android TV Box | 36,99 € (zur Box)
Wenn Ihr alles habt könnt Ihr auch gleich mit der Einrichtung loslegen. Die Voraussichtlichen Kosten belaufen sich dabei um die ~ 105€ für alle benötigten Geräte und Apps.

Broadlink RM Pro einrichten

Sobald Ihr euren Broadlink RM Pro aufgebaut und angeschlossen habt könnt Ihr euch die "e-Control" App (Playstore Link) auf euer Smartphone installieren bzw öffnen falls diese schon installiert ist.

In der App könnt Ihr dann oben Rechts auf den Menüpunkt "Add Device" gehen um dort euren RM Pro hinzuzufügen. Im Folgenden Setup werdet Ihr gebeten eure WLan Daten anzugeben damit der RM sich in eurem Netzwerk anmelden kann. Dies müsst Ihr durchführen. Ob Ihr euch einen Account bei Broadlink anlegt ist euch überlassen, dieser ist nicht zwingend erforderlich.


Anschließend könnt Ihr euch eine virtuelle Fernbedienung erstellen. Dazu müsst Ihr in der App auf "Add Remote" gehen.



Hier hat man die Wahl ein fertiges Layout zu nehmen oder eins selbst Zusammenzustellen. Wir bauen es selbst und nehmen "User Defined". Jetzt kann man noch aussuchen wie die Tasten sortiert werden sollen. Hier nehmen wir "sort random", denn damit sortieren wir unsere Buttons selbst.



Im Folgendem Screen klicken wir oben Rechts auf das Zahnrad Icon und wählen "Sort add".



Anschließend gehen wir oben Links auf das + Symbol. Dort können wir nun dem Schalter einen Namen geben und ein Icon/ Bild auswählen.



Diesen Vorgang wiederholen wir, damit wir nun zwei Buttons angezeigt bekommen. Einen für das An und Ausschalten des Gerätes. Die Buttons können wir frei Verschieben an die Position die wir gerne hätten. Am Ende bestätigen wir alles mit dem "Save" Button oben Rechts.

Jetzt können wir unseren aktuell noch "dummen" Buttons eine Funktion zu weisen. Dafür drücken wir auf einen Button und dann auf "Learn Single" und in der Abfrage danach auf "Learn". In dem darauf folgendem Abschnitt müsst Ihr die Taste eurer Fernbedienung drücken die Ihr dem aktuell ausgewähltem Button beibringen wollt z.B. der Power Knopf. (Solange drücken bis die Taste gelernt wurde). Vorgang für anderen Button wiederholen.

Die Einrichtung des Broadlinks und der e-Control App ist damit erst einmal abgeschlossen. Du kannst jetzt z.B. mit der App dein Gerät steuern. Aber wir möchten das Ganze ja mit Alexa steuern deswegen müssen wir noch ein paar Schritte mehr in Angriff nehmen.

RM Plugin einrichten und benutzen

Weiter geht es mit der oben verlinkten Android App "RM Plugin". Eigentlich ein Tasker Plugin ist diese App aber auch ohne Tasker lauffähig.

Zunächst starten wir die App RM Plugin.


Wir scrollen runter zu den "Settings" und drücken auf "Alexa Bridge". Hier aktivieren wir die Optionen "Enable Alexa Bridge" und "Autostart on Boot".

Daten importieren von der eControl App

Wir gehen auf den Menüpunkt "Share Data". Wir beenden die App nicht und öffnen parallel dazu die eControl App von Boardlink. In dieser öffnen wir das Menü -> "Share" -> "Share to other phones in Wlan" und lassen dies offen. Wir wechseln nun wieder zurück zur RM App und warten kurz. Die Daten sollten jetzt importiert wurden sein.

Alexa Gerät in der RM Plugin App hinzufügen

Wir gehen auf "Alexa Bridge" -> "Alexa Device List" -> "Add Alexa Device".

Unter "Device Name" können wir dem Gerät einen Namen geben der in Alexa zum Aufruf benutzt werden soll. (z.B. TV).

Bei "On Command" können wir unseren importierten Befehl zum anschalten des Gerätes auswählen ("Select Code").


Anschließend ist das Gerät fertig konfiguriert in der App. Jetzt muss man Alexa nur noch mitteilen das man ein neues Gerät hat.

Alexa neue Geräte hinzufügen

Um Alexa mitzuteilen das man neue Geräte hat kann man den Sprachbefehl "Alexa, suche nach Geräten" verwenden oder in der Alexa App die Suche starten. Alexa teilt dir dann mit ob Sie neue Geräte gefunden hat.

Abschluss

Und das war es auch schon. Ihr könnt euer hinzugefügtes Gerät nun mit Alexa steuern.

z.B. "Alexa, schalte den TV ein" oder "Alexa, schalte den TV aus".

Mein Fazit, mit etwas initial Aufwand kann man doch relativ günstig und einfach seine vorhandene Geräte in "Smart Home" Geräte verwandeln und damit dann eine menge Spass haben. In Alexa steckt eine Menge potenzial.

Bei Fragen oder Anregungen bitte die Kommentare benutzen.

PHP "< ?=" vs "< ?php echo"

Einleitung

Hi,
heute geht es kurz um das PHP Tag "<?=". Vielleicht kennen es die meisten schon oder benutzen es sogar in Ihrem Code. Das Konstrukt ist schon etwas älter aber ich wollte trotzdem kurz darauf eingehen.

Beispiel: (zwischen < und ? ist ein extra Leerzeichen das da nicht hin soll!)

Lange Schreibweise:
< ?php echo $value; ?>

Kurze Schreibweise:
< ?= $value ?>
Beide Varianten funktionieren und resultieren in der selben Ausgabe.

Wann sollte ich "<?=" nehmen?
  • > PHP 5.4 Standardmäßig aktiv
  • spart Zeichen und Zeit
  • wenn short_open_tag in der php.ini aktiv ist
Wann sollte ich "<?php echo" nehmen?
  • < PHP 5.4
  • wenn man Angst hat das der Syntax irgendwann nicht mehr unterstützt wird
Ab PHP 5.4 ist das Kürzel Standardmäßig aktiv auch wenn die Option "short_open_tag" deaktiviert ist in der php.ini Datei. Man sollte also die Verwendung nicht scheuen ;)

Hier noch mal eine interessante Grafik dazu:

Wer noch mehr Informationen zu dem Thema möchte sollte sich ein mal die Diskussion dazu hier anschauen: Link

Das war es auch schon. Fragen und Anregungen gern in die Kommentare.