Files
ffproxy/ffproxy.sh

157 lines
4.4 KiB
Bash
Raw Normal View History

2025-08-18 15:45:46 +02:00
#!/bin/bash
2025-08-18 21:25:10 +02:00
# FUNZIONE ISTRUZIONI
2025-08-18 15:45:46 +02:00
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 21:25:10 +02:00
# FUNZIONE INSTALLA UBLOCK ORIGIN
2025-08-18 15:45:46 +02:00
function ublock() {
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
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')
2025-08-18 19:30:45 +02:00
mkdir -p /$PROFILE_DIR/extensions
cd /$PROFILE_DIR/extensions
2025-08-18 15:50:08 +02:00
# Scarica ublock Origin
wget -q $LINK_VERS
2025-08-18 19:30:45 +02:00
echo -e "\n Scarico il file: $LINK_VERS\n"
2025-08-18 21:25:10 +02:00
# # Compila il file extension-settings.json
2025-08-18 19:30:45 +02:00
cat <<EOL > /$PROFILE_DIR/extension-settings.json
2025-08-18 16:34:51 +02:00
{
2025-08-18 19:30:45 +02:00
"version": 3,
"url_overrides": {},
"prefs": {
"websites.hyperlinkAuditingEnabled": {
"initialValue": {},
"precedenceList": [
{
"id": "uBlock0@raymondhill.net",
"installDate": 1755534027851,
"value": false,
"enabled": true
}
]
},
"network.networkPredictionEnabled": {
"initialValue": {},
"precedenceList": [
{
"id": "uBlock0@raymondhill.net",
"installDate": 1755534027851,
"value": false,
"enabled": true
}
]
2025-08-18 16:34:51 +02:00
}
2025-08-18 19:30:45 +02:00
},
"tabHideNotification": {},
"homepageNotification": {},
"default_search": {},
"newTabNotification": {},
"commands": {}
2025-08-18 16:34:51 +02:00
}
2025-08-18 15:45:46 +02:00
EOL
fi
2025-08-18 18:05:09 +02:00
# da il nome giusto al file xpi
name=$(ls $PROFILE_DIR/extensions/uBlock*)
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 21:25:10 +02:00
# FUNZIONE ASPETTA E MODIFICA PREFERENCE
function sed_extensions-preferences() {
# Aspetta 3 secondi (per far creare il file extension-preferences.json) e poi lo modifica
sleep 3
ls $PROFILE_DIR/extension-preferences.json
sed -i '$ s/}/,"uBlock0@raymondhill.net":{"permissions":["internal:privateBrowsingAllowed"],"origins":[]}}/' $PROFILE_DIR/extension-preferences.json
}
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"
LINK_VERS=""
2025-08-18 15:45:46 +02:00
VERS=""
incognito_option=""
plugin_option=""
2025-08-18 19:30:45 +02:00
dio="ciao"
2025-08-18 15:45:46 +02:00
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 15:45:46 +02:00
# Modifica prefs.js con configurazione proxy
PREFS_FILE="$PROFILE_DIR/prefs.js"
2025-08-18 19:30:45 +02:00
echo 'u/ser_pref("network.proxy.type", 1);' >> "$PREFS_FILE"
2025-08-18 15:45:46 +02:00
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
# mette nella var il path sbagliato
2025-08-18 19:30:45 +02:00
schifo=$(awk '/socks5-'$PORT'/ && /Path/ {print; exit}' $HOME/.mozilla/firefox/profiles.ini)
# cancella la cartella con nome sbagliato
dio=$(echo $schifo | sed 's/Path=//g')
rm -rf "$HOME/.mozilla/firefox/$dio"
2025-08-18 19:30:45 +02:00
# sotituisce il testo sbagliato con quello giusto nel file profiles.ini
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 19:30:45 +02:00
firefox $incognito_option -no-remote -P "socks5-$PORT" > /dev/null 2>&1 &
# Aspetta 3 secondi (per far creare il file extension-preferences.json) e poi lo modifica
sed_extensions-preferences