Я пытаюсь настроить мой FTP, работающий на моей локальной машине, которая подключается к моей панели управления (162.0.0.1) со встроенным FTP-клиентом. Мой локальный сервер (192.168.1.30) подключен к панели управления в качестве игрового сервера с публичным IP-адресом (152.5.5.5). Порт 20/21 пересылается на моем маршрутизаторе, но по какой-то причине я не могу заставить этот FTP-сервер работать на моей локальной машине с доступом извне моей локальной сети. Возможно, я неправильно настраиваю конфигурацию FTP, но при работе FTP-сервер может получить доступ локально, но не внешне.
- 192.168.1.30 - Локальный FTP-сервер с запущенным на нем демоном и игровой сервер за маршрутизатором.
- 152.5.5.5 - Мой внешний IP
- 162.0.0.1 - Веб-сервер панели управления с веб-клиентом FTP. Это VPS в Лалаланде.
Конфиг 162.0.0.1 -> 152.5.5.5 -> 192.168.1.30
Панель управления Multicraft предназначена для управления игровыми серверами. У них есть встроенный FTP-клиент, который использует net2ftp в браузере, который в этом случае подключается к FTP-серверу 152.5.5.5/192.168.1.30.
Это все машины linux, а роутер - это ASUS с прошивкой merlin. Порты 21, 20, 5000-6000 перенаправляются на маршрутизатор для FTP.
Вот файл конфигурации, с которым я работаю, находится на компьютере 152.5.5.5/192.168.1.30.
[ftp]
## Wheter or not to enable the integrated FTP server, true/false
## default: true
enabled = true
## IP to listen on for FTP connections, uncomment to use the same as
## for the daemon.
## 0.0.0.0 means listening on all available interfaces (all IPs)
## default: same as the "ip" setting for the daemon, see above
ftpIp = 192.168.1.30
## See the descriptions of "externalIp" and "ip" for the daemon above
## default: same as "externalIp" if "ftpIp" is "0.0.0.0" otherwise "ftpIp"
#ftpExternalIp = 152.5.5.5
## Masquerade IP address to use for passive FTP connections when
## Multicraft is running behind a router.
## default: empty
ftpNatIp = 152.5.5.5
## A port range to use for passive data transfers. If this is not
## specified the FTP server will use random ports.
## Format: 4000-8000
## default: empty
ftpPasvPorts = 5000-6000
## Port to listen on for incoming FTP connections. Change this to
## something else if you are already running an FTP server on this
## system.
## default: 21
ftpPort = 21
## Regular expression matching files that can't be manipulated by
## users in any way. If you want users to be able to upload their own
## plugins instead of using the ones you provide for them you can
## just comment this option out.
## default: empty
forbiddenFiles =
## Set the level of detail for FTP server log messages in the multicraft.log.
## Errors will always be logged regardless of this setting.
## Available levels:
## full - Log all messages
## basic - Don't log client/server communication
## none - No FTP logging
## default: full
ftpLogLevel = full
## If this setting is enabled the FTP server will not be started when the main
## daemon process is started. You can start the FTP server separately by using
## "start_ftp" instead of "start" as the parameter to the daemon command.
## default: false
ftpSeparate = false
## The PID file for the FTP only process. The path is relative to "baseDir"
## default: multicraft_ftp.pid
ftpPidFile = multicraft_ftp.pid
## The log file to use for the FTP only process. This setting has no effect if
## the FTP server is started as part of the main daemon process (i.e. if
## "ftpSeparate" is false.
## default: multicraft.log (same as the daemon)
ftpLogFile = multicraftftp.log
## Throttle the FTP bandwidth (experimental)
## Incoming data throttle (Kb/s)
## default: 0 (unlimited)
#ftpThrottleIn = 0
## Outgoing data throttle (Kb/s)
## default: 0 (unlimited)
#ftpThrottleOut = 0
Я попытался установить ftpPasvPorts = 5000-6000, но безуспешно. Также переключение между настройками IP/ExternalIp не дает никаких результатов. В настоящее время я понятия не имею, что я делаю с недостатком идей.
Чтобы добавить к этому, на локальном сервере 152.5.5.5/192.168.1.30 работает демон, который использует FTP-сервер. Конфигурация демона выглядит следующим образом.
## The daemon will listen on the following IP/port.
## 0.0.0.0 to listen on all available interfaces (all IPs). Note that
## you will have to use the "externalIp" setting below if you set this
## to 0.0.0.0 as the control panel needs to know where to connect.
ip = 192.168.1.30
port = 25465
## If the external address is different from the listen address
## you can set the external address here. This setting will be saved
## to the DB and used by the control panel to connect to the daemon.
## default: same as "ip"
externalIp = 152.5.5.5
Они все в одном конфигурационном файле.
Демон подключается к панели управления на 162.0.0.1, которая затем позволяет управлять игровым сервером вместе с FTP-сервером. Я включил пассивный FTP в панели управления.
Примечание * FTP работает локально. Я могу получить доступ к FTP-серверу 152.5.5.5/192.168.1.30 локально с помощью filezilla, но не извне.
РЕДАКТИРОВАТЬ: Ниже приведен журнал ошибок от ftptest.net
Warning: Plaintext FTP is insecure. You should use explicit FTP over TLS.
Status: Resolving address of 152.5.5.5
Status: Connecting to 152.5.5.5
Warning: The entered address does not resolve to an IPv6 address.
Status: Connected, waiting for welcome message...
Reply: 220 Multicraft 2.1.1 FTP server
Command: CLNT https://ftptest.net on behalf of 152.5.5.5
Reply: 500 Command "CLNT" not understood.
Command: USER cisnet.3
Reply: 331 Username ok, send password.
Command: PASS **********
Reply: 230 Login successful
Command: SYST
Reply: 215 UNIX Type: L8
Command: FEAT
Reply: 211-Features supported:
Reply: EPRT
Reply: EPSV
Reply: MDTM
Reply: MLST type*;perm*;size*;modify*;unique*;unix.mode;unix.uid;unix.gid;
Reply: REST STREAM
Reply: SIZE
Reply: TVFS
Reply: UTF8
Reply: 211 End FEAT.
Command: PWD
Reply: 257 "/" is the current directory.
Status: Current path is /
Command: TYPE I
Reply: 200 Type set to: Binary.
Command: PASV
Reply: 227 Entering passive mode (192,168,1,30,186,215).
Error: Server returned unroutable private IP address in PASV reply
РЕДАКТИРОВАТЬ # 2 Я, наконец, выяснил основную проблему FTP. FTP теперь работает с внешнего адреса 152.5.5.5, который подключается к моей локальной машине 192.168.1.30 путем изменения ftppasv = 152.5.5.5. Однако контрольная панель не хочет подключаться к FTP даже в пассивном режиме ... пытается найти логи контрольной панели, чтобы раскрыть скрытый секрет .... Также был изменен порт FTP с 21 на 513.