【发布时间】:2011-12-29 10:53:03
【问题描述】:
我在 Mac 上通过System Preferences -> Network -> Advanced -> Proxies 设置了代理。
是否可以通过 bash shell 以编程方式执行相同的操作?
【问题讨论】:
我在 Mac 上通过System Preferences -> Network -> Advanced -> Proxies 设置了代理。
是否可以通过 bash shell 以编程方式执行相同的操作?
【问题讨论】:
你可以把它放在你的.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
【讨论】:
export https_proxy=http://proxy.server.com:@aproxy:portnumber 代替! (请注意缺少的s!)
是的,使用networksetup 命令。有用于设置不同类型代理的单独选项(例如-setwebproxy、-setsocksfirewallproxy 等),您需要知道主网络“服务”的名称(例如以太网、机场……基本上,列出的名称在“网络”偏好设置面板的边栏中)。这是一个例子:
sudo networksetup -setwebproxy "Ethernet" myproxy.example.com 8000
如果你需要找出服务名称,使用networksetup -listnetworkserviceorder或networksetup -listallnetworkservices,然后解析列表得到你想要的服务名称。
【讨论】:
我使用这个脚本通过我的 ssh 服务器(不是网络代理)进行代理。
#!/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 服务器上重用它。您可以将此脚本保存在名为 say proxy 的主目录中。
以./proxy 开始(输入您的密码),使用CTRL+C 停止隧道。
如果您忘记停止隧道并且第二天您想知道为什么您的互联网连接中断,请重新启动并停止 CTRL+C。
如果管道损坏,请重新启动./proxy。
【讨论】: