Linux網(wǎng)絡(luò)代理服務(wù)器的搭建及使用方式
Linux網(wǎng)絡(luò)代理服務(wù)器搭建及使用
測(cè)試環(huán)境
- 代理服務(wù)器:centos 7
- 使用代理的客戶端:win 10
搭建代理服務(wù)器
centos安裝代理軟件:squid
yum install squid -y yum install httpd-tools -y
創(chuàng)建賬戶密碼文件
mkdir /etc/squid/ htpasswd -cd /etc/squid/passwords your_username #提示輸入密碼,比如輸入!@#$%- -!gagaga ok #按ctrl+c退出
接下來(lái)重中之重,修改配置文件,首先打開配置文件(也可用vi)
vim /etc/squid/squid.conf
因?yàn)橐球?yàn)證用戶名密碼才能使用我們的代理服務(wù)器,所以這里要在最后一行再增加很多很多行- -,如下。
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwords acl auth_user proxy_auth REQUIRED http_access allow auth_user cache_mem 64 MB maximum_object_size 4 MB minimum_object_size 0 KB maximum_object_size_in_memory 4096 KB cache_dir ufs /var/spool/squid 100 16 256 cache_log /var/log/squid/cache.log access_log /var/log/squid/access.log logfile_rotate 60 cache_swap_high 95 cache_swap_low 90 # Hide client ip # forwarded_for delete # Deny request for original source of a request follow_x_forwarded_for deny all # See below request_header_access X-Forwarded-For deny all request_header_access Via deny all http_port 0.0.0.0:(your port不要復(fù)制粘貼哦?。? visible_hostname squid.packet-pushers.net
記得要注釋這些行
#http_access allow localnet #http_access allow localhost 類似這些的東東
作為IT人員,我們嚴(yán)謹(jǐn)?shù)淖鲆幌?ldquo;單元測(cè)試”,看看配置文件有沒有問題,終端輸入指令:squid -k parse
如果沒問題是不會(huì)報(bào)錯(cuò)的,如下
2020/03/20 14:23:12| Startup: Initializing Authentication Schemes ...
2020/03/20 14:23:12| Startup: Initialized Authentication Scheme 'basic'
2020/03/20 14:23:12| Startup: Initialized Authentication Scheme 'digest'
2020/03/20 14:23:12| Startup: Initialized Authentication Scheme 'negotiate'
2020/03/20 14:23:12| Startup: Initialized Authentication Scheme 'ntlm'
2020/03/20 14:23:12| Startup: Initialized Authentication.
……#省略了n行- -
OK,既然沒問題,那就開啟代理服務(wù)器吧!
#(停止為stop) systemctl start squid.service #開機(jī)自啟動(dòng) systemctl enable squid.service
客戶端使用代理服務(wù)器
打開瀏覽器的internet屬性選項(xiàng),如下設(shè)置之后就可以使用代理服務(wù)器上網(wǎng)嘍(當(dāng)然還會(huì)彈出窗口,讓您輸入用戶名密碼)
Linux設(shè)置網(wǎng)絡(luò)代理
設(shè)置網(wǎng)絡(luò)代理操作簡(jiǎn)介
設(shè)置臨時(shí)代理(僅在當(dāng)前shell會(huì)話生效)
# export http_proxy=http://ip:port # export https_proxy=http://ip:port
設(shè)置永久代理
# vi /etc/profile # export http_proxy=http://ip:port # export https_proxy=http://ip:port # source /etc/profile
取消代理
# unset http_proxy # unset https_proxy
有關(guān)網(wǎng)絡(luò)代理的幾個(gè)環(huán)境變量
環(huán)境變量 | 介紹 | 取值 |
http_proxy | http協(xié)議的網(wǎng)絡(luò)連接使用該代理。 | ip:port http://ip:port socks://ip:port socks4://ip:port socks4://ip:port |
https_proxy | https協(xié)議的網(wǎng)絡(luò)連接使用該代理。 | 同上 |
ftp_proxy | ftp協(xié)議使用該代理。 | 同上 |
all_proxy | 所有網(wǎng)絡(luò)協(xié)議的網(wǎng)絡(luò)連接都使用該代理, all_proxy變量的優(yōu)先級(jí)低于http_proxy等。 | 同上 |
no_proxy | 無(wú)需代理的主機(jī)和域名, 支持通配符, 多個(gè)主機(jī)/域名之間使用逗號(hào)間隔。 | localhost,10.*,*.ad.com, |
幾個(gè)環(huán)境變量中,all_proxy指定了全部協(xié)議都可以通過(guò)這個(gè)代理,它的優(yōu)先級(jí)要低于其他變量。
例如系統(tǒng)配置了http_proxy和all_proxy變量,則curl在進(jìn)行http訪問的時(shí)候會(huì)通過(guò)http_proxy指定的代理,在進(jìn)行https訪問的時(shí)會(huì)首先嘗試通過(guò)https_proxy指定的代理,但是由于并沒有設(shè)置https_proxy,最終all_proxy指定的代理生效。
代理協(xié)議簡(jiǎn)介
export http_proxy=http://ip:port
這里的兩個(gè)http可能會(huì)引起誤解,簡(jiǎn)單解釋就是:
環(huán)境變量http_proxy指明了為哪種網(wǎng)絡(luò)協(xié)議配置代理,這里是http協(xié)議。即只有http協(xié)議的網(wǎng)絡(luò)請(qǐng)求會(huì)使用該環(huán)境變量配置的代理,其它網(wǎng)絡(luò)協(xié)議,sftp等,則不會(huì)使用該環(huán)境變量配置的代理。
而其取值中的http,則表示的是代理服務(wù)器的服務(wù)協(xié)議,即系統(tǒng)與代理服務(wù)通信時(shí)使用的協(xié)議,比較常見的代理協(xié)議有
- http://
- https://
- socks://
另外還有
- ss://
- ssr://
- vmess://
等。
絕大部分程序都會(huì)支持http://協(xié)議的代理,大部分程序會(huì)支持socks://協(xié)議。
ss://、ssr://、vmess://等代理協(xié)議需要專用軟件支持,并且由這些專用軟件將另外將數(shù)據(jù)轉(zhuǎn)換為http://、socks://協(xié)議以供其他應(yīng)用使用。
http/https代理
工作在應(yīng)用層上,能夠代理客戶機(jī)的http和https訪問請(qǐng)求。
socks代理
工作在會(huì)話層,可以代理包括HTTP、HTTPS、POP3、SMTP、FTP、SFTP等各種類型的網(wǎng)絡(luò)請(qǐng)求。
SOCKS 代理又分為 SOCKS4 和 SOCKS5。
SOCK4僅支持TCP,SOCKS5 代理則既支持 TCP 協(xié)議又支持 UDP 協(xié)議,還支持身份驗(yàn)證機(jī)制、服務(wù)器端域名解析等。
可以明確使用
- socks4://ip:port
- socks5://ip:port
來(lái)區(qū)分協(xié)議版本,特別地,用socks5h://來(lái)替代socks5://,可以讓域名解析在代理服務(wù)器進(jìn)行,防止DNS污染。
使用示例
1. 訪問特定網(wǎng)絡(luò)地址,無(wú)法訪問
# wget http://www.google.com --2022-11-25 20:26:46-- https://www.google.com/ Resolving www.google.com (www.google.com)... 104.244.46.63, 2001::480e:cf5f Connecting to www.google.com (www.google.com)|104.244.46.63|:443... ^C
2. 配置網(wǎng)絡(luò)代理
# export https_proxy=http://xx.xx.xx.xx:9707
重新執(zhí)行
# wget http://www.google.com
仍然無(wú)法訪問,這是因?yàn)楸敬尉W(wǎng)絡(luò)訪問使用的是http協(xié)議,而設(shè)置的環(huán)境變量卻是https_proxy,假設(shè)改用https來(lái)訪問:
# wget https://www.google.com
則訪問成功;同理,如果配置的是環(huán)境變量是http_proxy:
# export http_proxy=http://xx.xx.xx.xx:9707
則網(wǎng)絡(luò)請(qǐng)求:
# wget http://www.google.com
能夠執(zhí)行成功。
常見問題
代理無(wú)效
網(wǎng)絡(luò)代理的環(huán)境變量只能算是建議,實(shí)際運(yùn)行的程序不一定會(huì)去使用環(huán)境變量配置的網(wǎng)絡(luò)代理,此時(shí)對(duì)應(yīng)程序?qū)⒗@過(guò)代理配置直接執(zhí)行網(wǎng)絡(luò)連接,表現(xiàn)為代理配置無(wú)效。
另外,還有環(huán)境變量的大小寫問題,有的應(yīng)用可能會(huì)去讀取HTTP_PROXY等大寫的環(huán)境變量,此時(shí)自然讀取不到對(duì)應(yīng)的值,這種情況下,可以通過(guò)對(duì)大小寫的環(huán)境變量同時(shí)設(shè)置的方式來(lái)保證兼容性,例如:
# export http_proxy=http://xx.xx.xx.xx:9707 # export HTTP_PROXY=http://xx.xx.xx.xx:9707 # export Http_Proxy=http://xx.xx.xx.xx:9707
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
ubuntu16.04在python3 下創(chuàng)建Django項(xiàng)目并運(yùn)行的操作方法
這篇文章主要介紹了ubuntu16.04在python3 下創(chuàng)建Django項(xiàng)目并運(yùn)行,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09解決nginx/apache靜態(tài)資源跨域訪問問題詳解
有時(shí)為了優(yōu)化網(wǎng)站訪問速度,會(huì)給一些靜態(tài)資源配置cdn加速,但是有時(shí)候會(huì)出現(xiàn)跨域訪問的問題,在nginx和apache服務(wù)中可進(jìn)行如下配置2018-10-10Linux文件編輯命令vi詳細(xì)整理(總結(jié))
本篇文章主要介紹了Linux文件編輯命令詳細(xì)整理(總結(jié)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07