proftp 1.2.9的基本安装手册( 六 )



is definately the mailing list (proftpd-l) but it"s not productive to ask for help without giving enough information for

intelligent debugging.

Have you?


Checked your logs

Tried the server in debug mode

Read the FAQ?

Checked the mailing list archive?

Are you running the latest version?

When posting try giving enough information, this might include but not be limited to.


OS and server version (proftpd -vv)

List of included modules (proftpd -l)

Appropriate log extracts

Output fom debug mode

Configration fragment

2. "inet_create_connection() failed: Operation not permitted".

You aren"t starting ProFTPD as root, or you have inetd configured to run ProFTPD as a user other than root. The ProFTPD

daemon must be started as root in order to bind to tcp ports lower than 1024, or to open your shadow password file when

authenticating users. The daemon switches uid/gids to the user and group specified by the User/Group directives during normal

operation, so a "ps" will show it running as the user you specified.

3. Unable to bind to port/Address already in use

0.0.0.0 is INADDR_ANY, which means to bind to any interface. The "address in use" will normally mean that something has

already bound to that address.

Under Linux it is possible to run:

fuser -n tcp 21

to get the PID of the process currently bound to port ProFTPD is configured to run as.

The most common cause is that ProFTPD is configured standalone and inetd is still configured for port 21. Comment out the

line starting "ftp" in /etc/inetd.conf and restart (killall -HUP inetd or something similar should do the trick) and try

again.

4. "(Login failed): Invalid shell"

The user attempting to login has been given a shell that is not listed in the system"s /etc/shells file. By default, proftpd

will require that users logging in have valid shells. Use the RequireValidShell directive to turn off this requirement:

RequireValidShell off

5. "Fatal: Socket operation on non-socket"

You have ProFTPD configured to run in inetd mode rather than standalone. In this mode, ProFTPD expects that it will be run

from the inetd super-server, which implies that stdin/stdout will be sockets instead of terminals. As a result, socket

operations will fail and the above error will be printed. If you wish to run ProFTPD from the shell, in standalone mode,

you"ll need to modify your proftpd.conf configuration file and add or edit the ServerType directive to read:

ServerType standalone

6. "Fatal: unable to determine IP address of "hostname:

The hosting Machine has a poorly configured hostname setup to the point where the resolver library cannot determine the IP

from the name. Solutions include, fixing the DNS for the domain, fixing the hostname, fixing the /etc/hosts file. Which one

works for you will largely depend on your OS and exactly what is wrong.

7. I"m having problems with FTP clients behind firewalls

The FTP Specification defines that two sockets should be used for all communications. The first runs over port 21 and is the

control channel over which all commands and response codes are sent. Whenever data is required to be transfered, for example

for a file download, a directory listing etc etc. A second channel is created on demand, this socket can take one of two

forms.

non-Passive
The server end of the data socket uses port 20. This is nice and easy to work into a firewall configuration.

Passive
The port at either end is dynamically allocated. This is virtually impossible to cater for in a firewall configuration given

that the port mapping will be different for every data connection.

The solution is to force the users to configure their clients to use the non-passive mode (ie port 20)

推荐阅读