У меня есть FTP-сервер (vsftpd) установленный на поле Linux (сервер Ubuntu). Когда я пытаюсь соединиться с компьютером в той же сети, все хорошо работает как ожидалось.
Но поскольку скоро IP является внешним, он не соединится..
Я сначала предположил, что порт был заблокирован, но затем:
localserver:$ sudo tail -f /var/log/vsftpd.log
Wed Jan 13 14:21:17 2010 [pid 2407] CONNECT: Client "xxx.xxx.107.4"
remotemachine:$ netcat svn-motion.no-ip.biz 21
220 FTP Server
И это зависает там. Какие-либо порты кроме 21 потребности быть открытым?
Вы пытаетесь соединиться с внешним IP сервера от внутреннего компьютера? Если так, и если Вы используете типичный домашний маршрутизатор в конфигурации NAT, проблемой может на самом деле быть маршрутизатор.
По-видимому, Вы настроили маршрутизатор для передачи FTP серверу Ubuntu, и Вы пытаетесь протестировать это, это работает. Но когда Вы тестируете внешний IP непосредственно от Вашей внутренней сети, Ваш маршрутизатор должен поддерживать маршрут "шпильки". Ваш маршрутизатор должен отправить трафик от внутреннего узла, через внешний IP, назад во внешний IP, и наконец передать тот назад внутреннему IP Вашего сервера - все на том же устройстве. Большинство потребительских маршрутизаторов не обрабатывает эту ситуацию правильно.
Таким образом, Вам нужен тест от реального внешнего хоста. У Вас есть несколько опций: