发信人: 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论坛