В OS X вы включаете и выключаете веб-прокси из "Системные настройки" > "Сеть" > "Прокси", проверяя веб-прокси (HTTP) и определяя веб-прокси-сервер и т.д., и нажав "ОК", а затем "Применить". Это слишком много шагов. Есть ли способ сделать все это из командной строки и оболочки script?
Как вам включить и выключить веб-прокси в os x из командной строки
Ответ 1
Для неаутентифицированного прокси (и считая его службой Ethernet, которую вы хотите настроить):
networksetup -setwebproxy Ethernet proxy.example.net 80 off
для аутентификации:
networksetup -setwebproxy Ethernet proxy.example.net 80 on proxyuser "p4ssw0rd"
и отключить его:
networksetup -setwebproxystate Ethernet off
Если сетевая услуга не называется просто "Ethernet", вам может понадобиться проанализировать networksetup -listallnetworkservices
или -listnetworkserviceorder
, чтобы получить правильное имя.
Ответ 2
Чтобы просто включить/выключить мои прокси в OSX Mavericks, я настроил этот script. Обратите внимание, что этот пример влияет только на мой адаптер wi-fi. Я включаю/выключаю сеть, потоковое и прокси-серверы SOCKS сразу. Вы также можете указать адрес прокси-сервера, в примере Gordon, но я уже сохранил это с помощью графического интерфейса System Preferences > Network > Proxies.
BASH Script, сохраненный как prox.sh:
#!/bin/bash
e=$(networksetup -getwebproxy wi-fi | grep "No")
if [ -n "$e" ]; then
echo "Turning on proxy"
sudo networksetup -setstreamingproxystate wi-fi on
sudo networksetup -setsocksfirewallproxystate wi-fi on
sudo networksetup -setwebproxystate wi-fi on
else
echo "Turning off proxy"
sudo networksetup -setstreamingproxystate wi-fi off
sudo networksetup -setsocksfirewallproxystate wi-fi off
sudo networksetup -setwebproxystate wi-fi off
fi
Затем обозначьте script в командной строке:
ln -s /Script/Location/prox.sh prox-toggle
Теперь вы можете включать/выключать прокси в командной строке:
bash prox-toggle
Ответ 3
Вот Applescript, который включает и выключает прокси-сервер в macworld.
Ответ 4
Я подготовил прокси-сервер с именем script, который может помочь,
#!/bin/bash
#
#
# Author: Md. Sazzad Hissain Khan
# Date: 8 July, 2017
#
#
NETWORK_SERVICE_NAME="Ethernet"
if [ "$#" -ne 1 ]; then
echo "Argument missing [on/off]"
exit 0
fi
if [ $1 == "on" ]; then
echo "Enabling secure proxy for $NETWORK_SERVICE_NAME"
networksetup -setsecurewebproxystate "$NETWORK_SERVICE_NAME" on
elif [ $1 == "off" ]; then
echo "Disabling secure proxy for $NETWORK_SERVICE_NAME"
networksetup -setsecurewebproxystate "$NETWORK_SERVICE_NAME" off
else
echo "Argument invalid [permitted:on/off]"
fi
NETWORK_SERVICE_NAME
- это название вашей активной сети, которую необходимо настроить.
- Создать
proxy
файл в/usr/local/bin.
- Скопировать выше script в
proxy.
- Задайте исполняемые разрешения для файла с помощью
sudo chmod 777 proxy
.
Как использовать:
proxy on
proxy off
Ответ 5
Просто переключение:)
networksetup -setwebproxystate <networkservice> <on off>
networksetup -setsecurewebproxystate <networkservice> <on off>
Пример:
networksetup -setwebproxystate Wi-Fi on
networksetup -setsecurewebproxystate Wi-Fi on
Для обработки предупреждения модификации: префикс sudo
как
sudo networksetup -setwebproxystate Wi-Fi on
sudo networksetup -setsecurewebproxystate Wi-Fi on