98 lines
2.8 KiB
Bash
98 lines
2.8 KiB
Bash
#!/bin/bash
|
|
|
|
function istruzioni() {
|
|
echo "[Utility per tunnel SOCKS5 su Chromium]"
|
|
echo
|
|
echo "utilizzo: ffproxy <SOCKS5 PORT[1025-65535]> [-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 <<EOL > ~/.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 &
|