我通过System Preferences -> Network -> Advanced -> Proxies
在Mac上设置代理。
是否可以通过bash shell以编程方式执行相同操作?
答案 0 :(得分:28)
您可以将其放在.profile
或.bash_profile
中,也可以在命令行上手动运行:
export http_proxy=http://proxy.server.com:@aproxy:portnumber
export https_proxy=https://proxy.server.com:@aproxy:portnumber
不使用代理进行本地连接也很常见
export no_proxy=localhost,127.0.0.0/8,*.local
答案 1 :(得分:12)
是的,使用networksetup
命令。设置不同类型的代理有单独的选项(例如-setwebproxy
,-setsocksfirewallproxy
等),您需要知道主网络“服务”的名称(例如以太网,机场...基本上,“网络”偏好设置面板侧栏中列出的名称)。这是一个例子:
sudo networksetup -setwebproxy "Ethernet" myproxy.example.com 8000
如果您需要确定服务名称,请使用networksetup -listnetworkserviceorder
或networksetup -listallnetworkservices
,然后解析列表以获取所需服务的名称。
答案 2 :(得分:5)
我使用此脚本通过我的ssh服务器(而不是Web代理)进行代理。
#!/bin/bash
disable_proxy(){
sudo networksetup -setsocksfirewallproxystate Wi-Fi off
sudo networksetup -setsocksfirewallproxystate Ethernet off
echo "SOCKS proxy disabled."
}
trap disable_proxy INT
sudo networksetup -setsocksfirewallproxy Wi-Fi 127.0.0.1 9999
sudo networksetup -setsocksfirewallproxy Ethernet 127.0.0.1 9999
sudo networksetup -setsocksfirewallproxystate Wi-Fi on
sudo networksetup -setsocksfirewallproxystate Ethernet on
echo "SOCKS proxy enabled."
echo "Tunneling..."
ssh -ND 9999 000.000.000.000 -p 00000
将000.000.000.000
更改为您自己的服务器的IP并将00000
更改为您自己的端口,您应该可以将其重复使用自己的ssh服务器。您可以将此脚本保存在名为proxy
的主目录中。
使用./proxy
(输入您的密码)启动它,使用CTRL+C
停止隧道传输。
如果您忘记停止隧道,请再次启动它并使用CTRL+C
停止,第二天您想知道为什么您的互联网连接已关闭。
如果您的管道损坏,请再次启动./proxy
。