ฉันจะตั้งค่าพร็อกซีเซิร์ฟเวอร์ทั่วทั้งระบบใน Xubuntu, Lubuntu หรือ Ubuntu Studio ได้อย่างไร


82

ฉันไม่พบการตั้งค่าพร็อกซีที่ใดเลย ฉันต้องตั้งค่าผ่านเทอร์มินัลผ่านgconftoolsหรือมี GUI บางส่วนอยู่หรือไม่?

คำตอบ:


114

พร็อกซีทั้งระบบใน Ubuntu Studio, Xubuntu และ XFCE จะต้องตั้งค่าผ่านตัวแปรสภาพแวดล้อม

อูบุนตูสตูดิโอเช่น Xubuntu ใช้สภาพแวดล้อมเดสก์ทอป XFCE ซึ่งไม่ได้มีเครื่องมือที่มีการตั้งค่ากราฟิกในการตั้งค่าพร็อกซี systemwide ( แตกต่างจากสภาพแวดล้อมเดสก์ทอป Ubuntu เริ่มต้นสามัคคี )

1. ตั้งค่าพร็อกซี / พร็อกซี่สำหรับโปรแกรมส่วนใหญ่

  • เปิด/etc/environmentไฟล์ด้วยgksudo leafpad(หรือตัวแก้ไขรายการโปรดของคุณ) ไฟล์นี้จัดเก็บตัวแปรทั่วทั้งระบบซึ่งเริ่มต้นได้เมื่อบูต
  • เพิ่มบรรทัดต่อไปนี้ปรับเปลี่ยนอย่างเหมาะสม คุณต้องทำซ้ำทั้งตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเพราะ (น่าเสียดาย) บางโปรแกรมมองหาโปรแกรมใดโปรแกรมหนึ่งเท่านั้น:

    http_proxy = http: //myproxy.server.com: 8080 /
    https_proxy = http: //myproxy.server.com: 8080 /
    ftp_proxy = http: //myproxy.server.com: 8080 /
    no_proxy = "localhost, 127.0.0.1, localaddress, .localdomain.com"
    http_proxy = http: //myproxy.server.com: 8080 /
    https_proxy = http: //myproxy.server.com: 8080 /
    ftp_proxy = http: //myproxy.server.com: 8080 /
    no_proxy = "localhost, 127.0.0.1, localaddress, .localdomain.com"
    

2. จากนั้นตั้งค่าพรอกซีสำหรับโปรแกรม GTK3 เช่น Rhythmbox:

โปรแกรม GTK3 รุ่นใหม่บางตัวเช่น Rhythmbox จะไม่สนใจตัวแปรสภาพแวดล้อมที่ตั้งไว้ด้านบนและพึ่งพาการตั้งค่า Gnome แทน เพื่อให้แน่ใจว่าได้รับการคุ้มครองให้เปิดเทอร์มินัลแล้ววางบรรทัดด้านล่างต่อบรรทัดโดยแก้ไขตามความเหมาะสม:

gsettings set org.gnome.system.proxy mode 'manual' 
gsettings set org.gnome.system.proxy.http host 'myproxy.server.com'
gsettings set org.gnome.system.proxy.http port 8080

3. ในที่สุดให้ตั้งค่าพรอกซีสำหรับapt-getและ Update Manager

  • โปรแกรมเหล่านี้จะไม่เชื่อฟังตัวแปรสภาพแวดล้อมเช่นกัน สร้างไฟล์ที่เรียกว่า95proxiesใน/etc/apt/apt.conf.d/และรวมถึงต่อไปนี้:

    ได้รับ :: http :: proxy "http://myproxy.server.com:8080/";
    ได้รับ :: ftp :: proxy "ftp://myproxy.server.com:8080/";
    ได้รับ :: https :: proxy "https://myproxy.server.com:8080/";
    

ในที่สุดออกจากระบบและรีบูตเพื่อให้แน่ใจว่าการเปลี่ยนแปลงมีผล


แหล่งที่มา: 1 , 2 , 3 ดู 1 โดยเฉพาะสำหรับความช่วยเหลือเพิ่มเติมรวมถึงสคริปต์เพื่อเปิด / ปิดพรอกซีอย่างรวดเร็ว


สคริปต์สำหรับการเปิด / ปิดพร็อกซีเซิร์ฟเวอร์ :

Disclaimer:ก่อนที่จะดำเนินการต่อโปรดทราบว่าฉันได้ลองนี้ใน Lubuntu 14.04 และเป็นสิ่งสำคัญที่ก่อนที่คุณจะเรียกใช้สคริปต์ที่กล่าวถึงไฟล์/etc/environmentควรมีเพียงหนึ่งบรรทัดในนั้นคือ '$ PATH ... ' และไม่ควรมีอะไรอื่น ในไฟล์อื่นคุณอาจต้องแก้ไขรหัสของสคริปต์ สคริปต์เหล่านี้ตั้งค่าและยกเลิกการตั้งค่าพร็อกซีตามที่อธิบายไว้ข้างต้น แต่ขึ้นอยู่กับการตัดทอนไฟล์และไฟล์ต่อท้ายเพื่อการเปลี่ยนแปลง/etc/environmentและ/etc/apt/apt.conf.d/95proxiesไฟล์ ดังนั้นตรวจสอบให้แน่ใจว่า:

