Ändern Sie den Firefox-Proxy vom Terminal

Wie kann ich den Proxy für Firefox in der Terminal-App ändern? Nicht die gesamten Computer-Proxy-Einstellungen (die auf der Registerkarte Netzwerk), sondern nur die von Firefox.

Ich habe es bereits getan. Spotlight hat keine prefs.js gefunden, daher bin ich zu dem Schluss gekommen, dass OSX eine andere Datei modifiziert.
Es ist in $HOME/Library/Application Support/Firefox/Profiles/*.default/prefs.jsund wenn ich die Proxy-Einstellung von Firefox > Einstellungen ... > Erweitert > Netzwerk > Verbindung > Einstellungen ... ändere, prefs.jswird die Datei mit den Änderungen aktualisiert! Verwenden Sie das Befehlszeilenformular von Spotlight in einem Terminal:mdfind -name prefs.js

Antworten (1)

Hier ist ein Shell-Skript, das ich für Mac OS X entworfen habe, um SOCKS zu verwenden, was für mich in Ordnung ist. Sie können es an Ihre Bedürfnisse anpassen. Für Sie müssen Sie die Werte von network.proxy.http und network.proxy.http_port in prefs.js ändern

#!/bin/bash
FIREFOX="/Applications/Firefox.app/Contents/MacOS/firefox"
PREDIR="$(ls $HOME/Library/Application\ Support/Firefox/Profiles/ | grep release)"
PREFILE="prefs.js"
FULLPATH="$HOME/Library/Application Support/Firefox/Profiles/$PREDIR/$PREFILE"

#IPADDR="localhost"
#PORT="7777"
#PROXYTYPE="1"

IPADDR="$1"
PORT="$2"
PROXYTYPE="$3"

TMPSOCKS="/tmp/network.proxy.socks.tmp"
TMPSOCKSPORT="/tmp/network.proxy.socks_port.tmp"


# Insert an ip into firefox for the proxy if there isn't one
if ! grep 'network.proxy.socks\"' "$FULLPATH" 
  then 
    echo "no network.proxy.socks defined"
    echo "no need to save value"
    echo 'user_pref("network.proxy.socks", "'"$IPADDR"'");' >> "$FULLPATH"
    echo 'user_pref("network.proxy.socks", "'"$IPADDR"'");' placed in $FULLPATH
  else 
    echo "network.proxy.socks exists, preserving value ..."
    grep 'network.proxy.socks\"' "$FULLPATH" > "$TMPSOCKS"
    sed -i '' 's/^.*network.proxy.socks".*$/user_pref("network.proxy.socks", "'"$IPADDR"'");/' "$FULLPATH"
  echo replaced network.proxy.socks to $IPADDR
fi

# Set the port
if ! grep network.proxy.socks_port "$FULLPATH" 
  then 
    echo "no network.proxy.socks_port value defined"
    echo "no need to save value"
    echo 'user_pref("network.proxy.socks_port", '''$PORT''');' >> "$FULLPATH" 
    echo 'user_pref("network.proxy.socks_port", '''$PORT''');' placed in "$FULLPATH"
  else 
    echo "network.proxy.socks_port found, preserving value ..."
    grep network.proxy.socks_port "$FULLPATH" > $TMPSOCKSPORT
    sed -i '' 's/^.*network.proxy.socks_port.*$/user_pref("network.proxy.socks_port", '''$PORT''');/' "$FULLPATH" 
    echo inserted port $PORT to network.proxy.socks_port
fi

# Turn on the proxy
if ! grep network.proxy.type  "$FULLPATH"
  then echo 'user_pref("network.proxy.type", '''$PROXYTYPE''');' >> "$FULLPATH" 
  else sed -i '' 's/^.*network.proxy.type.*$/user_pref("network.proxy.type", '''$PROXYTYPE''');/' "$FULLPATH" 
fi

# Open Firefox ...
/Applications/Firefox.app/Contents/MacOS/firefox

# After Firefox is closed, need to replace the original value
if [ -f "$TMPSOCKS" ];
    then 
    ORGSOCKS=`cat $TMPSOCKS`
    sed -i '' 's/^.*network.proxy.socks".*$/'''$ORGSOCKS'''/' "$FULLPATH"
fi
if [ -f "$TMPSOCKSPORT" ];
    then 
    ORGSOCKSPORT=`cat $TMPSOCKSPORT`
    sed -i '' 's/^.*network.proxy.socks_port.*$/'''$ORGSOCKSPORT'''/' "$FULLPATH"
fi

# Turn off the proxy
if ! grep network.proxy.type  "$FULLPATH"
  then echo 'user_pref("network.proxy.type", 0);' >> "$FULLPATH"
  else sed -i '' 's/^.*network.proxy.type.*$/user_pref("network.proxy.type", 0);/' "$FULLPATH"
fi