Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • vijesti
  • Proxy poslužitelj s bilo kojeg računala s bilo kojim sustavom. Izrada proxy poslužitelja

Proxy poslužitelj s bilo kojeg računala s bilo kojim sustavom. Izrada proxy poslužitelja

Dobar dan prijatelji, mnogi od vas razmišljaju o tome kako konfigurirati svoje pojedinačne proxy poslužitelje za rad na društvenim mrežama, u tražilicama ili u neku drugu svrhu. Mnogi su možda pokušali podići vlastite proxyje, ali rezultat je bio neuspješan, danas vam želim reći kako, koristeći jednu od brojnih usluga kao primjer, možete postaviti proxy za osobnu upotrebu, čija će cijena varirati od 80 rubalja, ako podignete najmanje 5 proxyja, a sa svakim novim proxyjem cijena za 1 proxy samo će se smanjivati. Dakle, ako podignete 20 proxyja, cijena će biti samo 58 rubalja. Pa počnimo.

Registracija poslužitelja u servisu Gigspace i naručivanje dodatnog ip-a

Prije svega, moramo iznajmiti poslužitelj u usluzi Gigspace.ru, za to slijedimo vezu >><< Нажимаем кнопку «Заказать» под VDS.

Nakon toga smo bačeni na stranicu za narudžbu, ali budući da sustav nije doveden na pamet, moramo ponovno otići na stranicu: http://gigspace.ru/vds_msk.php i odabrati tarifni plan za ovo stranica.

Nakon klika, bit ćemo preusmjereni na stranicu za registraciju u sustavu, kao novi klijent. Odabiremo vrstu klijenta - "Novi klijent".

Ispunjavamo obrazac za registraciju, neću vam pokazivati ​​kako ispuniti obrazac, jer tamo trebate unijeti samo svoje podatke, mislim da se svatko može nositi s popunjavanjem obrasca ako traži temu podizanja vlastitog opunomoćenici.

Nakon ispunjavanja, odaberite prvi tarifni plan, čiji naziv GiGv-1 M1 (230 rubalja / mjesec)

U nastavku označavamo da će poslužitelj biti bez naziva domene i pritisnite gumb "Dalje".

Dalje, odaberite rok plaćanja, uvijek plaćam mjesec dana korištenja, jer ponekad nema potrebe naručiti proxy na duži period, ali ako plaćate na duži period, dobit ćete popust. Stavljamo kvačicu ispred stavke "Dodatni IP (50 rubalja / mjesec)", označavamo broj IP-a koji nam je potreban, ovi IP će biti naši proxy poslužitelji, označavam broj 5, jer ću imati dovoljno IP-a podataka sada, možete naručiti drugu količinu. Ne trebamo rezervnu kopiju. Zatim navodimo promotivni kod. ako se primi. Za svoje pretplatnike dajem promotivni kod za 5% popusta, ali tek nakon što me osobno kontaktiraju poštom: [e-mail zaštićen] s naslovom PROMO KOD Gigspace... Zatim pritisnemo gumb "Dalje".

U trećem koraku narudžbe u komentaru pišemo: “ Dobar dan! Želio bih koristiti dodatne ip adrese kao proxy za rad na društvenim mrežama“, Pa, ili tako nešto. Ako ne napišete da će se ip koristiti za proxy promet, morat ćete napraviti dodatne geste da ih konfigurirate

Nakon klika na gumb, dolazimo na stranicu za odabir načina plaćanja, ja uvijek radije plaćam preko WebMoney ili Yandex Money, pa biram WebMoney. I već birate po svom nahođenju, dostupni su QIWI, Yandex Money, WebMoney i plaćanje putem Roboxchangea (Robokassa).

Zatim prolazimo standardnu ​​proceduru plaćanja računa putem odabranog sustava i čekamo oko 10 minuta – 24 sata, sve ovisi o vremenu naručivanja usluge. U tom smislu Gigspace je spor, ali cijene usluga ne grizu. Čim se stvori vaš virtualni poslužitelj, primit ćete obavijest e-poštom o stvaranju poslužitelja.

Konfiguriranje proxy poslužitelja pomoću putty terminala

Prijeđimo sada na zabavni dio – postavljanje proxy poslužitelja. Na mail smo dobili poruku o uspješnoj izradi servera, sada nas zanimaju podaci o pristupu poslužitelju putem SSH protokola koji su nam stigli na mail.

A program za spajanje na server preko SSH protokola, koji se zove Putty, možete preuzeti na sljedećoj >> poveznici<<

Nakon što ste preuzeli arhivu s programom, raspakirajte arhivu i pokrenite datoteku pod nazivom "PUTTY.exe". Unesite IP adresu u polje "Host Name" i kliknite "Otvori".

Sada u prozoru za unos unosimo prijavu koja je došla na vaš mail i lozinku, lozinku u Putty je potrebno unijeti pritiskom na tipke Shift + Insert, prilikom unosa lozinke neće se uopće prikazati, zadržite ovo u na umu, nakon unosa lozinke, pritisnite "Enter".

Ako je lozinka uspješno unesena, pojavit će se redak #

Ako se ne pojavi, ponovno unesite lozinku pritiskom na Shift + Insert.

Sada moramo saznati naše ip adrese, za to ponovno odlazimo na poštu i nalazimo sljedeći sadržaj u poruci.

Sada bi se, naprotiv, trebao pojaviti popis svih ip-adresa koje ste naručili, ako ovog popisa nema, napišite na tiket, ponekad zaborave spojiti dodatni IP, iako je to bilo samo jednom tijekom rada s gigspace. Nakon što se poveže dodatni IP, prikazat će se popis.

Pošto spojim dodatnih 5 ip, na listi ću imati 1 glavni ip i 5 svojih dodatnih, t.j. moći ćemo podići ukupno 6 opunomoćenika.

Sada se ponovno vraćamo na konzolu za kit, prije svega unosimo naredbu ifconfig kako biste utvrdili jesu li dodatne IP adrese spojene na NIC poslužitelja. Ako nakon unosa naredbe uređaja vidimo venet0: 0, venet0: 1 itd., onda je hoster konfigurirao naručene ip adrese za spajanje na mrežnu karticu, ako to nije slučaj, onda se možete spojiti ručno pomoću naredbe: ifconfig eth0: 1 xxx.xxx.xxx.xxx 255.255.255.0 gore, gdje je xxx.xxx.xxx.xxx jedna od vaših ip-adresa, slično šaljemo naredbe za sve dostupne IP adrese, dok mijenjamo posljednju znamenku u eth0: 1 u eth0: 2, eth0: 3, itd.

Nakon što se uvjerimo da su ip adrese spojene na mrežnu karticu, moramo instalirati epel repozitorij za daljnju instalaciju softvera 3proxy za konfiguriranje proxy poslužitelja, budući da ovi hosteri pružaju OS centos 5, naredba za instalaciju spremišta bit će sljedeća: rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm... Nakon instalacije, konzola prikazuje sljedeće:

Sada instaliramo softver za konfiguriranje prometnog proxyja 3proxy, za to pokrećemo naredbu: yum instaliraj 3proxy -y... Čekamo završetak instalacije.

Instalirajte zgodan uređivač teksta nano, možete koristiti standardni, ali ja više volim nano editor. Izvršavamo naredbu: yum install nano.

Napravimo sigurnosnu kopiju 3proxy konfiguracije s naredbom: mv /etc/3proxy.cfg /etc/3proxy.cfg.back.

Sada uredimo 3proxy konfiguraciju, koja će biti odgovorna za rad naših proxyja. Dakle, izvršavamo naredbu: nano /etc/3proxy.cfg... Pred nama će se otvoriti prazna datoteka. Radije postavljam proxy s autorizacijom za prijavu i lozinku, pa ću vam pokazati kako postaviti proxy s autorizacijom za prijavu i lozinku. Umetnite sljedeće retke na početak datoteke pritiskom na tipke Shift + Insert:

demon
auth jak
korisničko ime korisnika: CL: prolaz
ispiranje
nserver 8.8.8.8
nscache 65536
istek vremena 1 5 30 60 180 1800 15 60

oblikovati auth jak odgovoran je za autorizaciju putem prijave i lozinke, uz daljnju upotrebu proxyja, korisničko ime i propusnica su login i lozinka pomoću kojih želite da proxy bude dostupan. : CL: ne treba dirati!

Ako želite konfigurirati autorizaciju putem IP-a, umjesto auth jak pišemo: auth iponly... Brišemo redak korisnika ... i dodajemo pouzdane ip adrese za proxy, pisanjem redaka: dopusti * xxx.xxx.xxx.xxx... Gdje je xxx.xxx.xxx.xxx pouzdana IP adresa. Također možete postaviti nekoliko IP adresa i prijava s lozinkama za proxy.

Sada idemo na postavljanje samih proxyja, za vas sam pripremio excel datoteku, koju možete preuzeti sa >> linka<<, чтобы упростить работы с прописыванием прокси в конфиге. Http прокси прописываются следующим образом в конфиге:

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

Gdje možete odrediti bilo koji port, od 1 do 65535, port već propisujete po vlastitom nahođenju, iz sigurnosnih razloga savjetujem vam da koristite vrijednosti veće od 10000. 192.168.0.1 je jedna od vaših povezanih ip adresa na poslužitelj, koju ćete koristiti kao proxy.

Zastupnici za čarape su napisani ovako:

čarape -p1000 -i192.168.0.1 -e192.168.0.1

Slično, stavite svoj port, ip je također vaš.

Koristeći excel datoteku koju ste preuzeli iznad, možete brzo napraviti konstrukcije potrebne za konfiguraciju registrirajući svoje IP adrese umjesto xxx.xxx.xxx.xxx, obavezno zamijenite portove, te navedite prijave i lozinke za proxy, kopirajte postojeće strukture iz stupaca "http rezultat" i "socks rezultat" i zalijepite ih u konfiguraciju.

U konačnici, kompletna konfiguracija će izgledati ovako:

Sada pritisnite ctrl + x za spremanje konfiguracije i pritisnite Y za potvrdu spremanja datoteke, a zatim pritisnite Enter.

To je to, naša konfiguracija je spremna, podatke zapisujemo u datoteku za pokretanje pokretanjem naredbe: chkconfig 3proxy uključen

Pokrenite 3proxy s naredbom: servis 3proxy start

Provjeravamo rade li naši proxyji, koristim preglednik Mozilla Firefox za provjeru, za to otvaramo preglednik, idemo na "Postavke" -> "Dodatno" -> "Mreža" -> "Konfiguriraj", odaberite "Ručni proxy poslužitelj postavke", unesite jedan od naših ip i porta koje ste naveli, primijenite postavke. Sada pokušajmo otići na bilo koju stranicu. Kada se pojavi prozor za autorizaciju proxyja, čestitam vam, sve ste konfigurirali.Prozor bi trebao izgledati otprilike ovako.

Sada zatvorite konzolu naredbom Izlaz ili jednostavno prijeđite preko prozora i budite zadovoljni s konfiguriranim proxyjima, prijatelji! 😉

Zaključak

Danas sam pokazao kako postaviti vlastite proxy poslužitelje za anonimno pregledavanje interneta. Odmah moram reći da osim gigspacea postoji i hrpa hostera, ali ovi su mi se svidjeli upravo zato što daju razumnu cijenu za dodatni ip i servere koji rade stabilno.

Ako postavljate svoje proxije kod drugih hostera, ovaj priručnik će vam djelomično odgovarati, ako imate bilo kakvih pitanja o postavkama, možete pogledati komentare na ovaj post, mislim da mogu pomoći u rješavanju vaših pitanja.

Ne zaboravite se pretplatiti na blog i podijeliti ovu objavu na društvenim mrežama! Prestanite plaćati posrednike, napravite svoje proxyje po nižoj cijeni! A na tržištu cijene proxyja sada grizu, uvjeravam vas. 😉

Mnogi korisnici koji žele sigurno surfati internetom žele znati kako saznati svoj proxy poslužitelj - ip adresu i port. Kako to učiniti i čemu služi? Važnost i netrivijalnost postavljenog pitanja objašnjava se svrhom opunomoćenika. Njegov glavni zadatak je sakriti privatni IP korisnika zamjenom drugom adresom.

Najčešće je ova usluga tražena u području SMM-a, gdje se s jednog računala trebate prijaviti pod različitim računima na društvenim mrežama. To smanjuje rizik od blokiranja računa i ne izaziva sumnju kod moderatora. Ponekad ga koriste. Za ilustraciju postavljenog problema sjetite se slučajeva kada ste otišli na stranu stranicu sa željom da pogledate video ili koristite usluge, ali se pojavilo upozorenje da je gledanje ograničeno za vašu regiju. Takve situacije se javljaju cijelo vrijeme, ali zbog nedostatka znanja o tome kako saznati svoj proxy poslužitelj i port, ovi problemi mogu izgledati nerješivi. Štoviše, to značajno osiromašuje korisnikovu mogućnost dobivanja korisnih informacija do kojih bi se moglo doći uz odgovarajuće znanje.

Namjenski proxy koriste mnogi ljudi. Ciljevi mogu biti vrlo različiti: od individualnog korištenja i pregleda blokiranih web resursa, do korporativnog segmenta, gdje se korištenje velikog broja proxyja smatra normom. Ali, u isto vrijeme, ne može svatko pronaći odgovor: kako saznati proxy poslužitelj koji je trenutno u upotrebi. Pokušajmo razmotriti najučinkovitije opcije s kojima možete lako saznati sve potrebne informacije.

Kako saznati adresu proxy poslužitelja - prvi način

Drugi način

Slikovito rečeno, ne morate se uvijek “penjati” da biste došli do željenog odredišta. Ponekad treba biti pametan i taktično obilaziti "planinu". Odgovor kako saznati proxy adresu može se dobiti na najjednostavniji način. Sve što trebate je kontaktirati administratora sustava koji opslužuje lokalnu mrežu. Ima dovoljno kompetencije da pogleda proxy i prenese ga na vas. Poteškoća je u tome što ne može svatko saznati kako kontaktirati administratora sustava. Da biste riješili ovaj problem, preporučamo kontaktirati bolje upućene ljude. Oni će vam reći gdje da nazovete kako biste kontaktirali administratora.

Treći način

Na upravljačkoj ploči vašeg računala pronađite i otvorite stavku "Network Neighborhood". U njemu kliknite "prikaži mrežne veze", a zatim "lokalne veze". Desni klik na njega i odaberite svojstva. U prozoru koji se otvori morate pronaći internetski protokol TPC \ IP. Ponovno odaberite "svojstva". Ako postoji kvačica pored "automatski dobiti ip adresu", tada se ne koristi namjenski proxy, ako postoje brojevi (na primjer, 10.0.0.20), onda će to biti adresa željenog proxyja.

Kako saznati proxy port

Osim adrese i lozinke, mnoge korisnike može zanimati pitanje kako saznati proxy port. Ovo je još jedan parametar koji se koristi kada radite s vašim vlastitim. U pravilu se koriste standardne vrijednosti za port: 8080, 80 itd. Samo u rijetkim slučajevima vrijednost se razlikuje. Adresa porta može se vidjeti u pregledniku slijedeći gore navedene korake. Njegova vrijednost odgovara ip adresi. Radni port preko kojeg se vaš proxy zapravo povezuje mora odgovarati deklariranoj vrijednosti u postavkama sustava ili preglednika, inače vaša internetska veza neće raditi.

Oni će vam omogućiti da ubrzate svoj rad sa SEO softverom i društvenim mrežama.

Sada istražimo kako možete stvoriti HTTP proxy poslužitelj. Proxy poslužitelj je posrednik između korisnika i Interneta. Recimo da vaša lokalna mreža ima poslužitelj koji je na Internet povezan putem namjenskog kanala. Kako bi sva računala dobila pristup potrebno je na poslužitelju instalirati posrednika preko kojeg će lokalna računala pristupiti globalnoj mreži.

