Đặt cài đặt proxy hệ thống Ubuntu mà không cần khởi động lại từ dòng lệnh


14

Tôi đang sử dụng Ubuntu 14.04. Tôi muốn thay đổi http proxycài đặt từ dòng lệnh. Điều này sẽ tương đương với việc thay đổi trong GUI (Tất cả cài đặt-> Mạng-> Proxy mạng) và nhấp vào nút Apply System Wide. Tôi không muốn khởi động lại / đăng xuất hệ thống vì tôi đang dự định thay đổi cài đặt động từ tập lệnh ( bash).


Askubfox.com/questions/175172/ trên . Trong bình luận của câu trả lời, nó nói phải làm sudo service network manager restart.
Ramesh

@Ramesh nó không hoạt động. Tôi đã trải qua câu hỏi đó.
ma08

Câu trả lời:


15

Từ những gì tôi hiểu, thiết lập proxy toàn hệ thống thông qua GUI đó thực hiện ba điều:

  1. Đặt các giá trị tương ứng trong cơ sở dữ liệu dconf.
  2. Đặt các giá trị trong /etc/environment.
  3. Đặt các giá trị trong /etc/apt/apt.conf.

1 và 3 có hiệu lực ngay lập tức. /etc/environmentđược phân tích cú pháp khi đăng nhập, vì vậy bạn sẽ cần phải đăng xuất và đăng nhập để có hiệu lực. (Lưu ý rằng đây là đăng nhập phù hợp, không chỉ đơn thuần là chạy vỏ đăng nhập.) Tập lệnh sau phải tương đương (giả sử proxy http / https):

#! /bin/bash
HTTP_PROXY_HOST=proxy.example.com
HTTP_PROXY_PORT=3128
HTTPS_PROXY_HOST=proxy.example.com
HTTPS_PROXY_PORT=3128

gsettings set org.gnome.system.proxy mode manual
gsettings set org.gnome.system.proxy.http host "$HTTP_PROXY_HOST"
gsettings set org.gnome.system.proxy.http port "$HTTP_PROXY_PORT"
gsettings set org.gnome.system.proxy.https host "$HTTPS_PROXY_HOST"
gsettings set org.gnome.system.proxy.https port "$HTTPS_PROXY_PORT"

sudo sed -i.bak '/http[s]::proxy/Id' /etc/apt/apt.conf
sudo tee -a /etc/apt/apt.conf <<EOF
Acquire::http::proxy "http://$HTTP_PROXY_HOST:$HTTP_PROXY_PORT/";
Acquire::https::proxy "http://$HTTPS_PROXY_HOST:$HTTPS_PROXY_PORT/";
EOF

sudo sed -i.bak '/http[s]_proxy/Id' /etc/environment
sudo tee -a /etc/environment <<EOF
http_proxy="http://$HTTP_PROXY_HOST:$HTTP_PROXY_PORT/"
https_proxy="http://$HTTPS_PROXY_HOST:$HTTPS_PROXY_PORT/"
EOF

Mặc dù nó yêu cầu đăng nhập lại để PAM áp dụng /etc/environmentở mọi nơi, nhưng trong trình bao hiện tại, bạn vẫn có thể trích xuất các giá trị trong tệp đó:

export http_proxy=$(pam_getenv http_proxy)

@ ma08 Sản lượng của gsettings get org.gnome.system.proxy mode; gsettings get org.gnome.system.proxy.http host; gsettings get org.gnome.system.proxy.http port;cái gì?
muru

Bây giờ tôi gặp sự cố, khi tôi chạy tập lệnh như người dùng bình thường, cảnh báo xuất hiện (process:9662): dconf-WARNING **: failed to commit changes to dconf: Could not connect: Connection refused cho mỗi lệnh trong gsinstall. Nếu tôi chạy nó dưới quyền root, nó hoạt động tốt nhưng đầu ra của các lệnh trên (get) là những thay đổi chỉ trong root chứ không phải ở người dùng bình thường.
ma08

Aaarghh .. Kịch bản chết tiệt chứa đầy lỗi. Đó là ba tôi phải sửa. : / Trong lần thứ hai sudo tee, lưu ý rằng tên tệp là /etc/environmentvà không/etc/apt/apt.conf . Bạn có thể phải xóa các mục rác trong apt.conf.
muru

Vấn đề dường như là cảnh báo tôi đã nói trong bình luận trước đó.
ma08

1
Cảm ơn bạn, kịch bản của bạn hoạt động và câu trả lời trong liên kết đã giúp khắc phục lỗi đó. Tôi nên tự sửa lỗi. Cảm ơn rất nhiều.
ma08

3

Tôi đã tạo một công cụ, ProxyMan, để đơn giản hóa toàn bộ tác vụ. Bạn có thể tải nó từ liên kết này .

Ngoài ra, bạn có thể xem mã nếu bạn quan tâm hơn để biết chức năng phụ trợ. Tải xuống tệp zip, giải nén chúng, đi đến vị trí của các tệp được giải nén trong thiết bị đầu cuối và các lệnh sau sẽ giúp bạn:

  • bash main.sh: để đặt và hủy đặt proxy.
  • bash proxy_check.sh: để kiểm tra cài đặt proxy hiện tại của bạn.

1
Đây là một công cụ nhỏ tuyệt vời! Tiết kiệm cho tôi một tấn công việc!
Gh0sT

-2

Tôi nghĩ rằng điều này nên tránh đau đầu:

Video cài đặt proxy

Một hướng dẫn xuất sắc, chạy trong python. Cài đặt cài đặt proxy đơn giản và được xác thực trong Ubuntu 12.04 / 12.10 / 13.04 / 13.10 / 14.04 / 14.10 và hoạt động trên 100%.

Giải pháp 1 Hệ thống phải được cài đặt "python". Với trình thông dịch đang chạy lệnh: Command: "sudo python setproxy.py [Proxy_Server] [proxy_port] [PROXY_USER] [proxy_password]"

Video: https://www.youtube.com/watch?v=eBtzKa-dvJg

[ Proxy_Server ] : proxy.test.ts
[ Proxy_port ] : 8080
[ PROXY_USER ] : domainuser
[ Proxy_password ] : " the_password "

Giải pháp 2: các lệnh:

"Sudo apt- get install python- support"
"Sudo apt- get install ntlmaps "

Điền vào các trường thích hợp:

- Proxy server
- Proxy port
- User
- Password

2
Để làm cho điều này thành một câu trả lời tốt, ít nhất bạn nên phác thảo các bước.
Julie Pelletier
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.