Avatar billede riversen Nybegynder
24. april 2003 - 21:17 Der er 54 kommentarer og
2 løsninger

FTP Server

ja, endnu et spørgsmål vedr. ftp server.

Som jeg har forstået forskellen på passiv og aktiv ftp.

Passiv: klienten kobler på med passiv. Serveren fortæller klienten hvilken port der kan kommunikeres på

Aktiv: klienten kobler på...klienten fortæller serveren hvilken port der kan kommunikeres på

Nu har jeg installeret g6 ftp server, som jeg tester imod, for at finde ud af hvad serveren sender til klienten af oplysninger. Den er sat til at køre på port 21 og jeg har ikke fortalt den noget med passiv range. Hvis jeg kobler på med cuteftp er der absolut ingen problemer med at koble på. Også selvom jeg ser, at serveren fortæller cuteftp at den kan koble på fx. port 4500. Men når jeg gør det samme fra klienten kan den ikke få forbindelse. Egentlig synes jeg det virker logisk nok, men når nu cuteftp kan, sååååå....
har jeg misforstået noget vedr. passiv/aktiv ftp. Der er jo ikke åbnet for fx port 4500 i routeren, så jeg forstår det ikke helt.
Avatar billede riversen Nybegynder
24. april 2003 - 21:19 #1
når jeg kører på localhost er der selvfølgelig ingen problemer
Avatar billede arne_v Ekspert
24. april 2003 - 21:23 #2
Det drejer som at FTP protokollen har 2 connections:
control og data

Normalt så er connection:
  control: client->server
  data: client<-server

I passiv mode er connection:
  control: client->server
  data: client->server

Passiv mode er opfundet fordi hvis client er bagved en firewall,
så kan serveren ikke få lov til at connecte.
Avatar billede simonvalter Praktikant
24. april 2003 - 21:26 #3
Avatar billede arne_v Ekspert
24. april 2003 - 21:31 #4
Koder du Unix C, MS VC++ eller Java ?
Avatar billede riversen Nybegynder
24. april 2003 - 21:35 #5
koder i java...

så har jeg jo forstået det rigtigt...men hvordan kan det så virke med passive mode fra cuteftp, når nu der kun er åbent for port 21? og når nu det virker...hvorfor gør det så ikke i min klient?
Avatar billede riversen Nybegynder
24. april 2003 - 21:37 #6
når jeg kører op mod en anden g6 ftp server, hvor der er sat noget op vedr. passive porte så kører det fint
Avatar billede arne_v Ekspert
24. april 2003 - 21:39 #7
For at kunne svare på det spørgsmål skulle vi jo nok vide lidt om din
kode.

:-)
Avatar billede arne_v Ekspert
24. april 2003 - 21:40 #8
Har du iøvrigt selv kodet det hele eller har du brugt f.eks.
Jakarta Commons Net ?
Avatar billede simonvalter Praktikant
24. april 2003 - 21:40 #9
øhh ... hvis der ikke er sat passive op så skal du heller ikke connecte med passive ..
jeg går ud fra at cuteftp autodetecter hvad serveren bruger.
Avatar billede riversen Nybegynder
24. april 2003 - 21:41 #10
arne_v: nej, det er nok mere et spørgsmål om ftp...min kode fungerer jo fint nok
Avatar billede arne_v Ekspert
24. april 2003 - 21:41 #11
Kan du forklare lidt om konfigurationen:
  ingen firewalls ?
  firewall foran client ?
  firewall foran server ?
  firewall foran både client og server ?
(og hvad der er lukket op for i de firewalls)
Avatar billede riversen Nybegynder
24. april 2003 - 21:42 #12
loadet: hvordan så det? fordi den sender jo PASV til serveren som svarer tilbage, og så initierer den jo ingen forbindelse...ergo må forbindelsen vel så gå død. Og hvordan skulle cuteftp dog kunne autodetecte det?
Avatar billede riversen Nybegynder
24. april 2003 - 21:44 #13
serveren er bag router hvor port 21 er åben
Avatar billede arne_v Ekspert
24. april 2003 - 21:49 #14
Hvis kun serveren er bag en firewall hvor kun port 21 er åben, så
skal der ikke bruges passiv mode.
Avatar billede simonvalter Praktikant
24. april 2003 - 21:49 #15
ja jeg ved ikke om det kan lade sig gøre at autodetecte .. men hvis cuteftp virker burde din client da også .. ellers vil jeg da også mene det er koden den er galt med
Avatar billede simonvalter Praktikant
24. april 2003 - 21:50 #16
der kan ikke bruges passive mode .. der skal være sat en range af ports til passive .. helst omkring 10 pr bruger på ftpd
Avatar billede riversen Nybegynder
24. april 2003 - 21:53 #17
er følgende så korrekt...

hvis man som jeg sætter sin server op på port 21 og ikke indtaster nogle passive porte. Så burde klienter kun kunne koble på som aktive? dvs. man udelukker folk bag router/firewall

og sætter man passive ftp op, så er det KUN passive klienter der kan koble på?
Avatar billede riversen Nybegynder
24. april 2003 - 21:55 #18
har lige fået en ven til at koble i passive mode...ingen problemer
Avatar billede arne_v Ekspert
24. april 2003 - 21:57 #19
Kun port 21 åben => passiv ikke muligt => client bag firewall duer ikke.

En server understøtter normalt både normal og passive.
Avatar billede arne_v Ekspert
24. april 2003 - 21:58 #20
Hvis din ven kan komme på i passiv mode, så må der være andre
åbne porte.
Avatar billede riversen Nybegynder
24. april 2003 - 21:58 #21
arne_v: men min ven har jo lige gjort det...

ftp.riversen.dk
bruger: test
pass: test

prøv lige selv
Avatar billede simonvalter Praktikant
24. april 2003 - 21:58 #22
ja hvis du feks sætter passive ftpd op .. så kan du ikke list hvis du ikke bruger passive på klienten.
Avatar billede riversen Nybegynder
24. april 2003 - 21:58 #23
arne_v: det er helt 100 der ikke er andre porte
Avatar billede riversen Nybegynder
24. april 2003 - 21:59 #24
koblede du ikke lige på i passive?
Avatar billede simonvalter Praktikant
24. april 2003 - 21:59 #25
hmm .. din ftpd virker altså kun med passive .. der skal være andre åbne porte så .
Avatar billede arne_v Ekspert
24. april 2003 - 22:00 #26
En sommetider brugt workaround er en proxy-server.

Hvis man i en browser med en proxy-server abgiver en FTP URL, så er det:

browser----(HTTP protokol)----proxy-server----(FTP protokol)----FTP-server
Avatar billede riversen Nybegynder
24. april 2003 - 22:00 #27
loadet: hvordan giver det lige mening når jeg kun har åbnet for port 21?
Avatar billede riversen Nybegynder
24. april 2003 - 22:00 #28
og hvorfor kan jeg så ikke logge på i passive mode?
Avatar billede simonvalter Praktikant
24. april 2003 - 22:02 #29
du kan ikke fordi du er i lan ...
det problem har jeg også .. men den ftpd jeg kører kan klare det ..
glftpd.conf

ifip 192.168.*
pasv_addr 192.168.1.2
pasv_ports 4502-5000
elseip
pasv_ports 4502-5000
pasv_addr 62.242.117.41 1
endifip
Avatar billede simonvalter Praktikant
24. april 2003 - 22:04 #30
nej glem hvad jeg lige sagde .. du burde da ikke have noget problem med passive ... hvis alle porte er åbne for dig inde i lan.
Avatar billede arne_v Ekspert
24. april 2003 - 22:04 #31
Mystisk.

Jeg kan logge på og lave dir både uden og med passive !?!?
Avatar billede riversen Nybegynder
24. april 2003 - 22:05 #32
loadet: det er heller ikke noget problem passive...

arne_v: ja, jeg fatter det heller ikke...og igen...jeg er helt helt helt sikker på kun port 21 er åben
Avatar billede riversen Nybegynder
24. april 2003 - 22:06 #33
ja, I er velkomne til at logge på med vnc, hvis I vil tjekke
Avatar billede simonvalter Praktikant
24. april 2003 - 22:10 #34
passive virker heller ikke ordenligt på din server .. jeg kan ikke fxp til den.
Avatar billede riversen Nybegynder
24. april 2003 - 22:12 #35
loadet: ok, endelig lidt logik...selvom arne åbenbart ikke havde problemer...og min ven heller ikke.

Dvs. man bør faktisk altid have passiv ftp enabled på sin server så...så lukker man aldrig nogen ude
Avatar billede simonvalter Praktikant
24. april 2003 - 22:13 #36
ja .. det vil jeg mene .. jeg benytter ikke selv andet end fxp så passive er et must for mig
Avatar billede simonvalter Praktikant
24. april 2003 - 22:14 #37
men har din ven og arne_v prøvet at fxp til serveren .. fxp ikke ftp
Avatar billede riversen Nybegynder
24. april 2003 - 22:14 #38
nu går jeg jo op i detaljerne og kan ikke lade være med at tænke på, hvorfor det så virke i nogle tilfælde.

