2025-08-18 15:45:46 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
function istruzioni() {
|
2025-08-18 16:34:51 +02:00
|
|
|
echo -e "\n[Utility per tunnel SOCKS5 su Chromium]"
|
2025-08-18 15:45:46 +02:00
|
|
|
echo
|
2025-08-18 16:34:51 +02:00
|
|
|
echo "utilizzo: ffproxy <1025-65535> [-i] [-p]"
|
2025-08-18 15:45:46 +02:00
|
|
|
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"
|
2025-08-18 18:09:37 +02:00
|
|
|
echo "-p uBlock Origin preinstallato"
|
|
|
|
|
echo -e "-h Mostra questo help\n"
|
|
|
|
|
|
2025-08-18 15:45:46 +02:00
|
|
|
}
|
|
|
|
|
|
2025-08-18 15:50:08 +02:00
|
|
|
# Funzione scarica e installa ublock origin
|
2025-08-18 15:45:46 +02:00
|
|
|
function ublock() {
|
2025-08-18 18:03:08 +02:00
|
|
|
|
2025-08-18 16:34:51 +02:00
|
|
|
# Se la cartella del profilo socks-$PORT non esiste
|
|
|
|
|
if [ ! -d "/home/$USER/.mozilla/firefox/socks5-$PORT/extensions" ]; then
|
|
|
|
|
# Trova la versione attuale e crea la cartella con il nome della porta
|
2025-08-18 18:03:08 +02:00
|
|
|
VERS=$(curl -s "https://api.github.com/repos/gorhill/uBlock/releases/latest" | jq -r .tag_name )
|
|
|
|
|
LINK_VERS=$(curl -s https://api.github.com/repos/gorhill/uBlock/releases/latest | jq -r '.assets[] | select(.name | test("firefox")) | .browser_download_url')
|
|
|
|
|
mkdir -p $PROFILE_DIR/extensions
|
|
|
|
|
cd $PROFILE_DIR/extensions
|
2025-08-18 15:50:08 +02:00
|
|
|
|
|
|
|
|
# Scarica ublock Origin
|
2025-08-18 18:03:08 +02:00
|
|
|
wget -q $LINK_VERS
|
|
|
|
|
echo -e "\n$LINK_VERS\n"
|
|
|
|
|
|
|
|
|
|
# Compila il manifest.json
|
|
|
|
|
cat <<EOL > $PROFILE_DIR/extensions/manifest.json
|
2025-08-18 16:34:51 +02:00
|
|
|
{
|
|
|
|
|
"manifest_version": 2,
|
|
|
|
|
"name": "uBlock Origin",
|
|
|
|
|
"version": "$VERS.1b7",
|
|
|
|
|
"applications": {
|
|
|
|
|
"gecko": {
|
|
|
|
|
"id": "uBlock0@raymondhill.net"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-08-18 15:45:46 +02:00
|
|
|
EOL
|
|
|
|
|
|
|
|
|
|
fi
|
2025-08-18 18:03:08 +02:00
|
|
|
|
2025-08-18 18:05:09 +02:00
|
|
|
# da il nome giusto al file xpi
|
|
|
|
|
name=$(ls $PROFILE_DIR/extensions/uBlock*)
|
|
|
|
|
echo $name
|
|
|
|
|
echo 'mv $name $PROFILE_DIR/extensions/uBlock0@raymondhill.net.xpi'
|
|
|
|
|
mv "$name" "$PROFILE_DIR/extensions/uBlock0@raymondhill.net.xpi"
|
2025-08-18 15:45:46 +02:00
|
|
|
}
|
|
|
|
|
|
2025-08-18 16:34:51 +02:00
|
|
|
|
2025-08-18 15:50:08 +02:00
|
|
|
# Mostra Help
|
2025-08-18 15:45:46 +02:00
|
|
|
if [ "$1" = "-h" -o "$1" = "--help" ]
|
|
|
|
|
then
|
|
|
|
|
istruzioni
|
|
|
|
|
exit 3
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Variabili
|
|
|
|
|
PORT=$1
|
2025-08-18 16:34:51 +02:00
|
|
|
PROFILE_DIR="$HOME/.mozilla/firefox/socks5-$PORT"
|
2025-08-18 18:03:08 +02:00
|
|
|
LINK_VERS=""
|
2025-08-18 15:45:46 +02:00
|
|
|
VERS=""
|
|
|
|
|
incognito_option=""
|
|
|
|
|
plugin_option=""
|
|
|
|
|
|
2025-08-18 15:50:08 +02:00
|
|
|
# Crea un nuovo profilo Firefox se non esiste
|
2025-08-18 16:34:51 +02:00
|
|
|
if [ ! -d "$PROFILE_DIR" ]; then
|
2025-08-18 15:45:46 +02:00
|
|
|
|
|
|
|
|
mkdir -p "$PROFILE_DIR"
|
|
|
|
|
firefox -no-remote -CreateProfile "socks5-$PORT" "$PROFILE_DIR"
|
2025-08-18 18:03:08 +02:00
|
|
|
|
2025-08-18 15:45:46 +02:00
|
|
|
# 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"
|
2025-08-18 15:50:08 +02:00
|
|
|
fi
|
2025-08-18 15:45:46 +02:00
|
|
|
|
2025-08-18 18:03:08 +02:00
|
|
|
|
|
|
|
|
# mette nella var il path sbagliato
|
|
|
|
|
schifo=$(awk '/socks5-'$PORT'/ && /Path/ {print; exit}' $HOME/.mozilla/firefox/profiles.ini) ; echo "$schifo"
|
|
|
|
|
|
|
|
|
|
dio=$(echo $schifo | sed 's/Path=//g')
|
|
|
|
|
#echo $dio
|
|
|
|
|
#echo "$HOME/.mozilla/firefox/$dio"
|
|
|
|
|
rm -rf "$HOME/.mozilla/firefox/$dio"
|
|
|
|
|
|
|
|
|
|
# sotituisce il testo sbagliato con quello giusto
|
|
|
|
|
sed -i '/socks5-'$PORT'/ { /Path/ s/'$schifo'/Path=socks5-'$PORT'/; }' $HOME/.mozilla/firefox/profiles.ini
|
|
|
|
|
|
|
|
|
|
|
2025-08-18 15:45:46 +02:00
|
|
|
# Check argomenti
|
|
|
|
|
for arg in "$@"; do
|
|
|
|
|
case $arg in
|
|
|
|
|
-i)
|
2025-08-18 16:34:51 +02:00
|
|
|
incognito_option=" --private-window "
|
2025-08-18 15:45:46 +02:00
|
|
|
;;
|
|
|
|
|
-p)
|
|
|
|
|
ublock
|
|
|
|
|
;;
|
|
|
|
|
-ip)
|
2025-08-18 16:34:51 +02:00
|
|
|
incognito_option=" --private-window "
|
2025-08-18 15:45:46 +02:00
|
|
|
ublock
|
|
|
|
|
;;
|
|
|
|
|
-pi)
|
|
|
|
|
ublock
|
2025-08-18 16:34:51 +02:00
|
|
|
incognito_option=" --private-window "
|
2025-08-18 15:45:46 +02:00
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Mostra comando da avviare
|
2025-08-18 16:34:51 +02:00
|
|
|
echo -e '\nfirefox'$incognito_option'-no-remote -P "socks5-'$PORT'"\n'
|
2025-08-18 15:45:46 +02:00
|
|
|
|
|
|
|
|
# Avvia Firefox con quel profilo
|
2025-08-18 18:03:08 +02:00
|
|
|
firefox $incognito_option -no-remote -P "socks5-$PORT" > /dev/null 2>&1 &
|