Раздражаясь из-за IE для того, чтобы не иметь быстрый и простой способ выключить настройки прокси, этот вопрос вдохновил меня писать этот файл PAC в PHP.
Это определяет, выполнен ли запрос на файл от внутренне (в этом случае, используйте прокси-сервер), или внешне: пойдите прямые. Возможно, кто-то может скорректировать его для их собственных потребностей.
<?php
$proxy = "192.168.0.x";
$port = "8080";
header ("Content-type: application/x-ns-proxy-autoconfig");
header ("Date: " . gmdate('D, d M Y H:i:s \G\M\T', time ()));
header ("Last-Modified: " . gmdate('D, d M Y H:i:s \G\M\T', time ()));
header ("Expires: " . gmdate('D, d M Y H:i:s \G\M\T', time () + 60 * 30));
echo "// Request from: " . $_SERVER ['REMOTE_ADDR'] . "\n";
if (substr ($_SERVER ['REMOTE_ADDR'], 0, 8) == "192.168.")
{
?>
// We're inside the firewall
var external = false;
<?php
}
else
{
?>
// We're outside the firewall
var external = true;
<?php
}
?>
// Default connection
var direct = "DIRECT";
// Alternate Proxy Server
var proxy = "PROXY <?php echo $proxy; ?>:<?php echo $port; ?>";
//
// Proxy Logic
//
function FindProxyForURL(url, host)
{
if (external || isPlainHostName(host) || shExpMatch(host, "192.168.*") || (dnsDomainIs(host, ".example.com")) && !localHostOrDomainIs(host, "www.example.com") || dnsDomainIs (host, ".example2.com"))
{
return direct;
}
else
{
return proxy;
}
}
Я теперь скорректировал свои настройки Group Policy так, чтобы все браузеры указали на этот файл, который расположен на веб-сервере в брандмауэре. Теперь, если ноутбуки пойдут удаленные, то их файл прокси изменится автоматически без потребности реконфигурировать установку браузера прокси.
Править: обновленный для соответствия локальным хостам IP-адреса также...
Согласитесь с Luke404. Проверьте, что Вашему vsftpd.conf настроили следующие записи, и Ваш брандмауэр позволяет pasv_min, и pasv_max диапазоны портов (10000 - 100010 просто пример). Не забудьте перезапускать сервис, если изменения внесены в conf файл.
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10010
pasv_address=[Public IP address of your server]
Вы используете режим PASV, таким образом, Ваш клиент попытается соединиться на "случайном" порте с сервером для передачи данных, это включает обе передачи файлов и списки каталогов.
Самая вероятная причина это не работает, состоит в том, что соединение TCP PASV для передачи данных не может быть установлено, обычно по одной из этих причин:
Я решил эту же проблему
Решил это, редактируя конфигурацию /etc/sysconfig/iptables-config
в начале файла, изменил этот параметр: IPTABLES_MODULES
# Load additional iptables modules (nat helpers)
# Default: -none-
# Space separated list of nat helpers (e.g. 'ip_nat_ftp ip_nat_irc'), which
# are loaded after the firewall rules are applied. Options for the helpers are
# stored in /etc/modprobe.conf.
IPTABLES_MODULES="ip_conntrack_ftp"
После перезапуска iptables мог перечислить файлы в FileZilla. Надеюсь, это поможет.