设置 socks 代理的命令

设置 socks 代理的命令

我正在通过 ssh 隧道使用 socks 代理

ssh -D 1080 -f -C -q -N <user>@<server>

当我在 中设置代理时System settings > Network > Network proxy,所有类似的应用程序Chromium, Firefox, apt, ...都遵循代理。

在此处输入图片描述

现在我想编写一个用于自动化的shell脚本,如何Network proxy通过终端进行设置?

我发现“使用一些第三方软件,如Tsocks...”。但正如我所说,ubuntu 本身不需要任何第三方软件就可以做到这一点,所以不想使用它们。

我想要的是Network proxy使用终端中的命令设置

答案1

正如@taifwa所说,Ubuntu 中的系统范围代理设置就是解决方案。

这是我的脚本:

    ssh -D ${LOCAL_PORT} -f -C -q -N ${REMOTE_USER}@${REMOTE_HOST} -p ${REMOTE_PORT}

    #set socks setting in System settings > Network > network proxy 
    gsettings set org.gnome.system.proxy mode 'manual'
    gsettings set org.gnome.system.proxy.socks port ${LOCAL_PORT}
    gsettings set org.gnome.system.proxy.socks host 'localhost'
    gsettings set org.gnome.system.proxy ignore-hosts "['localhost', '127.0.0.0/8', '${LOCAL_RANGE}', '::1']"

    sudo su <<-EOF  
    #environment settings
    echo "socks_proxy='socks://localhost:${LOCAL_PORT}/'" >> /etc/environment 
    #apt settings
    echo "Acquire::socks::proxy 'socks://localhost:$LOCAL_PORT/';" >> /etc/apt/apt.conf
    EOF

需要以 root 身份运行才能进行编辑 ,environment并且apt.conf

编辑:


但需要知道的是,org.gnome.system.proxy以 root 身份编辑对当前用户没有影响,因此他们应该以普通用户身份运行。所以不要使用 sudo 运行脚本

相关内容