Men skal vi sige vi ikke rigtigt kan konstatere det pt??
Avatar billede simonvalter Praktikant
24. april 2003 - 22:15 #39
for at passive virker ordenligt skal der være porte åbne på server siden til passive omkring 10 porte pr bruger.
Avatar billede riversen Nybegynder
24. april 2003 - 22:17 #40
loadet: prøv lige igen om 2 min...så retter jeg lige konfigurationen...siger lige til
Avatar billede simonvalter Praktikant
24. april 2003 - 22:17 #41
og det er hurtigt at teste kan du ikke fxp har du ikke passive.
Avatar billede simonvalter Praktikant
24. april 2003 - 22:17 #42
ok
Avatar billede riversen Nybegynder
24. april 2003 - 22:19 #43
sådan...har sat 9970-9999 til passive porte
Avatar billede arne_v Ekspert
24. april 2003 - 22:19 #44
loadet>

Jeg bruger HG FTP client og SET PASSIVE kommandoen på en OpenVMS platform !
Avatar billede simonvalter Praktikant
24. april 2003 - 22:20 #45
arne_v > ja men prøver du at fxp ? server to server transfer ..
Avatar billede riversen Nybegynder
24. april 2003 - 22:21 #46
loadet: kom du på nu?
Avatar billede simonvalter Praktikant
24. april 2003 - 22:22 #47
og riversen > PASV
227 Entering Passive Mode (137,224,228,187,209,52)
PORT 137,224,228,187,209,52
Connection lost: ftp.riversen.dk
> det virker stadig ikke ..

fxp bag router er ikke lige til at sætte op ..
du er nødt til at snyde klienten og fortælle den din externe ip ..
ligsom jeg gør her
ifip 192.168.*
pasv_addr 192.168.1.2
pasv_ports 4502-5000
elseip
pasv_ports 4502-5000
pasv_addr 62.242.117.41 1
endifip

.. men jeg ved ikke om man kan det med g6

og jeg kan jo saktens ftp til din server nu så det virker fint .
Avatar billede riversen Nybegynder
24. april 2003 - 22:24 #48
øh, først siger du det virker stadig ikke, og så siger du det virker nu...?
Avatar billede arne_v Ekspert
24. april 2003 - 22:25 #49
loadet>

Jeg har ikke den fjerneste anelse om hvad fxp er.

Eller hvorfor det skulle have relevans for passive FTP.
Avatar billede simonvalter Praktikant
24. april 2003 - 22:25 #50
umm ja det virker sådan da .. måske er det bare mig men jeg vil mene at passive ikke virker rigtigt før du kan fxp .. noget som du sikkert ikke engang har brug for ..

ftp virker fint nu
Avatar billede riversen Nybegynder
24. april 2003 - 22:31 #51
ok godt nok...jeg kan også koble på eksternt med min klient nu...

tænkte vi måske lige kunne tage et ekstra ? på falderebet...og hvis I så lige lægger svar så jeg kan uddele lidt points

jeg har følgende kode

      DataOutputStream oStream = new DataOutputStream(
                                    newConnection.getOutputStream() );
     
      FileInputStream fi = new FileInputStream( "C:/test.exe" );
     
      byte[] buffer = new byte[1024];
      read = 0;
      while ( read != -1 )     
      {
        read = fi.read( buffer );
        if ( read != -1 )
          oStream.write( buffer, 0, read );
      }


I første omgang lavede jeg ingen buffer, hvilket selvsagt resulterer i cpu belastning samt langsom overførsel. Nu har jeg så teste med lidt forskellige buffer-størrelse...96, 1024, 4096, 40000

96 gav langsom hastighed, mens de 3 sidste gav samme hastighed vil jeg mene...er der nogen logik i det?...altså tænker på om man klart kan sige...dette er den optimale bufferstørrelse
Avatar billede arne_v Ekspert
24. april 2003 - 22:35 #52
Jeg mener at IP pakker er max. ca. 1500 bytes så buffer-størrelse
derover giver formentlig ikke noget.
Avatar billede riversen Nybegynder
24. april 2003 - 22:36 #53
ok....svar lige begge to
Avatar billede arne_v Ekspert
24. april 2003 - 22:36 #54
Jeg kan godt ligge et svar. Men jeg er lidt usikker på omkring
præcis hvad jeg har bidraget med.

:-)
Avatar billede simonvalter Praktikant
24. april 2003 - 22:38 #55
heh samme her ;) tror det er tid til at sove
Avatar billede riversen Nybegynder
24. april 2003 - 22:41 #56
jeg siger nu tak alligevel
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester