¿Cómo puedo cambiar el proxy de Firefox desde la aplicación Terminal? No toda la configuración de proxy del ordenador (la de la pestaña Red), sino sólo la de Firefox.
Respuesta
¿Demasiados anuncios?
Shen En Chen
Puntos
11
Aquí hay un shell script que hice para Mac OS X para usar SOCKS, que funciona bien para mí. Puedes modificarlo según tus necesidades. En tu caso, tendrás que modificar los valores de network.proxy.http y network.proxy.http_port en prefs.js
#!/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
0 votos
Echa un vistazo: stackoverflow.com/questions/843340/
0 votos
Ya lo hice. Spotlight no encontró prefs.js, por lo que concluí que OSX modifica algún otro archivo.
1 votos
Está en
$HOME/Library/Application Support/Firefox/Profiles/*.default/prefs.js
y si cambio la configuración del proxy desde Firefox > Preferencias... > Avanzadas > Avanzado > Red > Conexión > Configuración..., elprefs.js
se actualiza con los cambios. Utilice la forma de línea de comandos de Spotlight, en un uso Terminal:mdfind -name prefs.js