#!/bin/bash function istruzioni() { echo "[Utility per tunnel SOCKS5 su Chromium]" echo echo "utilizzo: ffproxy [-i] [-p]" echo echo "esempio:" echo "Su una finestra del terminale: ssh user@server.mio -D 1234" echo "Su un'altra finestra del terminale: ffproxy 1234" echo "Argomenti" echo "-i attiva incognito mode" echo "-p uBlock Origin preinstallato" } # Funzione scarica e installa ublock origin function ublock() { # Se la cartella del profilo sock5$PORT nonn esiste if [ ! -d "/home/$USER/.mozilla/firefox/ffproxy/socks5-$PORT/extensions" ]; then # Trova la vers attuale e crea la cartella con il nome della porta VERS=$(curl -s "https://api.github.com/repos/gorhill/uBlock/releases/latest" | jq -r .tag_name | sed 's/..$//') mkdir -p /home/$USER/.mozilla/firefox/ffproxy/socks5-$PORT/extensions cd /home/$USER/.mozilla/firefox/ffproxy/socks5-$PORT/extensions # Scarica ublock Origin wget -q https://github.com/gorhill/uBlock/releases/download/$VERS.1b7/uBlock0_$VERS.1b7.firefox.signed.xpi # Compila il manifest.json cat < ~/.mozilla/firefox/ffproxy/socks5-$PORT/extensions/manifest.json { "manifest_version": 2, "name": "uBlock Origin", "version": "$VERS.1b7", "applications": { "gecko": { "id": "uBlock0@raymondhill.net" } } } EOL fi } # Mostra Help if [ "$1" = "-h" -o "$1" = "--help" ] then istruzioni exit 3 fi # Variabili PORT=$1 PROFILE_DIR="$HOME/.mozilla/firefox/ffproxy/socks5-$PORT" VERS="" incognito_option="" plugin_option="" # Crea un nuovo profilo Firefox se non esiste if [ ! -d "PROFILE_DIR" ]; then mkdir -p "$PROFILE_DIR" firefox -no-remote -CreateProfile "socks5-$PORT" "$PROFILE_DIR" # Modifica prefs.js con configurazione proxy PREFS_FILE="$PROFILE_DIR/prefs.js" echo 'user_pref("network.proxy.type", 1);' >> "$PREFS_FILE" echo 'user_pref("network.proxy.socks", "127.0.0.1");' >> "$PREFS_FILE" echo "user_pref(\"network.proxy.socks_port\", $PORT);" >> "$PREFS_FILE" echo 'user_pref("network.proxy.socks_remote_dns", true);' >> "$PREFS_FILE" fi # Check argomenti for arg in "$@"; do case $arg in -i) incognito_option="--private-window" ;; -p) ublock ;; -ip) incognito_option="--private-window" ublock ;; -pi) ublock incognito_option="--private-window" ;; esac done # Mostra comando da avviare echo -e '\nfirefox '$incognito_option $plugin_option' -no-remote -P "socks5-'$PORT'"\n' # Avvia Firefox con quel profilo firefox $incognito_option -no-remote -P "socks5-$PORT" > /dev/null 2>&1 &