Wir haben bereits mehrere Male SOCKS-Proxys ausprobiert, aber diesmal bringen wir ein kostenloses Open Source-Programm mit, mit dem wir unseren eigenen SOCKS-Proxy-Server erstellen können. Dies ist psocksd, das vollständig in PHP programmiert ist , um als Dämon zu fungieren.
Psocksd wurde von Christian Lück erstellt , der anscheinend ein PHP-Programmierspezialist ist. In seinem GitHub-Profil finden wir unzählige Projekte. Unter seinen Repositories finden wir sogar eine Bibliothek, die sich auf SOCKS-Proxys bezieht.
Psocksd, ein SOCKS-Proxy-Server in PHP.
Der psocksd-Server ist mit SOCKS 4 und SOCKS 5 kompatibel , obwohl das Protokoll in Version 5 empfohlen wird, da es aktueller ist.
Zunächst werden die Voraussetzungen für die Installation von psocksd erläutert. Es ist plattformübergreifend und funktioniert sowohl unter Windows als auch unter Linux. In diesem Artikel konzentrieren wir uns jedoch auf die Installation und Konfiguration unter Linux.
Zum Testen von psocksd
wir einen VPS-Server mit Linux Ubuntu 16.04 verwendet, auf dem wir PHP 7 mit dem folgenden Befehl installiert haben:
sudo apt-get install php7.0 php7.0-mbstring
Es ist wichtig zu betonen, dass die Erweiterung php7.0-mbstring installiert sein muss , damit sie im Installationsbefehl enthalten ist. Wenn wir es nicht installieren, funktioniert das Programm nicht und gibt einen schwerwiegenden Fehler zurück.
Als nächstes müssen wir die .phar
Datei aus dem Releases-Bereich von GitHub herunterladen. Zum Herunterladen der Datei können wir wget verwenden:
wget https://github.com/clue/psocksd/releases/download/v0.4.0/psocksd.phar
Jetzt müssen wir nur noch den Befehl ausführen:
php psocksd.phar *:52000
In diesem Befehl müssen Sie den Teil des Sterns *
, der angibt, welcher Server auf allen Schnittstellen empfangsbereit ist. Der Teil der Nummer 52000
gibt den Port an, auf dem der SOCKS-Proxyserver empfangsbereit ist. Wir können diesen Port nach Belieben ändern, solange wir keinen bereits verwendeten Port verwenden (ich empfehle, einen Port zwischen 50.000 und 60.000 zu verwenden, um Konflikte zu vermeiden).
Verschiedene Konfigurationsmöglichkeiten von psocksd.
Mit dem Programm psocksd können wir es mit mehr Konfigurationen starten. Wenn wir den Proxy-Server auf die Verwendung des SOCKS 5-Protokolls beschränken möchten , können wir den folgenden Befehl verwenden:
php psocksd.phar socks5://*:52000
Wir können auch die IP der Schnittstelle definieren, auf der der Server lauscht :
php psocksd.phar 192.168.1.2:52000
Wir können einen Benutzernamen und ein Passwort angeben, damit der Client auf den Proxy zugreifen kann:
php psocksd.phar socks5://username:password@*:52000
Interaktiver und nicht interaktiver Modus von psocksd.
Wenn wir psocksd ausführen, wird es standardmäßig im interaktiven Modus ausgeführt, sodass wir Befehle an den Dämon senden können, während er über die Konsole ausgeführt wird.
Wenn wir zum Beispiel den Befehl help
ausführen, werden alle Optionen angezeigt:
psocksd help: help show this very help status show status via list list all forwarding entries via default <target> set given <target> socks proxy as default target via reject <host> reject connections to the given host via add <host> <target> [<priority:int>] add new <target> socks proxy for connections to given <host> via remove <id:uint> remove forwarding entry with given <id> (see "via list") via reset clear and reset all forwarding entries and only connect locally ping <target> ping another SOCKS proxy server via TCP handshake quit | exit shutdown this application
Wir können auch erzwingen, dass der Dämon im nicht interaktiven Modus ausgeführt wird. --no-interaction
wir den --no-interaction
wie im folgenden Befehl:
php psocksd.phar --no-interaction *:52000
In Windows funktioniert es immer im nicht interaktiven Modus, da das Windows-Terminal dies erfordert. Um den Dämon im nicht interaktiven Modus zu stoppen, müssen Sie die Tastenkombination CTRL + C
drücken CTRL + C
Vergessen Sie nicht, dass Sie zur Konfiguration des SOCKS-Proxys im Browser die Daten verwenden müssen, die Sie bei der Konfiguration verwendet haben (IP, Port, Benutzer und Kennwort) .