У меня есть окно OpenSuSE, на котором запущен vsftp. Он находится за брандмауэром нашей хостинговой компании. Они контролируют межсетевой экран, у меня нет доступа к нему. Он имеет неограниченный доступ из нашей VPN через 10.x.x.x, и порты 20, 21, 40000-40500 на общедоступном IP-адресе 41.x.x.x перенаправляются на него.
С нашим VPN все работает нормально. Однако со стороны у меня проблемы. Когда клиент переключается в пассивный режим, сервер отвечает
227 Вход в пассивный режим (10, x, x, x ,, 157,213)
В Filezilla я получаю сообщение:
227 Вход в пассивный режим (41, x, x, x, 228,63)
Я разработал порты 40248 и 58203 соответственно. В моем файле vsftpd.conf у меня есть строки:
pasv_max_port = 40500
pasv_min_port = 40000
# pasv_address = 10.x.x.x
Что соответствует портам, которые я пересылаю.
После перехода в пассивный режим клиент больше не получает ответа от сервера. Я подозреваю, что это потому, что он пытается подключиться к IP-адресу, к которому у него нет доступа, через порт, который не перенаправляется на сервер, и сервер не прослушивает соединение на этом порту.
Я пробовал менять
pasv_address = 41.x.x.x
в файле конфигурации, но все, что он достигает, - это разрыв соединения с VPN. Как только соединение происходит на 41.x.x.x, порты не совпадают.
Что мне нужно изменить в моей конфигурации, чтобы это работало?
Основываясь на том, что IP-адрес также различается между журналами сервера и клиента, я подозреваю, что брандмауэр перехватывает соединение и пытается выполнить NAT или что-то в этом роде (хотя он все равно должен работать, если брандмауэр делает это правильно). Можете ли вы попробовать подключиться с помощью SSL / TLS, чтобы брандмауэр не вмешивался в контрольное соединение?