1) /etc/environmentมีเพียงหนึ่งบรรทัดเช่น '$ PATH: ... ' และไม่มีอะไรอื่น

2) ไฟล์/etc/apt/apt.conf.d/95proxiesไม่มีอยู่หรือไม่มีอะไรสำคัญเลย

ดังนั้น! หากคุณต้องการให้กระบวนการเปิดและปิดพรอกซีอัตโนมัติโดยไม่ต้องพิมพ์การจัดสรร คุณสามารถสร้างเชลล์สคริปต์ที่รันได้สองไฟล์proxyon.shและproxyoff.shเป็น:

proxyon.sh:

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

if [ $# -eq 2 ]
  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;


  grep PATH /etc/environment > lol.t;
  printf \
  "http_proxy=http://$1:$2/\n\
  https_proxy=http://$1:$2/\n\
  ftp_proxy=http://$1:$2/\n\
  no_proxy=\"localhost,127.0.0.1,localaddress,.localdomain.com\"\n\
  HTTP_PROXY=http://$1:$2/\n\
  HTTPS_PROXY=http://$1:$2/\n\
  FTP_PROXY=http://$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://$1:$2/\";\n\
  Acquire::ftp::proxy \"ftp://$1:$2/\";\n\
  Acquire::https::proxy \"https://$1:$2/\";\n" > /etc/apt/apt.conf.d/95proxies;

  rm -rf lol.t;

  else

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

fi

proxyoff.sh:

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

gsettings set org.gnome.system.proxy mode 'none' ;

grep PATH /etc/environment > lol.t;
cat lol.t > /etc/environment;

printf "" > /etc/apt/apt.conf.d/95proxies;

rm -rf lol.t;

วิธีใช้ : เมื่อคุณสร้างสคริปต์เหล่านี้แล้วทำให้สามารถเรียกใช้งานได้คุณสามารถเก็บไว้ที่ใดก็ได้ที่คุณต้องการ เมื่อต้องการเปิดใช้พร็อกซี่ทั้งหมดที่คุณต้องทำคือไปที่ไดเรกทอรีที่มี 'proxyon.sh' sudo ./proxyon.sh {host} {port}สคริปต์และจากนั้นคุณต้องพิมพ์ เป็นตัวอย่างให้พิจารณาสิ่งนี้:

 $ sudo ./proxyon.sh 10.2.20.17 8080
 OR
 $ sudo ./proxyon.sh myproxy.server.com 8080

โดยที่ '10 .2.20.17 'เป็น IP ของพร็อกซีเซิร์ฟเวอร์ - คุณสามารถพิมพ์บางอย่างเช่น myproxy.server.com - และ' 8080 'เป็นพอร์ต หลังจากนั้นเพียงออกจากระบบและลงชื่อเข้าใช้บัญชีของคุณเพื่อให้แน่ใจว่าทุกอย่างถูกตั้งค่า คุณสามารถเริ่มใช้อินเทอร์เน็ตหรืออะไรก็ได้ และเมื่อคุณต้องการปิดพรอกซีให้ไปที่ไดเรกทอรีที่มี 'proxyoff.sh' และพิมพ์:

 $ sudo ./proxyoff.sh

นี่จะเป็นการล้างผู้รับมอบฉันทะทั้งหมดของคุณ ตอนนี้ออกจากระบบและลงชื่อเข้าใช้อีกครั้งเพื่อเปลี่ยนเป็นโหมดปกติ


1
ที่เกี่ยวข้อง: superuser.com/questions/357688/…
Grzegorz Oledzki

หากคุณต้องการรับรองความถูกต้องสำหรับ apt-get proxy คุณสามารถตั้งค่าได้ดังนี้: Acquire :: http :: proxy " user: pass@myproxy.server.com: 8080 ";
Jim Ford

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

เพื่อความปลอดภัยขณะใช้งาน WiFi สาธารณะฉันพยายามกำหนดค่าเบราว์เซอร์ Chromium ของฉัน (ใน Xubuntu 16.04 LTS) เพื่อส่งคำขอหน้าเว็บทั้งหมดผ่านทางพร็อกซี PuTTY Socks5 ที่ localhost: 10001 ซึ่งถูกส่งผ่าน Raspberry Pi ที่บ้านในขณะที่ฉัน ออกไปจากบ้าน คำแนะนำข้างต้นใช้ไม่ได้กับพร็อกซี่ Socks5 ดูเหมือนว่าดังนั้นหวังว่าฉันจะเข้าใจได้ (หมายเหตุ: Firefox นั้นง่ายเนื่องจากสามารถตั้งค่าพร็อกซีภายใน FireFox ได้ แต่ฉันต้องการตั้งค่าพร็อกซีสำหรับ Chromium และ apt-get ด้วย - โดยเฉพาะอย่างยิ่งกับคำขอ DNS ที่ผ่านพร็อกซีด้วย)
Gabriel Staples

หากคุณสามารถเพิ่มคำแนะนำ / การปรับเปลี่ยนพร็อกซีของถุงเท้า 5 ได้นั่นก็จะเป็นประโยชน์เช่นกัน ขอบคุณ!
Gabriel Staples

8

มีเครื่องมือกราฟิกที่เรียกว่า UbProxy ซึ่งตั้งค่าพร็อกซี systema ทั้งหมดผ่านอินเทอร์เฟซแบบกราฟิก (GUI) ปัญหาเดียวสำหรับฉันคือฉันต้องออกจากระบบผู้ใช้ของฉันและเข้าสู่ระบบอีกครั้งเพื่อโหลดการตั้งค่า ใช้ง่ายมาก https://code.google.com/p/ubproxy/


ดูมีแนวโน้ม
Dee

คุณสามารถกำหนดค่าพร็อกซีต่างๆที่ต้องการโดยแอพพลิเคชั่นต่างๆโดยอัตโนมัติเมื่อคุณเชื่อมต่อกับ WiFi หรือแม้กระทั่งเชื่อมต่อเครือข่ายแบบใช้สาย ดู: gist.github.com/frgomes/544014b53e5384e00847da20b3e1da5b
Richard Gomes

3

ฉันมีฟังก์ชั่นบางอย่างสำหรับจัดการกับสิ่งนั้น เรียกพวกเขาเช่นนี้

myProxyOn

https://gist.github.com/fernando-basso/6352040

#!/usr/bin/env bash

# gsettings list-recursively org.gnome.system.proxy

# Change de ip address and port number accordingly.
function myProxyOn() {
    gsettings set org.gnome.system.proxy mode 'manual' # ' manual / nome / automatic '
    gsettings set org.gnome.system.proxy.http host '10.0.0.1'
    gsettings set org.gnome.system.proxy.http port 8080
    gsettings set org.gnome.system.proxy.https host '10.0.0.1'
    gsettings set org.gnome.system.proxy.https port 8080
    gsettings set org.gnome.system.proxy.ftp host '10.0.0.1'
    gsettings set org.gnome.system.proxy.ftp port 8080

    echo "Configuração do 'System Proxy' settada para 'manual', com host 10.0.0.1, port 8080."
}

function myProxyOff() {
    gsettings set org.gnome.system.proxy mode 'none' # ' manual / nome / automatic '
    echo "Proxy cofigurado para 'none'."
}

function proxyOn() { # {{{
    #echo -n 'Username: '
    #read -e username
    #echo -n 'Password: '
    #read -es password
    #echo ''
    echo 'Setting variable "http_proxy"...'
    #export http_proxy="http://$username:$password@172.17.0.1:8080/"
    export http_proxy="http://10.0.0.1:8080/"
    echo 'Setting variable "https_proxy..."'
    export https_proxy="https://10.0.0.1:8080/"
    echo 'Setting variable "ftp_proxy"...'
    #export ftp_proxy="http://$username:$password@172.17.0.1:8080/"
    export ftp_proxy="ftp://10.0.0.1:8080/"
    echo 'Done!'
}

function proxyOff() {
    unset HTTP_PROXY
    unset http_proxy
    unset FTP_proxy
    unset ftp_proxy
    echo -e "\nProxy environment variables removed!"
}

1
ที่เป็นข้อเสนอแนะอันยิ่งใหญ่ในการจัดเก็บรหัสผ่านในแฟ้มข้อความ
BЈовић

1
@ BЈовић: คุณพูดถูก ในกรณีของฉันมันเป็นรหัสผ่านพร็อกซี uni สาธารณะดังนั้นฉันคิดว่ามันไม่สำคัญ
เฟอร์นันโดบาสโซ

ความคิดใดวิธีการกำหนดค่าพร็อกซีถุงเท้า?
Gabriel Staples

0

ไม่จำเป็นต้องรีสตาร์ททั้งระบบสำหรับ apt-get tweak ผ่านไฟล์ proxy95 ใน /etc/apt/apt.conf.d

  • มันใช้งานได้ทันทีหลังจากเขียนไฟล์และ
  • มันจะหายไปทันทีหลังจากที่ไฟล์หายไป

พิจารณาสคริปต์เพื่อเปิดใช้งานและปิดการใช้งานไฟล์โดยเปลี่ยนชื่อเป็น * .bak เพื่อเปลี่ยนพร็อกซีอย่างรวดเร็วหากจำเป็น


-3

ไปที่การตั้งค่าประเภทแรกของระบบ Dash Home คลิกการตั้งค่าระบบจากนั้นเครือข่ายการตั้งค่า Proxy จะปรากฏให้คุณเห็น คลิกที่ความกว้างของระบบ มันอาจทำงานได้เหมือนในการตั้งค่าพร็อกซีของระบบ


1
Studio ใช้ xfce ไม่ใช่ ubuntu
23 93 26 35 19 57 3 89

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