Cum se configurează smartphone-uri și PC-uri. Portal de informare
  • Acasă
  • Ştiri
  • Server proxy de pe orice computer cu orice sistem. Crearea unui server proxy

Server proxy de pe orice computer cu orice sistem. Crearea unui server proxy

Bună ziua Prieteni, mulți dintre voi se gândesc la cum să vă configurați serverele proxy individuale în care să funcționeze rețelele sociale, în motoarele de căutare sau în alte scopuri. Mulți au încercat să-și ridice propriile proxy, dar rezultatul nu a fost încununat de succes Astăzi vreau să vă spun cum, folosind exemplul unuia dintre numeroasele servicii, puteți configura un proxy pentru uz personal, al cărui cost va varia de la 80 de ruble, dacă ridicați cel puțin 5 proxy, iar cu fiecare proxy nou prețul pentru 1 proxy va scădea doar. Deci, dacă ridicați 20 de proxy, prețul va fi de doar 58 de ruble. Deci, să începem.

Înregistrarea unui server în serviciul Gigspace și comandarea IP-urilor suplimentare

În primul rând, trebuie să închiriem un server de la serviciul Gigspace.ru, pentru a face acest lucru, urmați linkul >><< Нажимаем кнопку «Заказать» под VDS.

După aceea, suntem redirecționați către pagina de comandă, dar, deoarece sistemul lor nu este perfecționat, trebuie să mergem din nou la pagina: http://gigspace.ru/vds_msk.php și să selectăm un plan tarifar pe această pagină.

După ce facem clic, vom fi redirecționați către pagina de înregistrare din sistem ca client nou. Selectați tipul de client - „Client nou”.

Completăm formularul de înregistrare, nu voi demonstra completarea formularului, deoarece trebuie doar să introduceți datele dvs. acolo, cred că oricine poate face față completării formularului dacă caută subiectul ridicării propriilor proxy.

După completare, selectați primul plan tarifar, al cărui nume este GiGv-1 M1 (230 RUR/lună)

Mai jos indicăm că serverul nu va avea un nume de domeniu și faceți clic pe butonul „Următorul”.

Apoi, selectați perioada de plată, plătesc întotdeauna pentru o lună de utilizare, deoarece uneori nu este nevoie să comandați un proxy pentru o perioadă mai lungă, dar dacă plătiți pentru o perioadă mai lungă, veți primi o reducere. Punem o bifare lângă elementul „IP suplimentar (50 rub./lună)”, indică numărul de ip-uri de care avem nevoie, aceste ip-uri vor fi serverele noastre proxy, indică numărul 5, deoarece datele ip vor fi suficiente pentru mine acum, puteți comanda o altă cantitate. Nu avem nevoie de copii de rezervă. Apoi, introduceți codul promoțional. dacă este primită. Pentru abonații mei, ofer un cod promoțional pentru o reducere de 5%, dar numai după ce m-am contactat personal prin e-mail: [email protected] cu subiectul scrisorii COD PROMO pentru Gigspace. Apoi faceți clic pe butonul „Următorul”.

La al treilea pas al plasării unei comenzi, scrieți în comentariu: „ Bună ziua Aș dori să folosesc adrese IP suplimentare ca proxy pentru a lucra pe rețelele sociale„, sau ceva de genul ăsta. Dacă nu scrieți că IP-urile vor fi utilizate pentru traficul proxy, atunci va trebui să faceți pași suplimentari pentru a le configura

După ce facem clic pe butonul, suntem redirecționați către pagina pentru alegerea unei metode de plată, prefer întotdeauna să plătesc prin WebMoney sau Yandex Money, așa că aleg WebMoney. Și puteți alege, la discreția dvs., sunt disponibile QIWI, Yandex Money, WebMoney și plata folosind Roboxchange (Robokass).

În continuare, trecem prin procedura standard de plată a facturii prin sistemul selectat și așteptăm aproximativ 10 minute - 24 de ore, totul depinde de momentul comandării serviciului. În acest sens, Gigspace este lent, dar prețurile la servicii nu sunt mari. De îndată ce serverul dvs. virtual este creat, veți primi o notificare prin e-mail despre crearea serverului.

Configurarea serverelor proxy folosind terminalul putty

Acum să trecem la partea distractivă - configurarea serverelor proxy. Am primit un mesaj prin e-mail despre crearea cu succes a serverului, acum ne interesează datele pentru accesarea serverului prin protocolul SSH, care ne-au venit prin poștă.

Și un program de conectare la server prin SSH, numit Putty, îl puteți descărca de la următorul >> link<<

După ce ați descărcat arhiva cu programul, extrageți arhiva și rulați fișierul numit „PUTTY.exe”. Introduceți adresa IP în câmpul „Nume gazdă” și faceți clic pe „Deschidere”.

Acum in fereastra de introducere introducem login-ul care a venit la mail si parola, parola in Putty trebuie introdusa apasand tastele Shift+Insert, la introducerea parolei nu se va afisa deloc, tine cont de asta , după introducerea parolei, apăsați „Enter”.

Dacă parola este introdusă cu succes, va apărea linia #

Dacă nu apare, introduceți din nou parola apăsând Shift+Insert.

Acum trebuie să aflăm adresele noastre IP, pentru a face acest lucru mergem din nou la e-mail și găsim următorul conținut în mesaj.

