发信人: raner (就要离开清华了...), 信区: Linux
标  题: 通过ftp.gb.com.cn中转国外软件的方法
发信站: BBS 水木清华站 (Mon Jun 22 22:10:43 1998)
 
  相信还有许多人不会这样让两个ftp中转(象我原来就不懂 :-(( ), 整理一下贴出来
 
 1. 设置ftp的auto login功能
 
    呵呵, 对于命令行ftp还是很方便的, 还是加上吧 :-)  man ftp(/netrc)
   vi $/.netrc
   加上 default login anonymous password  user@site.edu.cn
   前面还可以加别的machine(不一定是anonymous)
 
   ftp -n site.xx.xx 可以取消自动login
 
 2. 写 shell scripts
 
   eg: ftp ftp.gb.com.cn << _EOF_
       cd incoming/unix/
       binary
       prompt
       proxy open sunsite.unc.edu
       proxy cd /pub/Linux/distributions/redhat/xxxx
       proxy put dir.tar.gz      呵呵, wu-ftpd支持很好的dir取
       proxy close
       quit
       _EOF_
 
  当然proxy 处就是对你想down的ftp server操作了, 经过试验多数ftp server
  都可以这样做(只要server支持PASV命令就行了). 由于这样你的local只传输控制
  信息, 流量就可以忽略了 :-)) 让gb.com和cdrom.com自己慢慢忙乎去吧 :-))
 
  把这个shell scripts用nohup或at搞到后台去慢慢跑吧
 
 3. 关于这样的原理
 
  ftp通过proxy开第二个control session, 让它进passive mode(就是由client连
  server)
 
  ftp对第一个control session操作时, mget/get就把文件传到第二个control session
  这是利用了PORT命令, 这里给的IP和PORT是第二个control session的, 这样就相当于
  直接把文件从ftp1 download到ftp2, 反过来也是, proxy mput/put把proxy里的文件
  upload到ftp1, 一共有三个地方:
 
    ftp1(main control session,use 'open' to open)
    ftp2(secondary control session, use 'proxy open' to open)
    local
 
    mput/put/send         local->ftp1
    mget/get/recv         ftp1->local
    proxy mput/put/send   ftp2->ftp1
    proxy mget/get/recv   ftp1->ftp2
   (man ftp中有段讲proxy命令的很详细, 大家自己看看吧)
 
----------
注: 对于拨号上网这个方法用处不大.有些地方按流量计费而且到国外的流量费率较高时,嘿嘿...

本文转自中文Linux论坛