問題: 我經常需要在桌面版 Ubuntu 中更改系統代理設置,但我不想通過繁瑣的 GUI 菜單點擊:"系統設置" -> "網絡" -> "網絡代理"。在命令行中有更方便的方法更改桌面版的代理設置嗎?
在桌面版 Ubuntu 中,它的桌面環境設置,包括系統代理設置,都存儲在 DConf 數據庫,這是簡單的鍵值對存儲。如果你想通過系統設置菜單修改桌面屬性,更改會持久保存在後端的 DConf 數據庫。在 Ubuntu 中更改 DConf 數據庫有基於圖像用戶界面和非圖形用戶界面的兩種方式。系統設置或者 dconf-editor
是訪問 DConf 數據庫的圖形方法,而 gsettings
或 dconf
就是能更改數據庫的命令行工具。
下面介紹如何用 gsettings
從命令行更改系統代理設置。
gsettings
讀寫特定 Dconf 設置的基本用法如下:
更改 DConf 設置:
$ gsettings set <schema> <key> <value>
讀取 DConf 設置:
$ gsettings get <schema> <key>
桌面版 Ubuntu 中下面的命令會更改 HTTP 代理設置為 "my.proxy.com:8000"。
$ gsettings set org.gnome.system.proxy.http host 'my.proxy.com'
$ gsettings set org.gnome.system.proxy.http port 8000
$ gsettings set org.gnome.system.proxy mode 'manual'
如果你還想更改 HTTPS/FTP 代理為手動,用這些命令:
$ gsettings set org.gnome.system.proxy.https host 'my.proxy.com'
$ gsettings set org.gnome.system.proxy.https port 8000
$ gsettings set org.gnome.system.proxy.ftp host 'my.proxy.com'
$ gsettings set org.gnome.system.proxy.ftp port 8000
更改套接字主機設置為手動:
$ gsettings set org.gnome.system.proxy.socks host 'my.proxy.com'
$ gsettings set org.gnome.system.proxy.socks port 8000
上面的更改都只適用於當前的桌面用戶。如果你想在系統范圍內使用代理設置更改,在 gsettings 命令面前添加 sudo。例如:
$ sudo gsettings set org.gnome.system.proxy.http host 'my.proxy.com'
$ sudo gsettings set org.gnome.system.proxy.http port 8000
$ sudo gsettings set org.gnome.system.proxy mode 'manual'
如果你正在使用 自動配置代理 (proxy auto configuration,PAC),輸入以下命令更改為 PAC。
$ gsettings set org.gnome.system.proxy mode 'auto' $ gsettings set org.gnome.system.proxy autoconfig-url http://my.proxy.com/autoproxy.pac
最後,清除所有“手動/自動”代理設置,還原為無代理設置:
$ gsettings set org.gnome.system.proxy mode 'none'
譯文:https://linux.cn/article-5673-1.html