Acum o listă cu toate adresele IP pe care le-ați comandat ar trebui să apară vizavi, dacă această listă nu este acolo, scrieți un bilet, uneori uită să conecteze un IP suplimentar, deși acest lucru s-a întâmplat o singură dată când lucrați cu gigspace. După ce IP-ul suplimentar este conectat, lista va fi afișată.

Deoarece conectez 5 ip-uri suplimentare, în listă voi avea 1 ip principal și 5 dintre cele suplimentare ale mele, adică. putem ridica 6 proxy în total.

Acum revenim din nou la consola de chit, in primul rand intram comanda ifconfig pentru a determina dacă adrese IP suplimentare sunt conectate la placa de rețea a serverului. Dacă după introducerea comenzii vedem dispozitivele venet0:0, venet0:1 etc., atunci hosterul a configurat și conectat adresele IP comandate la placa de rețea, dacă nu este cazul, atunci vă puteți conecta manual folosind; comanda: ifconfig eth0:1 xxx.xxx.xxx.xxx 255.255.255.0 up, unde xxx.xxx.xxx.xxx este una dintre adresele dvs. IP, trimitem, în mod similar, comenzi pentru toate IP-urile disponibile, schimbând ultima cifră din eth0:1 în eth0:2, eth0:3 etc.

După ce ne-am asigurat că adresele IP sunt conectate la placa de rețea, trebuie să instalăm depozitul epel pentru instalarea ulterioară a software-ului 3 proxy pentru a configura un server proxy, deoarece aceste hosteri furnizează sistemul de operare Centos 5, comanda de instalare a depozitului va fi următoarea: rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm. După instalare, consola va afișa următoarele:

Acum instalăm software-ul pentru configurarea proxy-ului de trafic 3proxy, pentru a face acest lucru rulăm comanda: yum instalează 3proxy -y. Așteptăm finalizarea instalării.

Să instalăm editorul de text nano convenabil, îl poți folosi pe cel standard, dar eu prefer editorul nano. Executăm comanda: yum instalează nano.

Să facem o copie de rezervă a configurației 3proxy cu comanda: mv /etc/3proxy.cfg /etc/3proxy.cfg.back.

Acum să edităm configurația 3proxy, care va fi responsabilă pentru funcționarea proxy-urilor noastre. Deci, hai să rulăm comanda: nano /etc/3proxy.cfg. În fața noastră se va deschide un fișier gol. Prefer să configurez un proxy cu autorizare de conectare și parolă, așa că voi demonstra cum să configurez un proxy cu autorizare de conectare și parolă. Introduceți următoarele linii la începutul fișierului apăsând tastele Shift+Insert:

demon
auth puternic
username:CL:pass
culoare
nserver 8.8.8.8
nscache 65536
timeouts 1 5 30 60 180 1800 15 60

proiecta auth puternic este responsabil pentru autorizarea prin autentificare și parolă, atunci când utilizați în continuare proxy-urile, numele de utilizator și permisul sunt login-ul și parola prin care doriți ca proxy-urile să fie accesibile. :CL: nu e nevoie sa te atingi!

Dacă doriți să configurați autorizarea prin IP, în loc de auth puternic scriem: auth iponly. Ștergem linia utilizatorilor... și adăugăm adresele IP de încredere pentru proxy scriind rândurile: permite * xxx.xxx.xxx.xxx. Unde xxx.xxx.xxx.xxx este o adresă IP de încredere. De asemenea, puteți seta mai multe adrese IP și autentificări cu parole pentru proxy.

Acum să trecem la configurarea proxy-urilor în sine, ți-am pregătit un fișier excel, pe care îl poți descărca de pe >> link<<, чтобы упростить работы с прописыванием прокси в конфиге. Http прокси прописываются следующим образом в конфиге:

proxy -n -a -p8050 -i192.168.0.1 -e192.168.0.1

Acolo unde puteți specifica orice port, de la 1 la 65535, puteți specifica portul la discreția dvs. din motive de securitate, vă sfătuiesc să utilizați valori peste 10000. 192.168.0.1 este una dintre adresele dvs. IP conectate la server; pe care îl veți folosi ca proxy.

Proxy-urile de șosete sunt scrise astfel:

ciorapi -p1000 -i192.168.0.1 -e192.168.0.1

De asemenea, îți setezi propriul port și IP-ul tău.

Folosind fișierul excel pe care l-ați descărcat mai sus, puteți face rapid construcțiile necesare pentru configurare introducând adresele dvs. IP în loc de xxx.xxx.xxx.xxx, asigurați-vă că înlocuiți porturile, și specificați login-urile și parolele pentru proxy, copiați structurile existente din coloanele „http result” și „socks result” și lipiți-le în config.

În cele din urmă, configurația completă va arăta astfel:

Acum apăsați ctrl+x pentru a salva configurația și apăsați Y pentru a confirma salvarea fișierului, apoi apăsați Enter.

Gata, configurația noastră este gata, scrieți informațiile în fișierul de pornire rulând comanda: chkconfig 3proxy activat

Lansăm 3proxy cu comanda: pornirea serviciului 3proxy

