Іноді мені потрібно відправляти свій трафік на проксі, іноді - ні.
Наразі мені доведеться щоразу переходити до налаштувань, щоб натиснути його.
Чи є якийсь простий спосіб для мене переключити це? Наприклад, використовуйте команду shell для цього.
Іноді мені потрібно відправляти свій трафік на проксі, іноді - ні.
Наразі мені доведеться щоразу переходити до налаштувань, щоб натиснути його.
Чи є якийсь простий спосіб для мене переключити це? Наприклад, використовуйте команду shell для цього.
Відповіді:
Це можна зробити за допомогою networksetup
.
Отримати всі послуги:
networksetup -listallnetworkservices
Потім введіть відповідний сервіс (наприклад, Ethernet або ім'я USB-адаптера 10/100/1000 LAN)
sudo networksetup -setsocksfirewallproxy <networkservice> <domain> <port number> <authenticated> <username> <password>
або
sudo networksetup -setwebproxy <networkservice> <domain> <port number> <authenticated> <username> <password>
конфігурувати його (що не потрібно у вашому випадку, оскільки ви вже ввели всі необхідні значення).
напр
sudo networksetup -setsocksfirewallproxy Ethernet 127.0.0.1 18080
sudo networksetup -setwebproxy Ethernet 127.0.0.1 18080
Щоб просто увімкнути або вимкнути його, використовуйте:
sudo networksetup -setsocksfirewallproxystate networkservice on | off
sudo networksetup -setwebproxystate networkservice on | off
напр
sudo networksetup -setsocksfirewallproxystate Ethernet off
sudo networksetup -setwebproxystate Ethernet off
man networksetup
відкриє інші параметри проксі (gopher, ftp тощо)
Подивіться на цю сторінку в YourMacGuy про команду Terminal networksetup
. Хоча сторінка датована 2008 роком, команда існує і працює в macOS Sierra. Можливо, одна з команд, пов’язаних з проксі, буде працювати для вас. Завжди можна створити кілька локацій у системних налаштуваннях> Мережа, яка може вмикати або вимикати проксі. Однак вам потрібно буде відкрити системні налаштування.
Я роблю це, визначаючи ярлики в Hammerspoon . Тепер я можу переключити системний проксі за допомогою лише ярлика CommandOptionControlP.
Вихідний код доступний на GitHub .
Ось такі кроки налаштування:
networksetup -setwebproxy "Wi-fi" 127.0.0.1 8080
networksetup -setsecurewebproxy "Wi-fi" 127.0.0.1 8080
~/.profile
toggleProxy() {
e=$(networksetup -getwebproxy wi-fi | grep "No")
ns=wi-fi
status=''
if [ -n "$e" ]; then
status=on
else
status=off
fi
echo -n "Turning $status proxy"
networksetup -setstreamingproxystate $ns $status
networksetup -setsocksfirewallproxystate $ns $status
networksetup -setwebproxystate $ns $status
networksetup -setsecurewebproxystate $ns $status
}
~/.hammerspoon/init.lua
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "P", function()
local output = hs.execute("toggleProxy", true)
hs.alert.show(output)
end)
sudo networksetup -setsocksfirewallproxy "USB 10/100/1000 LAN" 127.0.0.1 8888
/sudo networksetup -setsocksfirewallproxystate "USB 10/100/1000 LAN" off
/sudo networksetup -setsocksfirewallproxystate "USB 10/100/1000 LAN" on
Відмінно працює.