Proxy poslužitelj može maskirati IP adrese, a na Internetu će biti vidljiva samo adresa poslužitelja, jer će zahtjevi dolaziti iz njegovog imena. Osim toga, moderni poslužitelji mogu keširati informacije i tako uštedjeti dolazni promet.

U ovom poglavlju ćemo kreirati proxy poslužitelj koji će maskirati adresu (svi zahtjevi će dolaziti u ime poslužitelja), ali bez mogućnosti predmemorije. Tako će veza biti takoreći transparentna.

Pa prijeđimo na praksu i istražimo kako sve funkcionira iznutra. Prvo morate odlučiti o korištenoj tehnologiji. Trebam li odabrati zaključavanja, čekati do odabira ili Windows događaje? U našem programu, kada korisnik zatraži preuzimanje stranice, morat ćemo dobiti ovu stranicu s poslužitelja i prenijeti je korisniku. To će oduzeti mnogo vremena, a prilikom korištenja događaja drugi korisnici trenutno neće moći raditi.

Za obavljanje paralelnog rada, moramo koristiti niti i stvoriti vlastitu instancu za svaku vezu. Na prvi pogled ovo se čini komplicirano, ali sada ćemo se uvjeriti da je sve puno lakše nego što se čini.

Sada prijeđimo na implementaciju. Napravite novi projekt. Potrebna su nam tri polja za unos na obrascu:

Port na kojem će se naš poslužitelj pokrenuti i čekati veze s klijentske strane; port vanjskog proxy poslužitelja, ako će naš morati preusmjeriti zahtjeve na drugi poslužitelj. Tako ćemo moći izgraditi lanac različitih proxy poslužitelja;

Adresa vanjskog proxy poslužitelja.

Osim toga, potreban vam je gumb, pritiskom na koji će se pokrenuti proxy poslužitelj. Nećemo uključiti mogućnost zaustavljanja, iako se ova operacija sastoji u jednostavnom zaustavljanju protoka poslužitelja.

Primjer glavnog oblika budućeg programa prikazan je na Sl. 5.9.

Riža. 5.9. Oblik budućeg proxy poslužitelja

Stavite opterećenje mrežne knjižnice WinSock na događaj OnCreate za glavni obrazac:

procedura THTTPProxyForm.FormCreate (Pošiljatelj-TObject). var wData- WSADATA: započeti ako WSAStartup (MAKEWORDd.l). wData)<>0 zatim započnite MessageBox (0. "Ne mogu učitati WinSock". "Pogreška". 0): izlaz:

kraj: kraj:

Nakon što kliknete gumb Start, morate pokrenuti proxy poslužitelj. Da bismo to učinili, stvorit ćemo zasebnu nit, a u njoj ćemo čekati vezu od klijenta kako ne bismo odgodili rad glavnog obrasca. U programu neće biti zaključavanja.

Postupak THTTPProxyForm.bnStartClick (Pošiljatelj: 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: end st:Resume: end st:Resume.

Nit poslužitelja trebat će informacije o tome na kojem portu će se pokrenuti i gdje se nalazi sljedeći poslužitelj. Zato ove informacije zapisujemo u varijable javnog poslužitelja tako da se pohranjuju lokalno. Nema smisla pristupati glavnom obrascu iz streama, jer u budućnosti možete pokrenuti dva proxy poslužitelja na različitim portovima s malo ili bez izmjena koda.

Pogledajmo sada implementaciju niti poslužitelja. Da biste ga stvorili, izvršite naredbu izbornika File New Other (za Delphi 6 i starije verzije, samo odaberite File New). Vidjet ćete dijaloški okvir za određivanje elementa koji se stvara. Odaberite Thread Object i kliknite OK. Trebao bi se pojaviti dijaloški okvir za unos naziva toka. Unesite TServerThread i kliknite U redu.

Cijeli izvorni kod (samo bez poznatih procedura za provjeru poruka TestFuncError i TestWinSockError) možete vidjeti u Listingu 5.10.

Listing 5.10. TServerThread kod niti

Jedinica ServerThreadUnit. sučelje koristi Classes, winsock, windows; tip TServerThread = klasa (TThread) privatna (privatne deklaracije) zaštićena procedura Izvrši: nadjačavanje: javni i lokalni port. i ExtProxyPort: cijeli broj; sExtProxyAddr: String: end: implementacija koristi ClientThreadUnit:

procedura TestWinSockError (S: String): begin // Kod ove procedure nam je poznat, pa je skraćen radi uštede prostora

funkcija TestFuncErrordErr: Integer: FuncName: String): Boolean; begin // Kod ove funkcije nam je poznat, pa je skraćen radi uštede prostora

Kraj; procedura TServerThread.Execute;

Listing 5.10 nastavak var sServerListen. stClientSocket: TSOCKET: local-addr- sockaddMn: ct: TCIientThread; započeti n

// Kreiraj utičnicu

SServerListen: = utičnica (AF_INET. SOCK_STREAM, 0);

ako je SServerListen = INVALID_SOCKET tada započnite MessageBox (0. "Pogreška pri kreiranju utičnice." "Pogreška". 0): izlaz:

// Ispunjavanje strukture adrese localaddr.sin_addr.s_addr: = htonl (INADDR_ANY): localaddr.sin_family: = AF_INET; localaddr.sin_port: = htonsdLocal Port):