Să verificăm dacă proxy-urile noastre funcționează, folosesc browserul Mozilla Firefox pentru a verifica, pentru a face acest lucru, deschideți Browserul, mergeți la „Setări” -> „Avansat” -> „Rețea” -> „Configurare”, selectați „ Setare manuală server proxy", introduceți unul dintre ip-urile și porturile pe care le-ați specificat, aplicați setările. Acum să încercăm să mergem pe orice site. Când apare fereastra de autorizare proxy, vă felicit, ați configurat totul. Fereastra ar trebui să apară așa.

Acum închideți consola cu comanda Ieșire sau doar traversați ferestrele și mulțumiți-vă cu proxy-urile configurate, prieteni! 😉

Concluzie

Astăzi am demonstrat cum să vă configurați propriile servere proxy pentru munca anonima pe internet. Voi spune imediat că există o mulțime de hosteri în afară de gigspace, dar mi-au plăcut acești hosteri tocmai pentru ceea ce oferă pret rezonabil pentru IP suplimentar și servere care funcționează stabil.

Dacă vă configurați proxy-urile cu alți hosteri, acest manual parțial potrivit pentru dvs., dacă aveți întrebări legate de configurare, mă puteți contacta în comentariile la această postare, cred că vă pot ajuta la rezolvarea întrebărilor.

Nu uitați să vă abonați la blog și să distribuiți această postare rețelele sociale! Nu mai plăti intermediari, fă-ți propriile proxy pentru mai puțin! Și în piață prețurile pentru proxy sunt acum mușcător, vă asigur. 😉

Mulți utilizatori care doresc să navigheze pe Internet în siguranță încearcă să afle cum să-și afle serverul proxy - adresa IP și portul. Cum să faci asta și de ce este nevoie? Importanța și non-trivialitatea problemei ridicate se explică prin scopul procurării. Sarcina sa principală este de a ascunde IP-ul personal al utilizatorului prin înlocuirea acestuia cu o altă adresă.

Mai des, acest serviciuîn cerere în sfera SMM unde trebuie să intri conturi diferite pe rețelele sociale de pe un singur computer. Acest lucru reduce riscul de blocare a contului la zero și nu provoacă suspiciuni din partea moderatorilor. Uneori folosesc. Pentru a ilustra problema ridicată, amintiți-vă de cazurile în care ați vizitat un site străin cu dorința de a viziona un videoclip sau de a folosi servicii, dar a apărut un avertisment că vizionarea era limitată la regiunea dvs. Asemenea situații apar tot timpul, dar din cauza lipsei de cunoștințe în întrebarea cum să vă aflați serverul și portul proxy, aceste probleme pot părea de nerezolvat. În plus, acest lucru afectează semnificativ capacitatea utilizatorului de a obține informatii utile, care ar putea fi obținută cu cunoștințele corespunzătoare.

Mulți oameni folosesc proxy-uri dedicate. Obiectivele pot fi foarte diferite: pornind de la utilizare individualăși vizualizarea resurselor web blocate, terminând cu segmentul corporativ, unde se utilizează cantitate uriașă proxy. Dar, în același timp, nu toată lumea poate găsi răspunsul: cum să aflați serverul proxy în care este utilizat momentul prezent. Să încercăm să luăm în considerare cele mai eficiente opțiuni cu care poți afla cu ușurință toate informațiile necesare.

Cum să aflați adresa serverului proxy - prima metodă

A doua cale

Pentru a spune figurativ, nu trebuie întotdeauna să „urcați un munte” pentru a ajunge la destinația dorită. Uneori trebuie să fii inteligent și să ocoliți „muntele” cu tact. Răspunsul la modul de a afla adresa proxy poate fi obținut de într-un mod simplu. Tot ce trebuie să faceți este să contactați administratorul de sistem care întreține rețeaua locală. Are suficientă competență să se uite la proxy și să vi-l transmită. Dificultatea este că nu toată lumea poate afla cum să contacteze administrator de sistem. Pentru a rezolva această problemă, vă recomandăm să contactați mai mulți oameni cunoscători. Vă vor spune unde să sunați pentru a contacta administratorul.

A treia cale

În panoul de control al computerului, găsiți și deschideți „ mediu de rețea" În el, faceți clic pe „afișare conexiuni de rețea", și apoi "conexiuni prin retea locala" Faceți clic pe el clic dreaptași selectați proprietăți. În fereastra care se deschide, trebuie să găsiți protocolul Internet TPC\IP. Selectați din nou „proprietăți”. Dacă există o bifă lângă „obține automat o adresă IP”, atunci nu se utilizează un proxy dedicat, dacă există numere (de exemplu, 10.0.0.20), atunci aceasta va fi adresa proxy-ului necesar.

Cum să aflați portul proxy

Pe lângă adresă și parolă, mulți utilizatori ar putea fi interesați de întrebarea cum să afle portul proxy. Acesta este un alt parametru care este utilizat atunci când lucrați cu . De regulă, se folosesc valori standard pentru port: 8080, 80 etc. Numai în cazuri rare, valoarea diferă. Adresa portului poate fi vizualizată în browser urmând pașii descriși mai sus. Valoarea sa este scrisă lângă adresa IP. Portul de lucru prin care este conectat efectiv proxy-ul dumneavoastră trebuie să corespundă valorii declarate în setările sistemului sau browserului, altfel conexiunea dumneavoastră la Internet nu va funcționa.

Vă va permite să vă accelerați munca cu software-ul SEO și rețelele sociale.

Acum haideți să studiem cum puteți crea un server proxy HTTP. Un server proxy este un intermediar între utilizator și Internet. Să presupunem că există un server în rețeaua locală care este conectat la Internet printr-un canal dedicat. Pentru ca toate computerele să aibă acces, trebuie să instalați un intermediar pe server, prin care computerele locale vor accesa rețeaua globală.

Un server proxy poate masca adrese IP, iar doar adresa serverului va fi vizibilă pe Internet, deoarece solicitările vor fi făcute în numele acestuia. Pe langa asta, servere moderne poate stoca informații în cache și, astfel, poate salva traficul de intrare.

În acest capitol, vom crea un server proxy care va masca adresa (toate cererile vor merge în numele serverului), dar fără capabilități de stocare în cache. Astfel, legătura va fi parcă transparentă.

Deci, să trecem la exersare și să învățăm cum funcționează totul din interior. Mai întâi trebuie să vă decideți asupra tehnologiei utilizate. Ce să alegi - blocare, așteptare prin selectare sau evenimente Windows? În programul nostru, atunci când utilizatorul solicită încărcarea oricărui site web, va trebui să obținem acel site de pe server și să-l oferim utilizatorului. Acest lucru va consuma timp și atunci când utilizați evenimente în care alți utilizatori în acest moment nu va putea lucra.

A implementa munca paralela trebuie să folosim fire și să creăm propria instanță pentru fiecare conexiune. La prima vedere, acest lucru pare complicat, dar acum vom vedea că totul este mult mai simplu decât pare.

Acum să trecem la implementare. Crea proiect nou. Vom avea nevoie de trei câmpuri de intrare în formular:

Portul pe care va rula serverul nostru și va aștepta conexiunea de la client;

port server proxy extern, dacă al nostru va trebui să redirecționeze cererile către alt server. Astfel, vom putea construi un lanț de servere proxy diferite;

Adresa serverului proxy extern.

În plus, aveți nevoie de un buton care, atunci când este apăsat, va lansa serverul proxy. Nu vom include capacitatea de a opri, deși această operațiune constă în simpla oprire a fluxului serverului.

Un exemplu de formă principală a viitorului program este prezentat în Fig. 5.9.

Orez. 5.9. Forma viitorului server proxy Încărcare biblioteca de rețea

Vom plasa WinSock pe evenimentul OnCreate pentru formularul principal:<>procedura THTTPProxyForm.FormCreate(Sender-TObject). var wData- WSADATA: începe dacă WSAStartup(MAKEWORDd.l). wDate)

0 apoi începe MessageBox(0. „Nu pot încărca WinSock.” „Eroare.” 0): ieșire:

Sfârșit: sfârșit:

Făcând clic pe butonul Start, trebuie să porniți serverul proxy. Pentru a face acest lucru, vom crea un fir separat și în el vom aștepta o conexiune de la client, pentru a nu întârzia munca formularului principal. Nu va exista blocare în program.

Procedura THTTPProxyForm.bnStartClick(Expeditor: TObject). var st: TServerThread: begin st:= TServerThread.Create(true). st iLocal Port:" StrToIntDef(edPort.Text. 8088): st.iExtProxyPort -= StrToIntDef(edExtProxyPort Text. 8080): st.sExtProxyAddr:= edExtProxyAddr.Text: st.Resume: final:

Firul serverului va avea nevoie de informații despre portul pe care ar trebui să ruleze și unde se află următorul server. Acesta este motivul pentru care înregistrăm aceste informații în variabilele serverului public, astfel încât acestea să fie stocate local. Nu are rost să accesezi formularul principal din thread, deoarece în viitor poți rula două proxy-uri pe porturi diferite, practic fără modificare de cod.

Puteți vedea codul sursă complet (dar fără procedurile familiare de verificare a mesajelor TestFuncError și TestWinSockError) în Listarea 5.10.

Lista 5.10. Cod TServerThread

Unit ServerThreadUnit. interfața folosește Classes, winsock, windows; tip TServerThread = class(TThread) privat (Declarații private) procedură protejată Executare: suprascrie: public i Port local. i ExtProxyPort:Integer; sExtProxyAddr:String: end: implementarea folosește ClientThreadUnit:

procedure TestWinSockError(S:String): begin // Codul acestei proceduri ne este familiar, așa că a fost tăiat pentru a economisi spațiu

function TestFuncErrordErr:Integer: FuncName:String):Boolean; begin // Codul acestei funcții ne este familiar, așa că a fost tăiat pentru a economisi spațiu

Sfârşit; procedura TServerThread.Execute;

Lista 5.10 (continuare) var sServerListen. stClientSocket: TSOCKET: local-addr- sockaddMn: ct: TCIientThread; ÎNCEPE

// Creați un socket

SServerListen:= socket(AF_INET. SOCK_STREAM, 0);

dacă SServerListen = INVALID_SOCKET, atunci începe MessageBox(0. „Eroare la crearea soclului.” „Eroare.” 0): ieșire:

// Completarea structurii adresei localaddr.sin_addr.s_addr:= htonl(INADDR_ANY): localaddr.sin_family:= AF_INET; localaddr.sin_port:= htonsdLocal Port):

//Legarea unui socket la o adresă locală

Dacă TestFuncError(bind(sServerListen. localaddr. sizeof(localaddr)) "bind"), atunci ieșiți:

// Începeți să ascultați

Dacă TestFuncError(ascultă(sServerListen. 4), „Ascultă”), ieși:

// Ciclu pentru procesarea conexiunilor de la client

în timp ce true do begin // Acceptă conexiunea

StClientSocket:= accept(sServerListen, nil. nil): dacă StClientSocket = INVALID.S0CKET, atunci continuați: i

// Creați un fir pentru a comunica cu clientul ct:= TClientThread.Create(true): ct.stClient:" StClientSocket: ct iExtProxyPort:= iExtProxyPort: ct sExtProxyAddr:= sExtProxyAddr; ct Rezumat:

Sfarsit:sfarsit; Sfârşit.

In sectiunea pub! i cu trei variabile adăugate: i Port local, iExtProxyPort de tip Integer și sExtProxyAddr, de tip String. Am folosit deja aceste variabile când ne-am uitat la codul de creare a firului de execuție aici puteți vedea cum sunt declarate.

Codul firului principal al serverului se află în procedura Execute. În primul rând, este creat un socket și începe să asculte conexiunile pe un port specificat de utilizator.

În nesfârșit buclă while conexiunile de intrare sunt acceptate. Dacă se primește un socket valid, se creează un alt thread de tip TClientThread. În acest thread se va întâmpla comunicare directăîntre client și server. Fluxul va acționa ca un intermediar pentru ca clientul să acceseze paginile web. Codul TClientThread este afișat în Lista 5.11.

Lista 5.11. Un fir care acționează ca un intermediar între client și web

Unit ClientThreadUnit.

i folosește interfața

Cursuri, winsock. sysutils. windows: tip TClientThread = class(TThread) private (Declarații private) procedură protejată Executare: override; public iExtProxyPort: Integer; sExtProxyAddr: String: stClient: TSocket: end:

funcția de implementare (TClientThread) LookupName(nume: String): TInAddr; începe // Funcția de determinare a numelui, care ne este familiară

// Funcție de trimitere a unui șir

Procedura SendStr(s: TSocket: str: String): begin TempStr:= str+#13+#10: CopyMemory(@sRecvBuff. PCharCTempStr). Lungime (TempStr)); trimite(s. sRecvBuff. Lungime(TempStr). 0); Sfârşit; procedura TClientThread.Execute: var Buff: matrice de caractere: iPort: Integer: sRequest. sHost: String: server_addr: sockaddMn: continuare &

Listarea 5.11 (continuare) sock_server- TSocket: iMode. iSize: Integer-rfds: TFDSET. începe ///////////////////////////// Citiți antetul ////////////////// ////////// RecvCstClient. Piele de bivol. 1024,0):

SRequest:= String(Buff).

// Fără antet dacă sRequest = "" apoi începe CIoseSocket(stCl i ent). ieșire, sfârșit:

////////////////////////////

// Determinați adresa și portul serverului

////////////////////////// sHost:= Copiere (sRequest. PosCHost: ". sRequest). 255): Delete(sHost. Pos ( #13. sHost), 255); 80): Delete(sHost. PosC:". sHost). 255):

// Dacă gazda nu este găsită, atunci eroare

Dacă sHost = "" atunci. begin SendStr(stClient. "HTTP/1.0 400 Antet invalid primit de la browser"); CIoseSocket(stClient); ieșire: sfârșit;

// Dacă există un proxy extern, redirecționați către acesta

Dacă sExtProxyAddr<>" apoi începe iPort:= iExtProxyPort; sHost:= SExtProxyAddr; sfârșit:

sock_server-:= socket(AF_INET. S0CK_STREAM. 0): // Căutăm un server proxy

Server_addr.sin_addr.s_addr:= htonl(INADDR_ANY): server_addr sin_family:= AF_INET: server_addr.sin_port .= htons(iPort): server_addr.sin_addr:= LookupName(sHost); 1

// Conectați-vă la server

Dacă connect(sock_server. server_addr. sizeof(server_addr)) = SOCKETJRROR, atunci începeți SendStr(stClient. "404 Host Not Found"); Ieșire; Sfârşit; iMode:= 1: setsockopt(sock_server. IPPR0T0_TCP. TCPJODELAY. @iMode. sizeof (întreger)).

// Redirecționează cererea către server sau către un alt „proxy” trimite(sock_server. buff, strlen(buff).0):

// Acum lucrăm ca intermediar între client și server. // transmiterea datelor solicitate în timp ce true do begin // Adăugați socket-uri la setul de așteptare FD_ZERO(rfds): FD_SET(stClient, rfds): FD_SET(sock_server. rfds); dacă (selectați(0. Orfds. nil. nil. ml)< 0) then exit; // Если пришел запрос от клиента. // то перенаправляем серверу if (FD_ISSET(stClient. rfds)) then begin iSize = recv(stClient. buff, sizeof(buff). 0); if iSize=-l then break; Send(sock_server. buff. iSize. 0); continue: end:

// Dacă datele au ajuns de la server.

// apoi redirecționează către client

Dacă (FD_ISSET(sock_server, rfds)) atunci începe iSize:= recv(sock_server, buff. sizeof(buff). 0):

// Serverul a trimis deja totul dacă iSize = 0, apoi ieșiți:

Listarea 5.11 (continuare) SencKstClient. piele de bivol. iSize. 0): continua:

Sfârşit; end: CloseSocket(stClі ent): CloseSocket(sock_server): end: end.

Pentru serverul proxy, cel mai interesant lucru este ascuns în TClientThread, iar acum îl vom analiza în detaliu. Singurul lucru care lipsește din această listă este funcția deja familiară LookupName.

Deci, când clientul s-a conectat la serverul proxy, acesta trimite o solicitare HTTP standard pentru a primi un fișier. Citim acest antet folosind funcția recv. Antetul arată astfel:

GET http://VAAo.vr-onl1ne.rU/HTTP/l.0 Accept: image/gif. imagine/x-xbitmap. imagine/jpeg. */* Accept-Language: ru User-Agent: Mozilla/4.0 (compatibil: MSIE 6.0: Windows NT 5.2: .NET CLR 1.1.4322) Gazdă: www.vr-online.ru Proxy-Connection- Keep-Alive

Deși nu vom aprofunda în esența solicitării și a comenzilor conținute aici, principalul lucru pentru noi acum este linia gazdă. Conține adresa serverului de la care trebuie să primiți date și să le returnați clientului. ÎN în acest caz, acesta este www.vr-onlin.ru. Adresa este cunoscută, nu mai rămâne decât să aflăm portul. În mod implicit, serverele web rulează pe portul 80, dar dacă nu, adresa serverului web va fi specificată după cum urmează: www.vr-online.ru:Port. După două puncte este indicat numărul portului și trebuie să ținem cont de această nuanță.

Deci, după ce am primit antetul, începem să selectăm numele gazdei din acesta:

SHost:= Copy(sRequest, Pos("Host: ". sRequest). 255): Delete(sHost. Pos(#13. sHost). 255); Delete(sHost. 1. 6);

Acum separăm numărul portului, dacă este specificat:

IPort:= StrToIntDef(Copy(sHost. PosC:". sHost)+l. 255). 80); Delete(sHost. PosC:". sHost), 255):

Dacă portul nu este specificat, funcția StrToIntDef va genera o eroare și va returna valoarea implicită, care este 80.

Cu siguranță verificăm: dacă variabila sHost după analizarea antetului este egală cu linie goală, atunci adresa serverului nu este specificată sau este specificată incorect. În acest caz, ar trebui să returnăm o eroare. Acest lucru se poate face după cum urmează:

SendStr(stClі ent. "HTTP/1.0 400 Antet invalid primit de la browser");

După trimiterea erorii, închideți socket-ul și ieșiți din flux.

Acum verificăm: dacă este specificat un „proxy” extern, atunci înlocuim adresa și portul serverului cu parametrii serverului proxy extern. În acest caz, trebuie pur și simplu să transmitem cererea primită de la client către acest server.

În principiu, dacă există un server proxy extern, atunci nu avea rost să definim adresa serverului. Dar o fac oricum și te sfătuiesc, pentru că poate fi nevoie de redirecționare în viitor. De exemplu, dacă un utilizator solicită o pagină de pe site-ul www.sex.ru, atunci serverul nostru proxy va detecta acest lucru și va putea redirecționa cererea către un alt server. Pentru a face acest lucru, trebuie doar să modificați valoarea variabilei sHost și să ajustați ușor solicitarea venită de la client.

După ce a hotărât parametrii necesari, creăm un nou socket prin care va avea loc comunicarea cu un server extern (indiferent dacă este un alt server proxy sau direct un server web).

După ce am creat un nou soclu și ne-am conectat la server, îl comutăm imediat în modul asincron în acest fel:

IMode:= 1: setsockopt(sock_server. IPPROTOJCP. TCP_NODELAY. OiMode. sizeof(integer)):

Funcția setsockopt în acest caz este similară ca scop cu socket-ul ioctl, despre care am discutat în capitolul 4. Mută ​​socket-ul la un nivel superior. modul rapid lucru, care vă permite să nu așteptați sau să acumulați date, ci să le primiți și să le transmiteți imediat. În acest fel minimizăm întârzierile, iar serverul sau clientul se ocupă de acumulare.

După ce ai transferat priza în modul dorit redirecționăm cererea de la client către serverul web (sau următorul server proxy) și lansăm buclă nesfârșită. Acest ciclu va fi mediatorul. Aici datele sunt așteptate de la client și server și trimise unul altuia. Dacă sunt primite date goale, aceasta înseamnă că conexiunea este finalizată și ciclul este întrerupt. Toate prizele deschise sunt închise la ieșirea procedurii.

După cum puteți vedea, un server proxy este doar un intermediar care transmite pachete între un client și un server. Încercați să adăugați posibilitatea de a vizualiza ceea ce este trimis între client și server și veți vedea că atunci când clientul solicită, serverul transmite doar conținutul text al documentului. După aceasta, browserul analizează documentul primit și dacă găsește imagini sau altele Informații suplimentare (fișiere de sunet, videoclipuri flash etc.), atunci există o solicitare suplimentară pentru a primi aceste date. În acest fel, browserul primește doar datele de care are nevoie și poate economisi trafic.

De asemenea, aș dori să vă atrag atenția asupra faptului că, ca numere de port în cod sursă implicit este 8080. Acest lucru se datorează faptului că rețeaua mea este configurată printr-un proxy. Dacă utilizați DialUp, atunci trebuie să specificați linii goale ca port și adresă „proxy” extern.

Pentru a testa exemplul, rulați programul și serverul nostru. Apoi deschide Internet Explorer(sau alt browser) și configurați-l pentru a utiliza un server proxy. Pentru a face acest lucru, executați comanda de meniu Instrumente Opțiuni Internet, iar în caseta de dialog care apare (Fig. 5.10) mergeți la fila Conexiune.

Orez. 5.10. Setări browser

Faceți clic pe butonul Setări de rețea și o nouă casetă de dialog se va deschide în fața dvs. (Fig. 5.11).


Orez. 5.11. Configurarea unui server proxy

În zona Server proxy, bifați caseta de selectare Utilizați un server proxy și specificați adresa și portul. Dacă rulați serverul pe dvs calculator local, atunci puteți specifica 127.0.0.1, dar vă recomand să specificați adresa reală astfel încât exemplul să funcționeze exact.

NOTĂ ---1 Codul sursă pentru exemplul discutat aici se află pe CD-ROM în directorul 5oirse5\sp05\N"GTRRRgoy.

Dacă aveți nevoie de un proxy, mai jos veți găsi, în opinia mea, cel mai bun mod crearea unui proxy. Pentru ce este un server proxy? Foarte simplu, iată câteva posibile răspunsuri la această întrebare:

1. Imagineaza-ti ca stai intr-un hotel sau intr-o cafenea cu WiFi gratuit. Unde este garanția că WiFi nu este desfășurat de escrocii care așteaptă ca vreun nebun să înceapă să transmită prin Date WiFi cardul dvs. bancar sau introduceți datele de conectare și parolele dvs pagini personale. Există două moduri aici: fie nu folosiți WiFi gratuit pentru muncă și cumpărături, fie folosiți un proxy, cu ajutorul căruia datele vor fi transmise în formă criptată.

2. Ascunderea adresei IP reale. Uneori, acest lucru este necesar pentru a menține anonimatul.

3. Ați primit o interdicție a motorului de căutare din cauza solicitărilor frecvente. De exemplu, dacă Yandex te întreabă adesea dacă ești un robot sau un om.

Există 2 opțiuni pentru a găsi un server proxy: găsiți un serviciu (plătit sau gratuit) sau creați-vă propriul server proxy. Nu vom lua în considerare prima variantă aici, deoarece... nu există nicio garanție că nu este scris niciun jurnal pe server (posibilitatea de a pierde date personale, date carduri bancare, login-uri și parole). Mai jos vom lua în considerare a doua opțiune: crearea propriului server proxy.

1. Găsiți găzduire cu suport SSH

Dacă sunteți webmaster, atunci probabil că aveți deja găzduire cu suport SSH. Dacă nu, atunci căutați pe Internet găzduire ieftină care acceptă SSH. Există furnizori de găzduire care sunt gata să ofere găzduirea de care avem nevoie pentru aproximativ 1 USD pe lună. Puteți găsi și hosting în străinătate, dar va fi puțin mai scump. Dacă te uiți mai greu, poți găsi opțiuni gratuite, dar cred că cele plătite vor funcționa mai fiabil.

2. Lansați programul PuTTY

Odată ce aveți găzduire SSH, aveți nevoie de PuTTY pentru a crea un server proxy local. Puteți descărca programul gratuit de pe site-ul oficial al programului: www.putty.org.

3. Configurarea programului PuTTY

După lansarea programului, veți vedea o fereastră cu setări. În câmpul Nume gazdă, introduceți adresa de domeniu sau adresa IP a serverului dvs. În câmpul Port, introduceți portul, de obicei 22.

Acum accesați categoria Conexiune->SSH->Tunele. Aici trebuie să adăugați un port. Pentru a face acest lucru, în câmpul Port sursă, introduceți portul pentru viitorul server proxy local, de exemplu, 8888. Selectați opțiunea Dinamic și faceți clic pe butonul Adăugare. După aceasta, portul va apărea în câmpul Porturi redirecționate - linia D8888.

Pentru a evita efectuarea acestei proceduri îndelungate de fiecare dată când începeți, trebuie să salvați setările curente. Pentru a face acest lucru, reveniți la categoria Sesiune, introduceți un nume pentru setările dvs. în câmpul Sesiuni salvate, de exemplu, „myhost.ru proxy” și faceți clic pe butonul Salvare. Setările dvs. vor apărea apoi în lista de mai jos. Acum, data viitoare când porniți programul, puteți selecta setările din această listă și faceți clic pe butonul Încărcare.

4. Deschideți o sesiune

După configurarea programului, puteți deschide o sesiune. Aceasta va crea un server proxy local. Pentru a face acest lucru, faceți clic pe butonul Deschidere.

Dacă vă conectați la un server pentru prima dată, PuTTY vă va anunța că nu are informații despre acest server. Vă recomand insistent să vă conectați la serverul dumneavoastră pentru prima dată printr-un sistem de încredere rețea binecunoscută, în acest caz, faceți clic pe butonul Da. Dacă vedeți acest mesaj când vă conectați printr-un necunoscut punct liber acces, este mai bine să nu continuați conexiunea și să faceți clic pe Anulare.



5. Serverul proxy este gata!

După ce ați introdus numele de utilizator și parola, informațiile despre server vor apărea pe ecran, iar proxy-ul dvs. va fi disponibil la 127.0.0.1:8888 sau localhost:8888. La finalul lucrării, o fereastră neagră programe PuTTY Puteți închide acceptând avertismentul.

6. Configurarea browserului și a altor programe

Pentru a utiliza creat server proxy localîn browser, trebuie să configurați conexiunea prin intermediul unui server proxy SOCKS5, specificând setările 127.0.0.1:8888 sau localhost:8888 . Alte programe sunt personalizabile in acelasi fel. De exemplu, luați în considerare setarea browser de internet Explorer 10.

Selectați „Opțiuni Internet” din meniu.


În fereastra care apare, selectați fila „Conexiuni” și faceți clic pe butonul „Setări de rețea”.

În fereastra „Configurarea setărilor rețelei locale”, bifați caseta de selectare „Utilizați serverul proxy...” (în În viitor, pentru a activa și dezactiva rapid proxy-urile, puteți pur și simplu să debifați sau să bifați această casetă) și faceți clic pe butonul „Avansat”.

În fereastra „Setări server proxy”, specificați doar elementul 4. Ștergeți câmpurile rămase, astfel încât browserul să nu se încurce.

Acum închideți toate ferestrele făcând clic pe butoanele „OK”. Browserul dvs. este pregătit să funcționeze printr-un proxy.

7. Verificați

Pentru a verifica și a vă asigura că accesați de fapt Internetul prin server, accesați browserul dvs. la pagina unuia dintre serviciile care vă determină adresa IP. De exemplu, internet.yandex.ru sau mai multe serviciu detaliat 2IP. Comparați adresa IP cu serverul proxy dezactivat și activat.

Aveți nevoie de un proxy? De unde să-l obțineți, apare adesea o astfel de nevoie. Utilizatorii de internet sunt adesea munca zilnică observa asta. De ce ar putea fi necesar să vă ascundeți adresa IP?

Păstrarea anonimatului. (Acest lucru poate fi util dacă utilizați internetul pentru anumite tipuri de afaceri.)

Analiza motor de căutare ai fost interzis. De exemplu, „Ești un robot, întrebare frecventă Motor de căutare Yandex? Sau Rapidshara.com interferează cu utilizarea liniştită a serviciilor sale.

Iată câteva opțiuni pentru a găsi un server proxy (șosete): achiziționați-l, analizați singur serverul sau creați-l singur. Primele 2 variante nu sunt deosebit de potrivite, deoarece... la cumpărarea unui proxy, nu știm dacă autentificarea este scrisă (puteți pierde și datele dvs. personale, icq sau e-mail).

Proxy care se află în acces deschis– public, stau de obicei nu mai mult de o zi. Deci, cred că opțiunea 3 este mai de preferat, sau mai degrabă, ne vom crea propriul server gratuit. Pentru a finaliza această sarcină, trebuie să urmați câțiva pași simpli.

1) Deschideți un motor de căutare convenabil pentru dvs. și căutați găzduire cu suport ssh- nu scump. Pe segmentul rusesc puteți găsi cu ușurință aproximativ o duzină de hosteri care vor vinde hosting cu suport ssh pentru doar 1 dolar. O adresă IP străină va costa aproximativ 5 USD pe lună. Dar dacă aveți nevoie de un gratuit gratuit, atunci există mulți furnizori de găzduire care vă vor oferi o versiune de testare gratuită. Trebuie doar să cauți bine.

2) Drept urmare, aveți un cont cu ssh, uitați de el pentru moment. Pentru următorul pas Vom avea nevoie de mai multe software pentru a lucra cu ssh. Dacă ați folosit vreodată linie de comandă pe sistemele nix, știți despre chit, dar dacă nu l-ați întâlnit, atunci nu este mare lucru, descărcați doar programul.

3) Lansați putty și configurați serverul nostru: în HostName, introduceți adresa IP a serverului dvs. sau domeniul. Câmpul Port este de obicei 21, este folosit implicit pentru ssh. În fila Conexiune -> Ssh -> Tuneluri, (Adăugați un nou port redirecționat) - trebuie să adăugați port nou(. Port sursă selectam portul pe care proxy-ul îl va folosi pe computerul nostru. Trebuie selectat Dynamic și faceți clic pe butonul de adăugare. Ca urmare, în Portul redirecționat ar trebui să vedeți intrarea D81.

4) Căutați și faceți clic pe butonul de deschidere. În fereastra neagră, introduceți mai întâi datele de conectare, apoi, bineînțeles, parola (dacă nu apare nimic în timpul procesului de introducere a parolei, atunci acest lucru este normal).

5) Ei bine, practic este gata – proxy-ul la 127.0.0.1:81 este al tău. Puteți culege beneficiile muncii dvs. Mai mult, metoda, dacă nu este gratuită în toate cazurile, este cel puțin întotdeauna economică.

Și încă ceva - de îndată ce deschideți o sesiune ssh, în setările browserului proxy, trebuie să introduceți localhost (127.0.0.1) și portul, nu în HTTP Proxy, ci în SOCKS5.

Cele mai bune articole pe această temă