如何通过bash shell设置代理?

Mis*_*hko 13 macos bash shell proxy

我在Mac上设置了代理服务器System Preferences -> Network -> Advanced -> Proxies.

可以通过bash shell以编程方式执行相同的操作吗?

max*_*kie 29

你可以把这个在你.profile.bash_profile或命令行上手动运行:

export http_proxy=http://proxy.server.com:@aproxy:portnumber
export https_proxy=https://proxy.server.com:@aproxy:portnumber
Run Code Online (Sandbox Code Playgroud)

不使用代理进行本地连接也很常见

export no_proxy=localhost,127.0.0.0/8,*.local
Run Code Online (Sandbox Code Playgroud)


Gor*_*son 13

是的,使用networksetup命令.设置不同类型的代理(例如-setwebproxy,-setsocksfirewallproxy等)有单独的选项,您需要知道主要网络"服务"的名称(例如以太网,机场...基本上,网络侧边栏中列出的名称偏好窗格).这是一个例子:

sudo networksetup -setwebproxy "Ethernet" myproxy.example.com 8000
Run Code Online (Sandbox Code Playgroud)

如果需要确定服务名称,请使用networksetup -listnetworkserviceordernetworksetup -listallnetworkservices,然后解析列表以获取所需服务的名称.


lin*_*eak 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
Run Code Online (Sandbox Code Playgroud)

更改000.000.000.000为您自己的服务器的IP和00000端口,您应该可以在您自己的ssh服务器上重用它。您可以将此脚本保存在名为say的主目录中proxy

使用./proxy(键入您的密码)启动它,用于CTRL+C停止隧道。

CTRL+C如果您忘记停止隧道传输,请重新启动它并停止运行。第二天,您想知道为什么Internet连接断开。

如果管道破裂,请重新开始./proxy