Az A számítógép (feltételezve, hogy az ip értéke 444.44.44), képes a 130.89.148.12 gazdagépre.
ftp 130.89.148.12 Connected to 130.89.148.12. 220 ftp.debian.org FTP server Name (130.89.148.12:debian8): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files.
A B számítógép (az én helyi számítógépem) nem tudja az ftp-t a 130.89.148.12. Építsünk egy ssh alagutat ssh paranccsal:
ssh -L -f -N localhost:2121:130.89.148.12:21 [email protected]
A helyi számítógépem és az A számítógépem (44.44.44.44) közötti ssh alagutat azután csatlakoztattuk, hogy jelszó a 44.44.44.44. bejelentkezéshez.
Ezután írja be a parancsot a helyi pc-konzolomra:
ftp localhost:2121 ftp: localhost:2121: Name or service not known
Mi a baj az ssh alagútommal?
Gondolkodj a chexumon, a jobb ftp parancs az ftp localhost 2121, de új probléma.
Megjegyzések
Válasz
Az Ön megközelítése ezt nem veszi figyelembe más általános protokollokkal ellentétben az FTP alapértelmezés szerint mind a 20., mind a 21. portot a TCP felett használja .
A passzív kifejezés arra utal, hogy a protokoll kissé jobban viselkedik, mint a kezdeti implementációk.
Itt van egy link:
http://www.slacksite.com/other/ftp.html
A 20 / TCP port az adatokhoz, a 21 / TCP pedig a parancsokhoz használható .
A Unixban a privilegizált < 1024 portok is csak rootokkal köthetők meg.
Tehát akár te:
sudo ssh -f -N -L 20:130.89.148.12:20 -L 21:130.89.148.12:21 [email protected]
Így nem adsz meg extra portot, és csak
ftp -p localhost
vagy ha nincs root:
ssh -f -N -L 2120:130.89.148.12:20 -L 2121:130.89.148.12:21 [email protected]
, majd használja:
ftp -p -P 2121 localhost
man ftp http://linux.die.net/man/1/ftp
-p passzív mód
-P port
vagy a ftp
olyan verziójával, amely nem támogatja a -P
verziót (Debian 9 / Ubuntu 16.04):
ftp -p localhost 2121
Hagyok egy linket az “SSH alagutak helyi és távoli port továbbításának magyarázatához”
Végül azt tanácsolom, hogy ne használjuk a root-ot a távoli rendszerben ssh kapcsolatokhoz. A root egy nagyon hatékony fiók, és csak a rendszergazdák számára szabad fenntartani.
Ezenkívül sok modern Linux rendszeren az ssh távoli bejelentkezés gyökérként alapértelmezés szerint le van tiltva.
Megjegyzések
- Mit? Az adatkapcsolat nem használja a 20-as portot; véletlenszerű portot használ: > 1024. Úgy tűnik, hogy a
ftp
nem rendelkezik-P
opcióval, legalábbis az Ubuntu 16.04-en nem. Így nem tudod továbbadni az ftp-t ssh-sel, mivel nem tudod ', hogy tudod, milyen véletlenszerű portot választunk az adatkapcsolat létrejöttekor (és minden átvitt fájlhoz vagy mindegyikhez kapsz egy másikat) amikorls
). - Nem, a szerver egy efemer portra is figyel. Meg kell, mivel több klienst is képes kiszolgálni, és ha mindegyikhez használná a 20-as portot, akkor fogalma sem lenne arról, melyik melyik vezérlő munkamenetnek felel meg.
- Az FTP RFC-t kinyomtattam a pontomra mátrix nyomtatót és tanulmányoztam, amikor 16 éves voltam. Rájöttem, hogy kiadhat egy PASV parancsot az egyik kiszolgálónak, majd egy PORT parancsot a másik kiszolgálónak az IP címmel és a portszámmal a másik szerver PASV válaszából, és megkapja őket hogy a fájlt közvetlenül az egyik szerverről a másikra küldjem, ahelyett, hogy magamnak kellett volna letöltenem és feltöltenem a 28,8 kbps sebességű modememet. Később megjelent egy FXP nevű program, amely képes erre, és a WinNT-hez írtam egy saját FTP-kiszolgáló szoftvert is, amely minden másról lefújta a nadrágot. Nézze meg maga a PASV-választ.
- Zavarodott vagy. Nem a 20., hanem a 21. porton hallgat. Csatlakozik a kiszolgálóhoz a 21. porton, majd vagy kiad egy PORT parancsot, megmondva a szervernek, hogy milyen IP-hez és portszámhoz kell csatlakoznia, vagy egy PASV parancsot, amely esetben elkezd hallgatni az adatkapcsolat egy ideiglenes porton, és meghatározza, melyik port van a válaszban. Az idézet pasv parancsától az ftp.gnu.org-ig: " 227 Belépés passzív módba (208,118,235,20,96,222) ". Ne feledje, hogy a szerver a 96 222-es vagy a 24 798-as porton hallgat.
- Miért ne szerkesztené úgy, hogy helyes legyen?
ftp(1)
kézikönyvben a port megadását. ' általában szóköz (nem kettőspont), vagy-p
opcióként választja el. Ön ' ll is meg kell győződnie arról, hogy passzív ftp-t használ, ezért először ellenőrizze a kézikönyvet.