การตั้งค่าพร็อกซีทั้งระบบใน Ubuntu


22

ฉันต้องการใช้อินเทอร์เน็ตบนพร็อกซีเซิร์ฟเวอร์วิทยาลัยซึ่งต้องมีการตรวจสอบสิทธิ์ด้วย ผมค้นหา google สำหรับการแก้ปัญหาและทางออกที่ดีที่สุดที่ผมพบว่ายังเป็นนี้ ฉันแก้ไขสคริปต์ในคำตอบที่ยอมรับเพื่อรวมการตรวจสอบความถูกต้อง นี่มันไป:

if [ $(id -u) -ne 0 ]; then
echo "This script must be run as root";
exit 1;
fi

if [ $# -eq 4 ] then

gsettings set org.gnome.system.proxy mode 'manual' ;
gsettings set org.gnome.system.proxy.http host '$1';
gsettings set org.gnome.system.proxy.http port $2;
gsettings set org.gnome.system.proxy.http authentication-user '$3';
gsettings set org.gnome.system.proxy.http authentication-password '$4';


grep PATH /etc/environment > lol.t;
printf \
"http_proxy=http://$3:$4@$1:$2/\n\
 https_proxy=http://$3:$4@$1:$2/\n\
 ftp_proxy=http://$3:$4@$1:$2/\n\
 no_proxy=\"localhost,127.0.0.1,localaddress,.localdomain.com\"\n\
 HTTP_PROXY=http://$3:$4@$1:$2/\n\
 HTTPS_PROXY=http://$3:$4@$1:$2/\n\
 FTP_PROXY=http://$3:$4@$1:$2/\n\
 NO_PROXY=\"localhost,127.0.0.1,localaddress,.localdomain.com\"\n" >> lol.t;

 cat lol.t > /etc/environment;


 printf \
 "Acquire::http::proxy \"http://$3:$4@$1:$2/\";\n\
  Acquire::ftp::proxy \"ftp://$3:$4@$1:$2/\";\n\
  Acquire::https::proxy \"https://$3:$4@$1:$2/\";\n" > /etc/apt/apt.conf.d/95proxies;

rm -rf lol.t;

else

printf "Usage $0 <proxy_ip> <proxy_port> <username> <password>\n";

fi

อย่างไรก็ตามออนไลน์บัญชียังไม่ทำงาน (เหมือนกันสำหรับ Rhythmbox และโปรแกรม GTK3 อื่น ๆ ) หน้าจอสีขาวปรากฏดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ข้อเสนอแนะใด ๆ เกี่ยวกับวิธีการแก้ไข?


คำตอบ:


31

แก้ไขมันในที่สุด:

(ทำตามขั้นตอนตามลำดับ)

1. สำหรับโปรแกรม gtk3 เช่น rhythmbox และบัญชีออนไลน์:

ก่อนอื่นคุณต้องป้อนการตั้งค่าพร็อกซีในการตั้งค่าเครือข่าย (พร้อมด้วยการตรวจสอบ):

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นใช้ระบบกว้าง

2. สำหรับ apt, software center เป็นต้น

แก้ไขไฟล์ /etc/apt/apt.conf

จากนั้นแทนที่ข้อความที่มีอยู่ทั้งหมดด้วยบรรทัดต่อไปนี้

Acquire::http::proxy "http://username:password@host:port/";
Acquire::ftp::proxy "ftp://username:password@host:port/";
Acquire::https::proxy "https://username:password@host:port/";

3. ตัวแปรสภาพแวดล้อม

แก้ไขไฟล์ /etc/environment

จากนั้นเพิ่มบรรทัดต่อไปนี้หลังจาก PATH = "บางอย่างที่นี่"

http_proxy=http://username:password@host:port/
ftp_proxy=ftp://username:password@host:port/
https_proxy=https://username:password@host:port/

นั่นคือทั้งหมด ..


1
ขั้นตอนที่ 1) แก้ไข / etc / environment หรือไม่ ฉันต้องการวิธีที่จะทำขั้นตอนนั้นผ่านบรรทัดคำสั่ง
ลูคัส

ดูเหมือนว่าขั้นตอนที่ 1) ทำงานได้apt-get updateดีเช่นกัน ดังนั้นไม่ต้องการขั้นตอนที่ 2)
smwikipedia

@Raman ฉันจำเป็นต้องหลบเลี่ยงอักขระพิเศษด้วยรหัสผ่านขณะทำสิ่งนี้หรือไม่? ถ้าเป็นเช่นนั้นได้อย่างไร
code_dragon

2

ในการดาวน์โหลดแพ็คเกจโดยใช้ wget proxy ต้องติดตั้งใน / etc / environment และดาวน์โหลดแพ็คเกจโดย apt-get proxy ต้องติดตั้งใน /etc/apt/apt.conf


2
โปรดอธิบายคำตอบของคุณอย่างละเอียดขณะนี้ยังไม่ได้ให้ข้อมูลที่เป็นประโยชน์มากนัก
ผู้บัญชาการ Byte

1
ยินดีต้อนรับสู่ถาม Ubuntu! ฉันขอแนะนำให้แก้ไขคำตอบนี้เพื่อขยายด้วยรายละเอียดเฉพาะเกี่ยวกับวิธีการทำเช่นนี้ (ดูเพิ่มเติมฉันจะเขียนคำตอบที่ดีได้อย่างไรสำหรับคำแนะนำทั่วไปเกี่ยวกับคำตอบประเภทใดที่ถือว่ามีค่ามากที่สุดใน Ask Ubuntu)
David Foerster

1

เพื่อให้wgetทำงานกับพร็อกซี่ฉันจะเพิ่มนอกจากนี้เพื่อสร้าง.wgetrcในไดเรกทอรีบ้านของคุณประกอบด้วย:

http_proxy = http://proxy:port/
https_proxy = http://proxy:port/
proxy_user = user
proxy_password = password
use_proxy = on
wait = 15

1

นั่นไม่ใช่ทั้งหมดแน่นอน บางโปรแกรมมากขึ้น ( npm, curlและgit):

npm config set proxy $HTTP_PROXY
npm config set https-proxy $HTTPS_PROXY
npm config set strict-ssl false
echo "proxy = $HTTP_PROXY" > ~/.curlrc
echo "noproxy = $NO_PROXY" >> ~/.curlrc
git config --global http.proxy $HTTP_PROXY
git config --global https.proxy $HTTPS_PROXY

สำหรับ Maven ~/.m2/settings.xmlแก้ไข IntelliJ ดูเหมือนจะไม่รับการกำหนดค่าส่วนกลาง

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