星期二, 一月 09, 2007

让Emacs的ange ftp支持被动模式

在windows下配置emacs支持ssh编辑文件确实比较麻烦,不如mac那般自如,于是在服务器开了一个ftp,让emacs通过ftp编辑文件,但是windows的ftp命令又不支持被动模式。。。。(又一次被win打败了),用emacs连接ftp会出现如下错误:

425 Unable to build data connection: No route to host

解决方法:
下载一个新的ftp命令
http://www.emacs.cn/uploads/FTP/ftp.rar
放到system32目录下,然后在emacs中加入如下配置
(setq ange-ftp-ftp-program-name "myftp")

参考文章:
http://www.emacs.cn/FTP/FTP

补充资料:

何为被动模式:
假设 FTP 客户端所在的机器有一个私有地址,它只在本地网络中可用,你通过一台
NAT 网关接入 Internet。客户端可以创建到外部 FTP 服务器的控制连接。然而,如
果客户端尝试用通常的逆向方式创建数据连接,就会有问题出现。客户端不知道存
在 NAT网关,因此它(通过PORT 命令)告诉服务器连接包含它的私有地址的套接
字。在远程主机那儿这个地址是没有用的,所以服务器通常会发一个“no route to
host”响应,然后断开连接(注 5)。图 11-5 对这种情况做了解释。用被动模式同样
能解决,因为这样做服务器不必连回客户端,客户端的地址也就无关紧要了。
PORT 10,1,2,3,20,20
NAT 10.0.0.0/8
私有地址
Internet
21
连往
10.1.2.3: 20509
“没有到特定主机的路由!“
FTP
服务器
FTP
客户端
10.1.2.3

客户端 NAT 阻碍了主动模式的 FTP 传输
到此为止,我们已经列举了三种需要被动 FTP 的情况:控制连接转发、客户端位于
防火墙之后以及客户端位于 NAT 之后。既然主动 FTP 有这些潜在的问题,而且据
我们目前已知的情况看,被动 FTP 没有什么不利因素,因此,我们推荐只要可能,
就一直使用被动 FTP。

标签:

0 Comments:

发表评论

<< Home