// Povežite utičnicu s lokalnom adresom

Ako TestFuncError (bind (sServerListen. Localaddr. Sizeof (localaddr)) "bind"), izađite:

// Počnite slušati

Ako TestFuncError (slušajte (sServerListen. 4), "Slušajte"), izađite:

// Obrada veza u petlji od klijenta

dok true do begin // Prihvati vezu

StClientSocket: = prihvati (sServerListen, nil.nil): ako je StClientSocket = INVALID.S0CKET onda nastavi: i

// Stvorite nit za komunikaciju s klijentom ct: = TClientThread.Create (true): ct.stClient: "StClientSocket: ct iExtProxyPort: = iExtProxyPort: ct sExtProxyAddr: = sExtProxyAddr; ct Resume:

Kraj: kraj; kraj.

U pubu! i s tri dodane varijable: i Lokalni port, iExtProxyPort tipa Integer i sExtProxyAddr tipa String. Ove varijable smo već koristili kada smo gledali kod za kreiranje streama, ovdje možete vidjeti kako su deklarirane.

Glavni kod niti poslužitelja nalazi se u proceduri Izvrši. Prvo se kreira utičnica i pokreće se osluškivanje veza na portu koji je odredio korisnik.

U beskonačnoj while petlji prihvaćaju se dolazne veze. Ako je primljena valjana utičnica, tada se kreira drugi TClientThread. Izravna komunikacija između klijenta i poslužitelja odvijat će se u ovoj niti. Stream će služiti kao posrednik za klijenta za pristup web stranicama. Kôd za TClientThread prikazan je u Listingu 5-11.

Listing 5.11. Stream koji posreduje između klijenta i weba

Jedinica ClientThreadUnit.

ja interfase koristi

Klase, winsock. sysutils. prozori: tip TClientThread = klasa (TThread) privatna (Privatne deklaracije) zaštićena procedura Izvrši: nadjačati; javni iExtProxyPort: cijeli broj; sExtProxyAddr: String: stClient: TSocket: end:

implementacija (TClientThread) funkcija LookupName (naziv: String): TInAddr; begin // Funkcija za određivanje imena koja nam je poznata

// Funkcija za slanje niza

Procedura SendStr (s: TSocket: str: String): početak TempStr: = str + # 13 + # 10: CopyMemory (@sRecvBuff. PCharCTempStr). Duljina (TempStr)); poslati (s. sRecvBuff. Dužina (TempStr). 0); kraj; procedure TClientThread.Execute: var Buff: niz char: iPort: Integer: sRequest. sHost: String: server_addr: sockaddMn: nastavak &

Listing 5.11 (nastavak) sock_server-TSocket: iMode. iSize: Integer-rfds: TFDSET. početi /////////////////////////// // Pročitajte zaglavlje //////////////// / /////////// RecvCstClient. Buff. 1024,0):

SRequest: = String (Buff).

// Nema zaglavlja ako je sRequest = "" zatim započinje CIoseSocket (stCl i ent). izlaz, kraj:

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

// Odredite adresu i port poslužitelja

//////////////////////////// sHost: = Kopiraj (sRequest. PosCHost: ". sRequest). 255): Izbriši (sHost. Pos (# 13. SHost), 255); Izbriši (sHost. 1, 6); iPort: = St rToIntDef (Kopiraj (sHost. PosC: ". SHost) + l. 255). 80): Izbriši (sHost. PosC: ". SHost). 255):

// Ako host nije pronađen, onda greška

Ako je sHost = "" onda. započeti SendStr (stClient. "HTTP / 1.0 400 Nevažeće zaglavlje primljeno iz preglednika"); CIoseSocket (stCli ent); izlaz: kraj;

// Ako postoji vanjski "proxy", onda preusmjerite na njega

Ako sExtProxyAddr<>"onda započnite iPort: = iExtProxyPort; sHost: = SExtProxyAddr; kraj:

sock_server -: = socket (AF_INET. S0CK_STREAM. 0): // Tražim proxy poslužitelj

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); jedan

// Povezivanje s poslužiteljem

Ako spojite (sock_server. Server_addr. Sizeof (server_addr)) = SOCKETJRROR tada započnite SendStr (stClient. "404 Host Not Found"); Izlaz; kraj; iMode: = 1: setsockopt (sock_server. IPPR0T0_TCP. TCPJODELAY. @iMode. sizeof (cijeli broj)).

// Preusmjerite zahtjev na poslužitelj ili drugi "proxy" za slanje (sock_server. Buff, strlen (buff) .0):

// Sada radimo kao posrednik između klijenta i poslužitelja. // prosljeđivanje traženih podataka dok true počinje // Dodajte utičnice skupu da čekaju FD_ZERO (rfds): FD_SET (stClient, rfds): FD_SET (sock_server.rfds); ako (odaberite (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:

// Ako su podaci došli s poslužitelja.

// zatim preusmjeriti na klijenta

Ako (FD_ISSET (sock_server, rfds)) onda započnite iSize: = recv (sock_server, buff.sizeof (buff). 0):

// Poslužitelj je već poslao sve ako je iSize = 0 onda izađi:

Listing 5.11 (nastavak) SencKstClient. buff. iSize. 0): nastavi:

Kraj; kraj: CloseSocket (stClí ent): CloseSocket (sock_server): kraj: kraj.

Za proxy poslužitelj, najzanimljivije je skriveno u TClientThread-u, a sada ćemo ga pobliže pogledati. Jedina stvar koja nedostaje u ovom popisu je funkcija LookupName koja nam je već poznata.

Dakle, kada se klijent poveže s proxy poslužiteljem, on šalje standardni HTTP zahtjev za dobivanje neke datoteke. Ovo zaglavlje čitamo pomoću funkcije recv. Zaglavlje izgleda ovako:

DOBITI http://VAAo.vr-onl1ne.rU/HTTP/l.0 Prihvati: slika / gif. slika / x-xbitmap. slika / jpeg. * / * Accept-Language: ru Korisnički agent: Mozilla / 4.0 (kompatibilan: MSIE 6.0: windows NT 5.2: .NET CLR 1.1.4322) Host: www.vr-online.ru Proxy-Connection- Keep-Alive

Iako nećemo ulaziti u bit zahtjeva i ovdje sadržanih naredbi, sada nam je glavna stvar host linija. Sadrži adresu poslužitelja s kojeg želite primiti podatke i vratiti ih klijentu. U ovom slučaju to je www.vr-onlin.ru. Adresa je poznata, ostaje da saznamo luku. Prema zadanim postavkama, web poslužitelji rade na portu 80, ali ako ne, tada će adresa web poslužitelja biti navedena na sljedeći način: www.vr-online.ru:Port. Nakon dvotočke, naveden je broj porta i tu nijansu moramo uzeti u obzir.

Dakle, nakon što smo primili zaglavlje, počinjemo birati naziv hosta iz njega:

SHost: = Kopiraj (sRequest, Pos ("Host:". SRequest). 255): Izbriši (sHost. Pos (# 13. SHost). 255); Izbriši (sHost. 1.6);

Sada odvajamo broj porta, ako je naveden:

IPort: = StrToIntDef (Kopiraj (sHost. PosC: ". SHost) + l. 255). 80); Izbriši (sHost. PosC:". SHost), 255):

Ako port nije naveden, funkcija StrToIntDef će generirati pogrešku i vratiti zadanu vrijednost, koja je 80.

Obavezno provjerite: ako je varijabla sHost nakon raščlanjivanja zaglavlja jednaka praznom nizu, tada adresa poslužitelja nije navedena ili je navedena pogrešno. U ovom slučaju moramo vratiti pogrešku. To se može učiniti na sljedeći način:

SendStr (stClí ent. "HTTP / 1.0 400 Nevažeće zaglavlje primljeno iz preglednika");

Nakon slanja pogreške, zatvorite utičnicu i izađite iz streama.

Sada provjeravamo: ako je naveden vanjski "proxy", tada adresu i port poslužitelja zamjenjujemo parametrima vanjskog proxy poslužitelja. U ovom slučaju, samo moramo proslijediti zahtjev primljen od klijenta ovom poslužitelju.

Uglavnom, ako postoji vanjski proxy poslužitelj, onda nema smisla određivati ​​adresu poslužitelja. Ali ja to svejedno činim i savjetujem vam, jer bi vam u budućnosti moglo zatrebati preusmjeravanje. Na primjer, ako korisnik zatraži stranicu sa stranice www.sex.ru, tada će naš proxy poslužitelj to odrediti i moći će preusmjeriti zahtjev na drugi poslužitelj. Da biste to učinili, dovoljno je promijeniti vrijednost varijable sHost i malo ispraviti zahtjev koji je došao od klijenta.

Nakon što smo definirali potrebne parametre, kreiramo novu utičnicu koja će se koristiti za komunikaciju s vanjskim poslužiteljem (bez obzira radi li se o drugom proxy poslužitelju ili o samom web poslužitelju).

Nakon što smo stvorili novu utičnicu i spojili se na poslužitelj, odmah smo je stavili u asinkroni način rada na ovaj način:

IMode: = 1: setockopt (sock_server. IPPROTOJCP. TCP_NODELAY. OiMode. Sízeof (cijeli broj)):

Funkcija setsockopt u ovom je slučaju po svrsi slična íoctl utičnici o kojoj se govori u 4. poglavlju. Ona stavlja utičnicu u brži način rada, što vam omogućuje da ne čekate ili gomilate podatke, već da ih odmah primite i pošaljete. Dakle, minimiziramo kašnjenja, a poslužitelj ili klijent je odgovoran za akumulaciju.

Nakon prebacivanja utičnice u traženi način rada, preusmjeravamo zahtjev s klijenta na web poslužitelj (ili sljedeći proxy poslužitelj) i pokrećemo beskonačnu petlju. Ovaj ciklus će biti posrednik. Ovdje se očekuju podaci od klijenta i poslužitelja koji se međusobno šalju. Ako se primaju prazni podaci, to znači da je veza završena i ciklus je prekinut. Sve otvorene utičnice se zatvaraju po izlasku iz postupka.

Kao što vidite, proxy je samo posrednik koji prosljeđuje pakete između klijenta i poslužitelja. Pokušajte dodati mogućnost da vidite što se šalje između klijenta i poslužitelja i vidjet ćete da na zahtjev klijenta poslužitelj prenosi samo tekstualni sadržaj dokumenta. Nakon toga preglednik analizira primljeni dokument, a ako pronađe slike ili druge dodatne informacije (zvučne datoteke, flash-isječke itd.), postoji dodatni zahtjev za primanje ovih podataka. Dakle, preglednik prima samo podatke koji su mu potrebni i može uštedjeti promet.

Također bih želio skrenuti vašu pozornost na činjenicu da su brojevi portova u izvornom kodu prema zadanim postavkama postavljeni na 8080. To je zato što je moja mreža konfigurirana putem proxy poslužitelja. Ako koristite DialUp, tada prazne linije treba navesti kao port vanjskog "proxyja" i adresu.

Da biste testirali primjer, pokrenite naš program i poslužitelj. Zatim otvorite Internet Explorer (ili neki drugi preglednik) i konfigurirajte ga da koristi proxy poslužitelj. Da biste to učinili, pokrenite naredbu izbornika Alati Internet opcije i u dijaloškom okviru koji se pojavi (slika 5.10) idite na karticu Connection.

Riža. 5.10. Postavka preglednika

Kliknite gumb Mrežne postavke i pred vama će se otvoriti novi dijaloški okvir (slika 5.11).


Riža. 5.11. Postavljanje proxy poslužitelja

U području Proxy poslužitelja potvrdite okvir Koristi proxy poslužitelj i navedite adresu i port. Ako koristite poslužitelj na svom lokalnom računalu, možete odrediti 127.0.0.1, ali preporučujem da navedete pravu adresu kako bi primjer funkcionirao.

NAPOMENA --- 1 Izvorni kod za primjer prikazan ovdje nalazi se na CD-ROM-u u direktoriju 5ogce5 \ cn05 \ H "GTRProxy.

Ako trebate proxy, u nastavku ćete pronaći, po mom mišljenju, najbolji način za stvaranje proxyja. Čemu služi proxy poslužitelj? Vrlo jednostavno, evo nekoliko mogućih odgovora na ovo pitanje:

1. Zamislite da sjedite u hotelu ili kafiću s besplatnim WiFi-jem. Gdje je garancija da WiFi ne postavljaju prevaranti koji čekaju da neka naivčina počne prenositi podatke svoje bankovne kartice preko WiFi-ja ili da im unese prijave i lozinke na svoje osobne stranice. Ovdje postoje dva načina: ili ne koristite besplatni WiFi za posao i kupovinu, ili koristite proxy, uz pomoć kojeg će se podaci prenositi u šifriranom obliku.

2. Skrivanje vaše prave IP adrese. Ponekad je potrebno zadržati anonimnost.

3. Dobili ste ban tražilice zbog čestih zahtjeva. Na primjer, ako Yandex često pita jeste li robot ili čovjek.

Postoje 2 opcije za pronalaženje proxy poslužitelja: pronađite uslugu (plaćenu ili besplatnu) ili izradite vlastiti proxy poslužitelj. Ovdje nećemo razmatrati prvu opciju, budući da nema jamstva da zapisnik nije zapisan na poslužitelju (vjerojatnost gubitka osobnih podataka, podataka o bankovnoj kartici, prijava i lozinki). U nastavku ćemo razmotriti drugu opciju: stvaranje vlastitog proxy poslužitelja.

1. Pronađite hosting sa SSH podrškom

Ako ste webmaster, možda već imate hosting sa SSH podrškom. Ako ne, potražite na internetu jeftin hosting koji podržava SSH. Postoje pružatelji usluga hostinga koji su spremni ponuditi hosting koji nam je potreban za oko 1 dolar mjesečno. Možete pronaći i inozemni hosting, ali bit će malo skuplji. Ako izgledate bolje, možete pronaći besplatne opcije, ali mislim da će one koje se plaćaju raditi pouzdanije.

2. Pokrenite program PuTTY

Nakon što dobijete svoj SSH hosting, trebate PuTTY za stvaranje lokalnog proxy poslužitelja. Program možete besplatno preuzeti sa službene web stranice programa: www.putty.org.

3. Konfiguriranje programa PuTTY

Nakon pokretanja programa, vidjet ćete prozor s postavkama. U polje Host Name unesite domenu ili IP adresu vašeg poslužitelja. U polju Port navedite port, obično 22.

Sada idite na Connection-> SSH-> Tunels kategoriju. Ovdje morate dodati port. Da biste to učinili, u polje Izvorni port unesite port za budući lokalni proxy poslužitelj, na primjer 8888. Odaberite opciju Dinamic i kliknite gumb Dodaj. Nakon toga, port će se pojaviti u polju Proslijeđeni portovi - redak D8888.

Kako ne biste radili ovaj dugotrajni postupak svaki put kada pokrenete, morate spremiti trenutne postavke. Da biste to učinili, vratite se u kategoriju Sesija, unesite naziv za svoje postavke u polje Spremljene sesije, na primjer, "myhost.ru proxy" i kliknite gumb Spremi. Nakon toga, vaše postavke će se pojaviti na popisu ispod. Sada, sljedeći put kada pokrenete program, možete odabrati svoje postavke na ovom popisu i kliknuti na gumb Učitaj.

4. Otvaranje sesije

Nakon konfiguriranja programa, možete otvoriti sesiju. Ovo će stvoriti lokalni proxy poslužitelj. Da biste to učinili, kliknite na gumb Otvori.

Ako se prvi put povezujete s poslužiteljem, PuTTY će vas obavijestiti da nema informacija o ovom poslužitelju. Toplo preporučujem da se prvi put povežete na svoj poslužitelj putem pouzdane, poznate mreže, u ovom slučaju kliknite gumb Da. Ako vidite takvu poruku prilikom povezivanja putem nepoznate besplatne pristupne točke, bolje je ne nastaviti vezu i kliknite gumb Odustani.



5. Proxy poslužitelj je spreman!

Nakon što unesete svoje korisničko ime i lozinku, informacije o poslužitelju će se pojaviti na ekranu, a vaš proxy će biti dostupan na 127.0.0.1:8888 ili localhost: 8888. Na kraju rada može se zatvoriti crni prozor PuTTY programa slaganjem s upozorenjem.

6. Konfiguriranje preglednika i ostalih programa

Da biste koristili kreirani lokalni proxy poslužitelj u pregledniku, morate konfigurirati vezu putem SOCKS5 proxy poslužitelja navodeći postavke 127.0.0.1:8888 ili lokalni host: 8888 ... Ostali programi su konfigurirani na sličan način. Na primjer, razmislite o postavljanju preglednika Internet Explorer 10.

Odaberite "Opcije preglednika" s izbornika.


U prozoru koji se pojavi odaberite karticu "Veze" i na njoj kliknite gumb "Mrežne postavke".

U prozoru "Konfiguriraj postavke lokalne mreže" označite potvrdni okvir "Koristi proxy poslužitelj..." (u nadalje, kako biste brzo uključili i isključili proxy, možete jednostavno ukloniti ili instalirati ovaj potvrdni okvir) i kliknite na gumb "Napredno".

U prozoru "Postavke proxy poslužitelja" navedite samo stavku 4. Obrišite ostala polja kako se preglednik ne bi zbunio.

Sada zatvorite sve prozore klikom na gumbe "U redu". Vaš preglednik je spreman za rad putem proxyja.

7. Provjera

Kako biste provjerili i bili sigurni da zapravo pristupate Internetu putem poslužitelja, idite u pregledniku na stranicu jednog od servisa koji određuju vašu IP adresu. Na primjer, internet.yandex.ru ili detaljnija 2IP usluga. Usporedite IP adresu s onemogućenim i omogućenim proxy poslužiteljem.

Trebate proxy? Gdje ga nabaviti, često se javlja takva potreba. Korisnici Interneta to često primjećuju u svom svakodnevnom radu. Zašto ćete možda morati sakriti IP adresu:

Održavanje vaše anonimnosti. (Ovo je korisno ako koristite internet za određene industrije.)

Raščlanjivanjem tražilice dobili ste ban. Na primjer, "Jeste li robot, često pitanje od tražilice Yandex?". Ili Rapidshara.com ometa jednostavno korištenje njezinih usluga.

Postoji nekoliko opcija za pronalaženje proxy (čarapa) poslužitelja: izvršite kupnju, sami analizirajte poslužitelj ili ga sami izradite. Prve 2 opcije nisu osobito prikladne jer pri kupnji proxyja ne znamo je li prijava napisana (možete izgubiti i svoje osobne podatke, icq ili mail).

Opunomoćenici koji su u javnoj domeni – javni, obično traju ne više od jednog dana. Stoga mislim da je opcija 3 poželjnija, ili bolje rečeno, jednostavno ćemo besplatno kreirati vlastiti poslužitelj. Da biste izvršili ovaj zadatak, morate izvršiti nekoliko jednostavnih koraka.

1) Otvaramo tražilicu prikladnu za vas i tražimo hosting sa ssh podrškom - nije skupo. U ruskom segmentu lako možete pronaći desetak hostera koji će prodavati hosting sa ssh podrškom za samo 1 dolar. Prekomorska IP adresa, koštat će više od oko 5 USD mjesečno. Ali ako vam je potrebna besplatna usluga, postoji mnogo davatelja usluga hostinga koji će vam besplatno pružiti testnu verziju. Samo trebate dobro izgledati.

2) Kao rezultat toga, imate račun sa ssh, za sada smo zaboravili na to. Za sljedeći korak trebamo nekoliko softvera za rad sa ssh-om. Ako ste ikada koristili naredbeni redak na nix sustavima, znate za kit, ali ako ga niste upoznali, onda je u redu, samo preuzmite program.

3) Pokrenite putty i konfigurirajte naš poslužitelj: U HostName unesite IP adresu vašeg poslužitelja ili domene. Polje Port je obično 21, što je zadana postavka za ssh. Na kartici Connection -> Ssh -> Tunnels, (Add new forwarded port) - trebate dodati novi port (. Source Port, odaberite port koji će proxy koristiti na našem računalu. Dynamic se svakako mora odabrati i kliknite na gumb za dodavanje. Kao rezultat toga, u Forwarded Port, trebali biste vidjeti unos D81.

4) Pronađite i kliknite na gumb za otvaranje. U crnom prozoru za početak unesite svoje korisničko ime, zatim, naravno, lozinku (ako se ništa ne pojavi tijekom postupka unosa lozinke, onda je to normalno).

5) Pa, u principu, gotovo je - proxy na 127.0.0.1:81 je vaš. Možete iskoristiti prednosti svog rada. Štoviše, metoda je, ako ne u svim slučajevima besplatna, onda barem uvijek ekonomična.

I još nešto - čim otvorite ssh sesiju, u proxy postavkama preglednika potrebno je unijeti localhost (127.0.0.1) i port, i to ne u HTTP-Proxy, već u SOCKS5.

Vrhunski povezani članci