Em vez de adicionar portas à lista de exceções do Firewall do Windows, adicione o aplicativo que você precisa ter acesso. O Firewall do Windows permitirá que o aplicativo se vincule e use as portas desejadas.
Eu tenho um aplicativo que é executado como um serviço e contém um cliente de FTP. Ele precisa se conectar a um servidor FTP que suporta apenas FTP ativo. Quando tento obter uma lista de arquivos ou baixar um arquivo, o Firewall do Windows está soltando a conexão de entrada do servidor FTP. (Não acredito que tenhamos esse problema no Windows XP ou no Windows Vista.)
FTP ativo é o protocolo que requer que o servidor abra uma conexão com o cliente em uma porta especificada pelo cliente. ( link )
Eu sei que poderia abrir um grande intervalo de portas no Firewall do Windows e forçar meu cliente FTP a usar apenas essas portas, mas eu teria adivinhado que o Firewall do Windows suportaria o FTP ativo de forma nativa.
Existe alguma configuração que precisa ser feita para que o Firewall do Windows detecte automaticamente o FTP Ativo e abra as portas necessárias conforme necessário? Posso alterar essa configuração programaticamente?
Obrigado.
Em vez de adicionar portas à lista de exceções do Firewall do Windows, adicione o aplicativo que você precisa ter acesso. O Firewall do Windows permitirá que o aplicativo se vincule e use as portas desejadas.
Aqui está a questão: Seja no modo Ativo ou Passivo, o servidor sempre usa a porta 20 para a conexão de dados e se conecta ao cliente em qualquer porta que o cliente especificou quando emitiu o comando FTP PORT.
Depois de olhar para o firewall do Windows 7, parece que você pode criar uma regra de entrada personalizada que permita conexões a qualquer porta local de uma porta remota específica (20) para um determinado tipo de protocolo (TCP). Você também pode especificar os endereços IP locais e remotos aos quais esta regra se aplica.
Tenho que admitir que nunca mexi com o firewall do Windows, mas parece que pode funcionar para você.
Eu tive o problema com um cliente FTP em nossa Intranet e não queria fazer uma exceção de firewall para esse programa em particular. Eu queria que o FTP Ativo "Apenas Trabalhe", com qualquer programa cliente.
Tentei ativar o "Application Layer Gateway Service" ( sc start ALG
) e verifiquei se eu tinha "statefulftp" habilitado ( netsh advfirewall set global statefulftp enable
). Suponho que isso seja necessário em alguns casos, mas eles não fizeram diferença para mim.
No final, eu apenas opto conexões da porta 20 de IPs locais, e o Active FTP funciona, com qualquer programa.
netsh advfirewall firewall add rule name="FTP (active)" action=allow protocol=TCP dir=in remoteport=20 remoteip=localsubnet
Em vez de remoteip = localsubnet, você também pode especificar um IP particular.
O Windows XP / Vista / 7 usa o 'Application Layer Gateway Service' como um auxiliar de conexão para o FTP Ativo. Você precisa garantir que este serviço seja iniciado para que o FTP Ativo funcione.
Para começar:
Já tentou certificar-se de que o seu firewall está a fazer filtragem por FTP com estado?
Você pode fazer isso abrindo um prompt de comando com permissões de administrador e digitando:
netsh advfirewall set global StatefulFtp enable
Eu ficaria curioso se isso afetou seu problema.
Eu resolvi esse problema com mais precisão no topo das regras de entrada. Percebeu que havia duas regras chamadas File Transfer Program (uma para TCP e outra para UDP), que estava bloqueando programa "c: \ windows \ system32 \ ftp.exe". Deficientes ambos e tudo funcionou como um encanto! Apenas meus 2 cêntimos; -)
Muitas pessoas não se importam com% SystemRoot% \ system32 \ inetsrv \ inetinfo.exe Ao criar o servidor FTP no Windows Machine.
O aplicativo deve ser listado em branco antes de você acessar a conexão da sua sub-rede ou da Internet.
Primeiro, você permite estas portas: 80, 20, 21 para HTTP e FTP. Em seguida, adicione exceção para "inetinfo.exe"
Eu recomendaria o tunelamento. Por exemplo, executando o servidor WinSSHD no servidor remoto. Ele possui o UPnP e abre automaticamente a porta 22 para você. Ele tem um programa cliente acompanhante chamado Tunnelier se você vier do lado do cliente. O ponto aqui é que, quando você tem um túnel na porta 22, o FTP ativo ou passivo funcionará bem a partir desse ponto, através do túnel. Na verdade, se você executar o WinSSHD (ou SSHD) no servidor FTP remoto, ele terá um subsistema FTP que faz a mesma coisa que o servidor FTP. Portanto, se o servidor FTP remoto for o Linux, provavelmente eles já terão o serviço SSHD em execução e, portanto, o próprio servidor FTP será um ponto sem áudio.