ตั้งค่าการตั้งค่าพร็อกซีระบบ Ubuntu โดยไม่ต้องรีสตาร์ทจาก commandline


14

Ubuntu 14.04ฉันใช้ ฉันต้องการเปลี่ยนการhttp proxyตั้งค่าจากบรรทัดคำสั่ง นี้ควรจะเทียบเท่ากับการเปลี่ยนแปลงใน GUI (ทุกการตั้งค่า> Network-> พร็อกซี่เครือข่าย) Apply System Wideและคลิกที่ปุ่ม ฉันไม่ต้องการรีสตาร์ท / ออกจากระบบเนื่องจากฉันวางแผนที่จะเปลี่ยนการตั้งค่าแบบไดนามิกจากสคริปต์ ( bash)


askubuntu.com/questions/175172/… . sudo service network manager restartในความคิดเห็นของคำตอบมันบอกว่าจะทำอย่างไร
Ramesh

@Ramesh มันไม่ทำงาน ฉันผ่านคำถามนั้นไปแล้ว
ma08

คำตอบ:


15

จากสิ่งที่ฉันเข้าใจการตั้งค่าพร็อกซีทั้งระบบผ่าน GUI นั้นทำได้สามสิ่ง:

  1. ตั้งค่าที่สอดคล้องกันในฐานข้อมูล dconf
  2. ตั้งค่า/etc/environmentเป็น
  3. ตั้งค่า/etc/apt/apt.confเป็น

1 และ 3 มีผลทันที /etc/environmentมีการแยกวิเคราะห์ในการเข้าสู่ระบบดังนั้นคุณจะต้องออกจากระบบและเข้าสู่ระบบเพื่อให้มีผล (โปรดทราบว่านี่เป็นการเข้าสู่ระบบที่เหมาะสมไม่ใช่เพียงแค่เรียกใช้เชลล์การเข้าสู่ระบบ) สคริปต์ต่อไปนี้ควรเทียบเท่า (สมมติว่า http / https proxies http):

#! /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

แม้ว่าจะต้องมีการลงชื่อเข้าใช้อีกครั้งสำหรับ PAM เพื่อนำไปใช้/etc/environmentทุกที่ในเชลล์ปัจจุบันคุณยังสามารถแยกค่าในไฟล์นั้นได้:

export http_proxy=$(pam_getenv http_proxy)

@ ma08 ผลลัพธ์ของgsettings get org.gnome.system.proxy mode; gsettings get org.gnome.system.proxy.http host; gsettings get org.gnome.system.proxy.http port;อะไร?
muru

ตอนนี้ฉันพบปัญหาเมื่อฉันเรียกใช้สคริปต์ในฐานะผู้ใช้ปกติคำเตือนจะปรากฏขึ้น(process:9662): dconf-WARNING **: failed to commit changes to dconf: Could not connect: Connection refusedสำหรับแต่ละคำสั่งในการตั้งค่า ถ้าฉันเรียกใช้มันในฐานะ root มันจะทำงานได้ดี แต่ผลลัพธ์ของคำสั่งด้านบน (รับ) เป็นสิ่งที่เปลี่ยนแปลงใน root แต่ไม่ใช่ในผู้ใช้ปกติ
ma08

Aaarghh .. สคริปต์แช่งเกลื่อนไปด้วยแมลง นั่นคือสามฉันต้องแก้ไข : / ในสองsudo teeทราบว่าชื่อไฟล์เป็นและไม่ได้/etc/environment /etc/apt/apt.confคุณอาจต้องลบรายการขยะใน apt.conf
muru

ปัญหาน่าจะเป็นคำเตือนที่ฉันพูดในความคิดเห็นก่อนหน้านี้
ma08

1
ขอบคุณสคริปต์ของคุณทำงานได้ดีและคำตอบนั้นในลิงก์ช่วยให้ได้รับข้อผิดพลาดนั้น ฉันควรทำการดีบักตัวเองแล้ว ขอบคุณมาก.
ma08

3

ฉันสร้างเครื่องมือ ProxyMan เพื่อทำให้งานทั้งหมดง่ายขึ้น คุณสามารถดาวน์โหลดได้จากลิงค์นี้

นอกจากนี้คุณสามารถดูรหัสได้หากคุณสนใจที่จะรู้ว่าแบ็กเอนด์ทำงานได้ดีขึ้น ดาวน์โหลดไฟล์ zip แยกไฟล์ไปที่ตำแหน่งของไฟล์ที่แตกแล้วในเทอร์มินัลและคำสั่งต่อไปนี้จะช่วยคุณ:

  • bash main.sh: เพื่อตั้งค่าและยกเลิกการตั้งค่าพร็อกซี
  • bash proxy_check.sh: เพื่อตรวจสอบการตั้งค่าพร็อกซีปัจจุบันของคุณ

1
นี่เป็นเครื่องมือเล็ก ๆ ที่น่าทึ่ง! ช่วยฉันทำงานหลายอย่าง!
Gh0sT

-2

ฉันคิดว่านี่ควรหลีกเลี่ยงอาการปวดหัว:

วิดีโอการตั้งค่าพร็อกซี

บทช่วยสอนที่ยอดเยี่ยมทำงานในหลาม การตั้งค่าพร็อกซีที่เรียบง่ายและผ่านการรับรองความถูกต้องใน Ubuntu 12.04 / 12.10 / 13.04 / 13.10 / 14.04 / 14.10 และสูงกว่าการทำงาน 100%

โซลูชันที่ 1 ระบบจะต้องติดตั้ง "python" ด้วยล่ามที่รันคำสั่ง: คำสั่ง: "sudo python setproxy.py [Proxy_Server] [proxy_port] [PROXY_USER] [proxy_password]"

วิดีโอ: https://www.youtube.com/watch?v=eBtzKa-dvJg

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

โซลูชันที่ 2: คำสั่ง:

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

กรอกข้อมูลในฟิลด์ตามความเหมาะสม:

- Proxy server
- Proxy port
- User
- Password

2
เพื่อให้เป็นคำตอบที่ดีคุณควรอย่างน้อยที่สุดควรทำขั้นตอน
Julie Pelletier
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.