Сбой копирования файла через Ubuntu Gateway с использованием NAT

Мне удалось успешно настроить NAT на моем компьютере с Ubuntu 14.04.4, чтобы мой компьютер выполнял роль шлюза для компьютера, подключенного через внутренний интерфейс (eth0) к внешнему интерфейсу (eth1).

Основная цель - не дать внутреннему компьютеру доступ в интернет, а доступ к серверам (subversion и т. Д.) Через внешний интерфейс.

NAT работает и я могу пинговать сервер с внутреннего ПК.

Если я пытаюсь скопировать файл на внутреннем ПК с сервера на внешнем ПК, копирование начинается, но затем останавливается в течение нескольких секунд (скорость начинается примерно с 500 КБ / с, а затем снижается до 0,0 КБ / с). Моя команда копировать прямо:

$ scp user@server:/path/to/file . 
user@server's password:
file            1%  704KB 0.0KB/s - stalled -

Точно такая же команда копирования с моего шлюзового ПК выполняется со скоростью 12 МБ / с. Файл составляет около 70 МБ.

Как я могу решить эту проблему, чтобы сделать копию полной, если возможно, быстрой?


Моя настройка:

NAT настроен как описано здесь

  1. Команды для настройки NAT на шлюзе:

    sudo iptables -A FORWARD -o eth1 -i eth0 -s 192.168.10.0/24 -m conntrack --ctstate NEW -j ACCEPT
    sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    sudo iptables -t nat -F POSTROUTING
    sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
    
  2. Я раскомментировал net.ipv4.ip_forward=1 в /etc/sysctl.conf

  3. Я включил переадресацию портов с помощью следующей команды:

    sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
    

PS: я использую scp как тест, и он показывает скорость, то же самое происходит с rsync, На самом деле файл загружается установщиком, возможно, через http. Протестировано с использованием wget и получить точно такое же поведение.

1 ответ

Я предпочитаю быть очень конкретным с интерфейсами и направлениями потока. Предложить это:

sudo iptables -F FORWARD
sudo iptables -A FORWARD -o eth1 -i eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Другие вопросы по тегам